diff --git a/build.gradle b/build.gradle index e8b6ede9..8db933ce 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,11 @@ minecraft { // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } +repositories +{ + maven { url = "https://cursemaven.com" } +} + dependencies { // you may put jars on which you depend on in ./libs // or you may define them like so.. @@ -71,6 +76,8 @@ dependencies { compile "org.apache.httpcomponents:httpclient:4.3.3" compile "org.apache.httpcomponents:httpcore:4.3.2" compile "commons-logging:commons-logging:1.1.3" + provided "curse.maven:xnet-260912:2745852" + provided "curse.maven:mcjtylib-233105:2745846" provided fileTree(dir:'deps',include:'*.jar') } diff --git a/src/main/java/com/mesabrook/ib/Main.java b/src/main/java/com/mesabrook/ib/Main.java index 4c0cd481..ba9a7d6e 100644 --- a/src/main/java/com/mesabrook/ib/Main.java +++ b/src/main/java/com/mesabrook/ib/Main.java @@ -46,6 +46,7 @@ public class Main public static Logger logger; public static boolean THERCMOD = false; public static boolean DYNMAP = false; + public static boolean XNET = false; public static final Random rand = new Random(); public IndependentTimer timer; diff --git a/src/main/java/com/mesabrook/ib/init/XNetAPI.java b/src/main/java/com/mesabrook/ib/init/XNetAPI.java new file mode 100644 index 00000000..91070091 --- /dev/null +++ b/src/main/java/com/mesabrook/ib/init/XNetAPI.java @@ -0,0 +1,47 @@ +package com.mesabrook.ib.init; + +import com.mesabrook.ib.blocks.te.TileEntityFluidMeter; +import com.mesabrook.ib.blocks.te.TileEntityWirelessChargingPad; + +import mcjty.xnet.XNet; +import mcjty.xnet.api.channels.IConnectable; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; + +public class XNetAPI { + public static void registerConnectables() + { + XNet.xNetApi.registerConnectable(new WirelessChargingPadConnectable()); + XNet.xNetApi.registerConnectable(new FluidMeterConnectable()); + } + + public static class WirelessChargingPadConnectable implements IConnectable + { + @Override + public ConnectResult canConnect(IBlockAccess world, BlockPos connectorPos, BlockPos blockPos, TileEntity te, + EnumFacing facing) { + if (te instanceof TileEntityWirelessChargingPad) + { + return facing.getOpposite() == EnumFacing.DOWN ? ConnectResult.YES : ConnectResult.NO; + } + + return ConnectResult.DEFAULT; + } + } + + public static class FluidMeterConnectable implements IConnectable + { + @Override + public ConnectResult canConnect(IBlockAccess world, BlockPos connectorPos, BlockPos blockPos, TileEntity te, + EnumFacing facing) { + if (te instanceof TileEntityFluidMeter) + { + return (facing == EnumFacing.UP || facing == EnumFacing.DOWN) ? ConnectResult.YES : ConnectResult.NO; + } + + return ConnectResult.DEFAULT; + } + } +} diff --git a/src/main/java/com/mesabrook/ib/items/commerce/ItemWallet.java b/src/main/java/com/mesabrook/ib/items/commerce/ItemWallet.java index 36ab05ee..f35709dc 100644 --- a/src/main/java/com/mesabrook/ib/items/commerce/ItemWallet.java +++ b/src/main/java/com/mesabrook/ib/items/commerce/ItemWallet.java @@ -85,12 +85,15 @@ public NBTTagCompound getNBTShareTag(ItemStack stack) { @Override public void readNBTShareTag(ItemStack stack, NBTTagCompound nbt) { super.readNBTShareTag(stack, nbt); - if (!nbt.hasKey("inventory") || !stack.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null)) + if (nbt != null) { - return; + if (!nbt.hasKey("inventory") || !stack.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null)) + { + return; + } + + IItemHandler handler = stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); + CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.readNBT(handler, null, nbt.getTag("inventory")); } - - IItemHandler handler = stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); - CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.readNBT(handler, null, nbt.getTag("inventory")); } } diff --git a/src/main/java/com/mesabrook/ib/util/Reference.java b/src/main/java/com/mesabrook/ib/util/Reference.java index 4c8dc968..2bcf23ff 100644 --- a/src/main/java/com/mesabrook/ib/util/Reference.java +++ b/src/main/java/com/mesabrook/ib/util/Reference.java @@ -10,7 +10,7 @@ public class Reference public static final String MODNAME = "Immersibrook"; public static final String UPDATE_NAME = "The Technology Update"; public static String MOTTO = Main.instance.getRandomMotto(); - public static final String VERSION = "1.0.0.10"; + public static final String VERSION = "1.0.0.10.1"; public static final String MINEDROID_VERSION = VERSION; public static final String CHANGELOG = "https://github.com/RavenholmZombie/Immersibrook/releases/tag/" + VERSION; public static final String UPDATE_URL = "https://raw.githubusercontent.com/RavenholmZombie/RavenholmZombie/main/update.json"; diff --git a/src/main/java/com/mesabrook/ib/util/handlers/RegistryHandler.java b/src/main/java/com/mesabrook/ib/util/handlers/RegistryHandler.java index e4e7bc3c..06774d80 100644 --- a/src/main/java/com/mesabrook/ib/util/handlers/RegistryHandler.java +++ b/src/main/java/com/mesabrook/ib/util/handlers/RegistryHandler.java @@ -22,6 +22,7 @@ import com.mesabrook.ib.init.CDMApps; import com.mesabrook.ib.init.ModBlocks; import com.mesabrook.ib.init.ModItems; +import com.mesabrook.ib.init.XNetAPI; import com.mesabrook.ib.items.commerce.ItemDebitCard; import com.mesabrook.ib.items.commerce.ItemRegisterFluidWrapper; import com.mesabrook.ib.items.commerce.ItemSecurityBox; @@ -142,6 +143,12 @@ public static void preInitRegistries(FMLPreInitializationEvent event) Main.logger.info("[" + Reference.MODNAME + "] Dynmap Detected."); } + Main.XNET = Loader.isModLoaded("xnet"); + if (Main.XNET) + { + Main.logger.info("[" + Reference.MODNAME + "] XNet Detected."); + } + PacketHandler.registerMessages(); Triggers.init(); CapabilityEmployee.init(); @@ -187,6 +194,11 @@ public static void initRegistries() { DynmapAPIListener.register(); } + + if (Main.XNET) + { + XNetAPI.registerConnectables(); + } } public static void postInitRegistries(FMLPostInitializationEvent event) diff --git a/src/main/resources/assets/wbtc/recipes/security_box.json b/src/main/resources/assets/wbtc/recipes/security_box.json new file mode 100644 index 00000000..2dac841d --- /dev/null +++ b/src/main/resources/assets/wbtc/recipes/security_box.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": + [ + "BBB", + "R R", + "RRR" + ], + "key": + { + "R": + { + "type": "forge:ore_dict", + "ore": "stickIron" + }, + "B": + { + "item": "wbtc:black_plastic" + } + }, + "result": + { + "item": "wbtc:security_box", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 6661e5f7..6848bdd5 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "wbtc", "name": "Immersibrook", "description": "A special mod designed for the Mesabrook Minecraft server!", - "version": "1.0.0.10", + "version": "1.0.0.10.1", "mcversion": "1.12.2", "url": "https://shorturl.at/ptAFJ", "updateUrl": "https://raw.githubusercontent.com/RavenholmZombie/RavenholmZombie/main/update.json",