Add another RS addons hook

This commit is contained in:
raoulvdberge
2017-10-04 20:16:09 +02:00
parent 9dbd752b8c
commit e2f12625ce

View File

@@ -18,6 +18,7 @@ import net.minecraftforge.common.DimensionManager;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
import java.util.function.Consumer;
public abstract class ItemNetworkItem extends ItemEnergyItem implements INetworkItemProvider { public abstract class ItemNetworkItem extends ItemEnergyItem implements INetworkItemProvider {
private static final String NBT_CONTROLLER_X = "ControllerX"; private static final String NBT_CONTROLLER_X = "ControllerX";
@@ -36,24 +37,28 @@ public abstract class ItemNetworkItem extends ItemEnergyItem implements INetwork
ItemStack stack = player.getHeldItem(hand); ItemStack stack = player.getHeldItem(hand);
if (!world.isRemote) { if (!world.isRemote) {
applyNetwork(stack, n -> n.getNetworkItemHandler().onOpen(player, hand), player::sendMessage);
}
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
}
public void applyNetwork(ItemStack stack, Consumer<INetwork> networkConsumer, Consumer<TextComponentTranslation> errorConsumer) {
if (!isValid(stack)) { if (!isValid(stack)) {
player.sendMessage(new TextComponentTranslation("misc.refinedstorage:network_item.not_found")); errorConsumer.accept(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
} else { } else {
World networkWorld = DimensionManager.getWorld(getDimensionId(stack)); World networkWorld = DimensionManager.getWorld(getDimensionId(stack));
TileEntity network; TileEntity network;
if (networkWorld != null && ((network = networkWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)))) instanceof INetwork)) { if (networkWorld != null && ((network = networkWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)))) instanceof INetwork)) {
((INetwork) network).getNetworkItemHandler().onOpen(player, hand); networkConsumer.accept((INetwork) network);
} else { } else {
player.sendMessage(new TextComponentTranslation("misc.refinedstorage:network_item.not_found")); errorConsumer.accept(new TextComponentTranslation("misc.refinedstorage:network_item.not_found"));
} }
} }
} }
return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
}
@Override @Override
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) { public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) {
super.addInformation(stack, world, tooltip, flag); super.addInformation(stack, world, tooltip, flag);