diff --git a/.gradle/8.12/executionHistory/executionHistory.bin b/.gradle/8.12/executionHistory/executionHistory.bin index 42505a9..fa519ad 100644 Binary files a/.gradle/8.12/executionHistory/executionHistory.bin and b/.gradle/8.12/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.12/executionHistory/executionHistory.lock b/.gradle/8.12/executionHistory/executionHistory.lock index 082d931..068cff0 100644 Binary files a/.gradle/8.12/executionHistory/executionHistory.lock and b/.gradle/8.12/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.12/fileHashes/fileHashes.bin b/.gradle/8.12/fileHashes/fileHashes.bin index b55f39c..455c7f4 100644 Binary files a/.gradle/8.12/fileHashes/fileHashes.bin and b/.gradle/8.12/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.12/fileHashes/fileHashes.lock b/.gradle/8.12/fileHashes/fileHashes.lock index c53151e..1152306 100644 Binary files a/.gradle/8.12/fileHashes/fileHashes.lock and b/.gradle/8.12/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.12/fileHashes/resourceHashesCache.bin b/.gradle/8.12/fileHashes/resourceHashesCache.bin index 8b08914..cb1f45c 100644 Binary files a/.gradle/8.12/fileHashes/resourceHashesCache.bin and b/.gradle/8.12/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 75967fa..d2de39b 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/re/imc/geysermodelengine/GeyserModelEngine.class b/build/classes/java/main/re/imc/geysermodelengine/GeyserModelEngine.class index 96f94f3..8666af3 100644 Binary files a/build/classes/java/main/re/imc/geysermodelengine/GeyserModelEngine.class and b/build/classes/java/main/re/imc/geysermodelengine/GeyserModelEngine.class differ diff --git a/build/classes/java/main/re/imc/geysermodelengine/listener/ModelListener.class b/build/classes/java/main/re/imc/geysermodelengine/listener/ModelListener.class index feaad3b..ae16c8f 100644 Binary files a/build/classes/java/main/re/imc/geysermodelengine/listener/ModelListener.class and b/build/classes/java/main/re/imc/geysermodelengine/listener/ModelListener.class differ diff --git a/build/classes/java/main/re/imc/geysermodelengine/managers/model/ModelManager.class b/build/classes/java/main/re/imc/geysermodelengine/managers/model/ModelManager.class index 0fc48c2..719ea12 100644 Binary files a/build/classes/java/main/re/imc/geysermodelengine/managers/model/ModelManager.class and b/build/classes/java/main/re/imc/geysermodelengine/managers/model/ModelManager.class differ diff --git a/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerData.class b/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerData.class deleted file mode 100644 index 9c2f448..0000000 Binary files a/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerData.class and /dev/null differ diff --git a/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerManager.class b/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerManager.class deleted file mode 100644 index 977adf5..0000000 Binary files a/build/classes/java/main/re/imc/geysermodelengine/managers/server/ServerManager.class and /dev/null differ diff --git a/build/libs/GeyserModelEngine-1.0.0-all.jar b/build/libs/GeyserModelEngine-1.0.0-all.jar index 19156d1..71e3d63 100644 Binary files a/build/libs/GeyserModelEngine-1.0.0-all.jar and b/build/libs/GeyserModelEngine-1.0.0-all.jar differ diff --git a/build/libs/GeyserModelEngine-1.0.0.jar b/build/libs/GeyserModelEngine-1.0.0.jar index 4a5754e..0403cda 100644 Binary files a/build/libs/GeyserModelEngine-1.0.0.jar and b/build/libs/GeyserModelEngine-1.0.0.jar differ diff --git a/build/resources/main/paper-plugin.yml b/build/resources/main/paper-plugin.yml index b9cf47c..f45e067 100644 --- a/build/resources/main/paper-plugin.yml +++ b/build/resources/main/paper-plugin.yml @@ -8,6 +8,8 @@ authors: - willem.dev - TheLividaProject +load: STARTUP + dependencies: server: GeyserUtils: diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/BedrockMountControlRunnable.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/BedrockMountControlRunnable.class.uniqueId12 deleted file mode 100644 index b3ca4c0..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/BedrockMountControlRunnable.class.uniqueId12 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CommandManager.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/CommandManager.class.uniqueId11 deleted file mode 100644 index ca8f636..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CommandManager.class.uniqueId11 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ConfigManager.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/ConfigManager.class.uniqueId9 deleted file mode 100644 index dc9ab0a..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ConfigManager.class.uniqueId9 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskManager.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskManager.class.uniqueId5 deleted file mode 100644 index 2a5e04c..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskManager.class.uniqueId5 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskRunnable.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskRunnable.class.uniqueId10 deleted file mode 100644 index 1d33c4d..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/EntityTaskRunnable.class.uniqueId10 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngine.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngine.class.uniqueId0 index 96f94f3..8666af3 100644 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngine.class.uniqueId0 and b/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngine.class.uniqueId0 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineCommandManager.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineCommandManager.class.uniqueId3 deleted file mode 100644 index 41bb32e..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineCommandManager.class.uniqueId3 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineReloadCommand.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineReloadCommand.class.uniqueId1 deleted file mode 100644 index d0dfc7e..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GeyserModelEngineReloadCommand.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ModelEntityData.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/ModelEntityData.class.uniqueId7 deleted file mode 100644 index ee46170..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ModelEntityData.class.uniqueId7 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId1 new file mode 100644 index 0000000..8c26b02 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId1 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId2 deleted file mode 100644 index feaad3b..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ModelListener.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ModelManager.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/ModelManager.class.uniqueId8 deleted file mode 100644 index 0fc48c2..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ModelManager.class.uniqueId8 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MountPacketListener.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/MountPacketListener.class.uniqueId6 deleted file mode 100644 index 779c016..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/MountPacketListener.class.uniqueId6 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/UpdateTaskRunnable.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/UpdateTaskRunnable.class.uniqueId4 deleted file mode 100644 index 692d904..0000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/UpdateTaskRunnable.class.uniqueId4 and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 94c14dc..fcae402 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java b/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java index 25ea6f5..b544e2e 100644 --- a/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java +++ b/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java @@ -20,7 +20,6 @@ import re.imc.geysermodelengine.managers.commands.CommandManager; import re.imc.geysermodelengine.managers.model.EntityTaskManager; import re.imc.geysermodelengine.managers.model.ModelManager; import re.imc.geysermodelengine.managers.player.PlayerManager; -import re.imc.geysermodelengine.managers.server.ServerManager; import re.imc.geysermodelengine.managers.model.data.ModelEntityData; import re.imc.geysermodelengine.runnables.BedrockMountControlRunnable; import re.imc.geysermodelengine.runnables.UpdateTaskRunnable; @@ -31,7 +30,6 @@ import java.util.concurrent.*; public class GeyserModelEngine extends JavaPlugin { private ConfigManager configManager; - private ServerManager serverManager; private CommandManager commandManager; @@ -58,24 +56,6 @@ public class GeyserModelEngine extends JavaPlugin { PacketEvents.getAPI().getEventManager().registerListener(new MountPacketListener(this), PacketListenerPriority.NORMAL); Bukkit.getPluginManager().registerEvents(new ModelListener(this), this); - - Bukkit.getScheduler().runTaskLater(this, () -> { - for (World world : Bukkit.getWorlds()) { - - for (Entity entity : world.getEntities()) { - - if (!modelManager.getEntitiesCache().containsKey(entity.getEntityId())) { - - ModeledEntity modeledEntity = ModelEngineAPI.getModeledEntity(entity); - - if (modeledEntity != null) { - Optional model = modeledEntity.getModels().values().stream().findFirst(); - model.ifPresent(m -> modelManager.create(modeledEntity, m)); - } - } - } - } - }, 100); } @Override @@ -98,7 +78,6 @@ public class GeyserModelEngine extends JavaPlugin { private void loadManagers() { this.configManager = new ConfigManager(this); - this.serverManager = new ServerManager(); this.commandManager = new CommandManager(this); @@ -118,10 +97,6 @@ public class GeyserModelEngine extends JavaPlugin { return configManager; } - public ServerManager getServerManager() { - return serverManager; - } - public CommandManager getCommandManager() { return commandManager; } diff --git a/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java b/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java index 519e4ff..ec5d007 100644 --- a/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java +++ b/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java @@ -6,12 +6,15 @@ import com.ticxo.modelengine.api.events.ModelMountEvent; import com.ticxo.modelengine.api.model.ActiveModel; import org.apache.commons.lang3.tuple.Pair; import org.bukkit.Bukkit; +import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.world.WorldInitEvent; +import org.bukkit.event.world.WorldLoadEvent; import re.imc.geysermodelengine.GeyserModelEngine; import re.imc.geysermodelengine.managers.model.data.ModelEntityData; @@ -51,6 +54,12 @@ public class ModelListener implements Listener { } } + @EventHandler + public void onWorldLoad(WorldInitEvent event) { + World world = event.getWorld(); + world.getEntities().forEach(entity -> plugin.getModelManager().processEntities(entity)); + } + //TODO Find out why we need this bc uh what? @EventHandler public void onPlayerLogin(PlayerJoinEvent event) { diff --git a/src/main/java/re/imc/geysermodelengine/managers/model/ModelManager.java b/src/main/java/re/imc/geysermodelengine/managers/model/ModelManager.java index f057c09..e7166ee 100644 --- a/src/main/java/re/imc/geysermodelengine/managers/model/ModelManager.java +++ b/src/main/java/re/imc/geysermodelengine/managers/model/ModelManager.java @@ -1,13 +1,16 @@ package re.imc.geysermodelengine.managers.model; +import com.ticxo.modelengine.api.ModelEngineAPI; import com.ticxo.modelengine.api.model.ActiveModel; import com.ticxo.modelengine.api.model.ModeledEntity; +import org.bukkit.entity.Entity; import re.imc.geysermodelengine.GeyserModelEngine; import re.imc.geysermodelengine.managers.model.data.ModelEntityData; import re.imc.geysermodelengine.runnables.EntityTaskRunnable; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; public class ModelManager { @@ -36,6 +39,16 @@ public class ModelManager { map.put(model, modelEntity); } + public void processEntities(Entity entity) { + if (entitiesCache.containsKey(entity.getEntityId())) return; + + ModeledEntity modeledEntity = ModelEngineAPI.getModeledEntity(entity); + if (modeledEntity == null) return; + + Optional model = modeledEntity.getModels().values().stream().findFirst(); + model.ifPresent(m -> create(modeledEntity, m)); + } + public ConcurrentHashMap> getEntitiesCache() { return entitiesCache; } diff --git a/src/main/java/re/imc/geysermodelengine/managers/server/ServerData.java b/src/main/java/re/imc/geysermodelengine/managers/server/ServerData.java deleted file mode 100644 index 5b6bbfc..0000000 --- a/src/main/java/re/imc/geysermodelengine/managers/server/ServerData.java +++ /dev/null @@ -1,14 +0,0 @@ -package re.imc.geysermodelengine.managers.server; - -import io.papermc.paper.threadedregions.scheduler.ScheduledTask; - -import java.util.concurrent.ConcurrentHashMap; - -public class ServerData { - - private final ConcurrentHashMap activeRunnablesCache = new ConcurrentHashMap<>(); - - public ConcurrentHashMap getActiveRunnablesCache() { - return activeRunnablesCache; - } -} \ No newline at end of file diff --git a/src/main/java/re/imc/geysermodelengine/managers/server/ServerManager.java b/src/main/java/re/imc/geysermodelengine/managers/server/ServerManager.java deleted file mode 100644 index a86d1b6..0000000 --- a/src/main/java/re/imc/geysermodelengine/managers/server/ServerManager.java +++ /dev/null @@ -1,14 +0,0 @@ -package re.imc.geysermodelengine.managers.server; - -public class ServerManager { - - private final ServerData serverData; - - public ServerManager() { - this.serverData = new ServerData(); - } - - public ServerData getServerData() { - return serverData; - } -} diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index b9cf47c..f45e067 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -8,6 +8,8 @@ authors: - willem.dev - TheLividaProject +load: STARTUP + dependencies: server: GeyserUtils: