diff --git a/build.gradle.kts b/build.gradle.kts index f3e28d8..3d399f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,13 +1,11 @@ -import org.gradle.internal.extensions.stdlib.toDefaultLowerCase import java.io.BufferedReader import java.io.InputStreamReader import java.net.URI -import java.net.URL plugins { id("maven-publish") - id("fabric-loom") version "1.8.10" - id("babric-loom-extension") version "1.8.9" + id("fabric-loom") version "1.9.2" + id("babric-loom-extension") version "1.9.4" } //noinspection GroovyUnusedAssignment @@ -74,7 +72,6 @@ dependencies { modImplementation("net.modificationstation:StationAPI:${project.properties["stapi_version"]}") modImplementation("net.glasslauncher.mods:ModMenu:${project.properties["modmenu_version"]}") - modImplementation("net.glasslauncher.mods:glass-networking:${project.properties["glassnetworking_version"]}") modImplementation("net.glasslauncher.mods:GlassConfigAPI:${project.properties["gcapi_version"]}") modImplementation("net.glasslauncher.mods:AlwaysMoreItems:${project.properties["alwaysmoreitems_version"]}") } diff --git a/gradle.properties b/gradle.properties index ff9016f..177a0c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,10 +15,9 @@ maven_group=net.teamterminus archives_base_name=machine_essentials # Dependencies -stapi_version=2.0-alpha.2.4 +stapi_version=2.0.0-alpha.4 # Extra Dependencies -gcapi_version=3.0.2 -glassnetworking_version=1.0.3 -alwaysmoreitems_version=1.2.0 -modmenu_version=1.8.5-beta.9 +gcapi_version=3.1.0 +alwaysmoreitems_version=1.5.3 +modmenu_version=1.8.5-beta.11 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e1adfb4..e48eca5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/net/teamterminus/machineessentials/MachineEssentials.java b/src/main/java/net/teamterminus/machineessentials/MachineEssentials.java index 28cc1ed..d0747d8 100644 --- a/src/main/java/net/teamterminus/machineessentials/MachineEssentials.java +++ b/src/main/java/net/teamterminus/machineessentials/MachineEssentials.java @@ -7,28 +7,27 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.modificationstation.stationapi.api.event.mod.InitEvent; -import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; +import net.modificationstation.stationapi.api.mod.entrypoint.EntrypointManager; import net.modificationstation.stationapi.api.util.Namespace; -import net.modificationstation.stationapi.api.util.Null; import net.modificationstation.stationapi.api.util.math.Direction; import net.modificationstation.stationapi.api.world.StationFlatteningWorld; import org.apache.logging.log4j.Logger; +import java.lang.invoke.MethodHandles; import java.util.*; public class MachineEssentials { + static { + EntrypointManager.registerLookup(MethodHandles.lookup()); + } - @Entrypoint.Namespace - public static final Namespace NAMESPACE = Null.get(); - - @Entrypoint.Logger - public static final Logger LOGGER = Null.get(); + @SuppressWarnings("UnstableApiUsage") + public static final Namespace NAMESPACE = Namespace.resolve(); - @Entrypoint.Instance - public static final MachineEssentials INSTANCE = Null.get(); + public static final Logger LOGGER = NAMESPACE.getLogger("MachineEssentials"); @EventListener - public static void init(InitEvent event) { + private static void init(InitEvent event) { LOGGER.info("Machine Essentials initialized."); } diff --git a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlock.java b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlock.java index 4173f7e..1b0975c 100644 --- a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlock.java +++ b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlock.java @@ -5,7 +5,6 @@ import net.modificationstation.stationapi.api.template.block.TemplateBlockWithEntity; import net.modificationstation.stationapi.api.util.Identifier; import net.teamterminus.machineessentials.network.NetworkComponentBlock; -import net.teamterminus.machineessentials.util.BlockEntityInit; public abstract class ElectricBlock extends TemplateBlockWithEntity implements NetworkComponentBlock { @@ -13,9 +12,4 @@ public ElectricBlock(Identifier identifier, Material material) { super(identifier, material); } - @Override - public void onPlaced(World world, int x, int y, int z) { - super.onPlaced(world, x, y, z); - ((BlockEntityInit) world.getBlockEntity(x, y, z)).init(); - } } diff --git a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlockEntity.java b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlockEntity.java index b0f996d..6e85fb4 100644 --- a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlockEntity.java +++ b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricBlockEntity.java @@ -8,13 +8,12 @@ import net.teamterminus.machineessentials.energy.electric.api.Electric; import net.teamterminus.machineessentials.energy.electric.api.HasVoltageTier; import net.teamterminus.machineessentials.energy.electric.api.VoltageTier; -import net.teamterminus.machineessentials.network.NetworkComponent; import net.teamterminus.machineessentials.network.Network; +import net.teamterminus.machineessentials.network.NetworkComponent; import net.teamterminus.machineessentials.network.NetworkType; import net.teamterminus.machineessentials.util.AveragingCounter; -import net.teamterminus.machineessentials.util.BlockEntityInit; -public abstract class ElectricBlockEntity extends BlockEntity implements BlockEntityInit, NetworkComponent, HasVoltageTier, Electric { +public abstract class ElectricBlockEntity extends BlockEntity implements NetworkComponent, HasVoltageTier, Electric { /** * Only use this directly if you know what you're doing. diff --git a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricWireBlockEntity.java b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricWireBlockEntity.java index 696a601..acfea8a 100644 --- a/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricWireBlockEntity.java +++ b/src/main/java/net/teamterminus/machineessentials/energy/electric/template/ElectricWireBlockEntity.java @@ -11,9 +11,8 @@ import net.teamterminus.machineessentials.network.Network; import net.teamterminus.machineessentials.network.NetworkType; import net.teamterminus.machineessentials.util.AveragingCounter; -import net.teamterminus.machineessentials.util.BlockEntityInit; -public abstract class ElectricWireBlockEntity extends BlockEntity implements BlockEntityInit, ElectricWire { +public abstract class ElectricWireBlockEntity extends BlockEntity implements ElectricWire { public Network energyNet; @Getter diff --git a/src/main/java/net/teamterminus/machineessentials/network/Network.java b/src/main/java/net/teamterminus/machineessentials/network/Network.java index 5e2ebda..14daa81 100644 --- a/src/main/java/net/teamterminus/machineessentials/network/Network.java +++ b/src/main/java/net/teamterminus/machineessentials/network/Network.java @@ -1,8 +1,6 @@ package net.teamterminus.machineessentials.network; import com.google.common.collect.Maps; - - import net.minecraft.block.Block; import net.minecraft.block.entity.BlockEntity; import net.minecraft.nbt.NbtCompound; diff --git a/src/main/java/net/teamterminus/machineessentials/network/NetworkManager.java b/src/main/java/net/teamterminus/machineessentials/network/NetworkManager.java index cb8d2f1..47d9d5e 100644 --- a/src/main/java/net/teamterminus/machineessentials/network/NetworkManager.java +++ b/src/main/java/net/teamterminus/machineessentials/network/NetworkManager.java @@ -11,15 +11,13 @@ import net.modificationstation.stationapi.api.event.world.BlockSetEvent; import net.modificationstation.stationapi.api.event.world.WorldEvent; import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; +import net.modificationstation.stationapi.api.mod.entrypoint.EntrypointManager; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; import net.modificationstation.stationapi.api.util.math.Vec3i; import net.modificationstation.stationapi.api.world.StationFlatteningWorld; -import net.teamterminus.machineessentials.MachineEssentials; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; +import java.io.*; +import java.lang.invoke.MethodHandles; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -31,6 +29,9 @@ */ @Entrypoint(eventBus = @EventBusPolicy(registerInstance = false)) public class NetworkManager { + static { + EntrypointManager.registerLookup(MethodHandles.lookup()); + } private static final Map> NETS = new HashMap<>(); private static final AtomicInteger ID_PROVIDER = new AtomicInteger(0); @@ -48,7 +49,7 @@ public static NetworkManager getInstance() { } @EventListener - public static void blockChanged(BlockSetEvent event) { + private void blockChanged(BlockSetEvent event) { if (event.blockState == States.AIR.get()){ removeBlock(new BlockChangeInfo(event.world, new Vec3i(event.x, event.y, event.z), event.blockState, event.blockMeta)); } else { @@ -58,34 +59,36 @@ public static void blockChanged(BlockSetEvent event) { @EventListener private static void initNetsEvent(WorldEvent.Init event) { - File file = event.world.dimensionData.getWorldPropertiesFile("networks_" + event.world.dimension.id); - if (!file.exists()) return; - - try { - NbtCompound tag = NbtIo.readCompressed(new FileInputStream(file)); - NetworkManager.netsFromTag(event.world, tag); - } catch (FileNotFoundException e) { - e.printStackTrace(); + File file = event.world.dimensionData.getWorldPropertiesFile("networks"); + if (file.exists()) { + try { + NbtCompound tag = NbtIo.readCompressed(new FileInputStream(file)); + NetworkManager.netsFromTag(event.world, tag); + } + catch (FileNotFoundException e) { + e.printStackTrace(); + } } } @EventListener private static void saveNetsEvent(WorldEvent.Save event) { - File file = event.world.dimensionData.getWorldPropertiesFile("networks_" + event.world.dimension.id); - NbtCompound tag = new NbtCompound(); - - try { - tag = NbtIo.readCompressed(new FileInputStream(file)); - } catch (FileNotFoundException ignored) { - MachineEssentials.LOGGER.info("Creating new networks file for dimension {}!", event.world.dimension.id); - } - NetworkManager.netsToTag(event.world, tag); try { + File file = event.world.dimensionData.getWorldPropertiesFile("networks"); + NbtCompound tag; + if (file.exists()) { + tag = NbtIo.readCompressed(new FileInputStream(file)); + NetworkManager.netsToTag(event.world, tag); + } + else { + tag = new NbtCompound(); + file.createNewFile(); + } NbtIo.writeCompressed(tag, new FileOutputStream(file)); - } catch (FileNotFoundException e) { + } + catch (IOException e) { e.printStackTrace(); } - } public static void addBlock(BlockChangeInfo blockChanged) { @@ -119,7 +122,7 @@ public static void addBlock(BlockChangeInfo blockChanged) { int size = sideNets.size(); //no nets around, create one if (size == 0) { - net = new Network(world, component.getType()); + net = new Network(world,component.getType()); net.addBlock(x, y, z); for (Vec3i offset: OFFSETS) { int px = x + offset.getX(); @@ -163,7 +166,7 @@ else if (size == 1) { } if (net == null && getNet(world, x, y, z) == null) { - net = new Network(world, component.getType()); + net = new Network(world,component.getType()); net.addBlock(x, y, z); for (Vec3i offset: OFFSETS) { int px = x + offset.getX(); @@ -279,7 +282,7 @@ public static void netsFromTag(World world, NbtCompound root) { } public static boolean canBeNet(StationFlatteningWorld world, int x, int y, int z) { - Block block = world.getBlockState(x, y, z).getBlock(); + Block block = world.getBlockState(x,y,z).getBlock(); return canBeNet(block); } diff --git a/src/main/java/net/teamterminus/machineessentials/network/NetworkType.java b/src/main/java/net/teamterminus/machineessentials/network/NetworkType.java index bb365ee..8da3d27 100644 --- a/src/main/java/net/teamterminus/machineessentials/network/NetworkType.java +++ b/src/main/java/net/teamterminus/machineessentials/network/NetworkType.java @@ -1,6 +1,5 @@ package net.teamterminus.machineessentials.network; -import net.modificationstation.stationapi.api.util.Identifier; import org.jetbrains.annotations.NotNull; /** diff --git a/src/main/java/net/teamterminus/machineessentials/network/NetworkWalker.java b/src/main/java/net/teamterminus/machineessentials/network/NetworkWalker.java index 232b158..993a8b5 100644 --- a/src/main/java/net/teamterminus/machineessentials/network/NetworkWalker.java +++ b/src/main/java/net/teamterminus/machineessentials/network/NetworkWalker.java @@ -8,7 +8,6 @@ import net.modificationstation.stationapi.api.util.math.Vec3i; import net.teamterminus.machineessentials.MachineEssentials; - import java.util.*; /** @@ -47,7 +46,7 @@ public NetworkWalker(World world, Vec3i source, int walkedBlocks, List List createNetworkPaths(World world, Vec3i source) { - if(world.getBlockEntity(source.getX(), source.getY(), source.getZ()) instanceof NetworkComponent) { + if (world.getBlockEntity(source.getX(), source.getY(), source.getZ()) instanceof NetworkComponent) { NetworkWalker walker = new NetworkWalker<>(world, source, 1, new ArrayList<>()); walker.traverse(); return walker.isFailed() ? null : walker.routes; @@ -73,7 +72,7 @@ public void traverse() { * @param max The maximum amount of blocks to traverse */ public void traverse(int max) { - if(used) { + if (used) { throw new IllegalStateException("Walker already used!"); } root = this; diff --git a/src/main/java/net/teamterminus/machineessentials/util/BlockEntityInit.java b/src/main/java/net/teamterminus/machineessentials/util/BlockEntityInit.java deleted file mode 100644 index ad8d5e6..0000000 --- a/src/main/java/net/teamterminus/machineessentials/util/BlockEntityInit.java +++ /dev/null @@ -1,5 +0,0 @@ -package net.teamterminus.machineessentials.util; - -public interface BlockEntityInit { - void init(); -}