From be7b067889314b2eda7b4f83200c6c292a0b59e3 Mon Sep 17 00:00:00 2001
From: xSquishyLiam <56977759+xSquishyLiam@users.noreply.github.com>
Date: Tue, 25 Nov 2025 03:25:17 +0000
Subject: [PATCH] updated BetterModel Support
---
.idea/workspace.xml | 52 +++++++++----------
paper/build.gradle.kts | 2 +-
.../geysermodelengine/GeyserModelEngine.java | 8 ++-
.../GeyserModelEngineReloadCommand.java | 20 ++++---
.../GeyserModelEngineCommandManager.java | 11 ++--
.../commands/subcommands/SubCommands.java | 4 +-
.../model/entity/BetterModelEntityData.java | 12 ++---
.../modelhandler/BetterModelHandler.java | 5 +-
.../taskshandler/BetterModelTaskHandler.java | 9 ++--
9 files changed, 59 insertions(+), 64 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7547ac9..b4e1e3e 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -11,7 +11,7 @@
-
+
@@ -78,31 +78,31 @@
- {
+ "keyToString": {
+ "Gradle.Build GeyserModelEngine.executor": "Run",
+ "Gradle.Download Sources.executor": "Run",
+ "Gradle.GeyserModelEngine [buildDependents].executor": "Run",
+ "Gradle.GeyserModelEngine [buildNeeded].executor": "Run",
+ "Gradle.GeyserModelEngine [build].executor": "Run",
+ "Gradle.GeyserModelEngine [clean].executor": "Run",
+ "Gradle.GeyserModelEngine [jar].executor": "Run",
+ "Maven.GeyserModelEngine [install...].executor": "Run",
+ "Maven.GeyserModelEngine [install].executor": "Run",
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "git-widget-placeholder": "main",
+ "ignore.virus.scanning.warn.message": "true",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "D:/Coding/Forks/Minecraft/GeyserModelEngine/geyser",
+ "project.structure.last.edited": "Project",
+ "project.structure.proportion": "0.0",
+ "project.structure.side.proportion": "0.2",
+ "settings.editor.selected.configurable": "reference.settingsdialog.project.gradle"
}
-}]]>
+}
@@ -231,8 +231,8 @@
-
+
diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts
index c598abf..a33e4fe 100644
--- a/paper/build.gradle.kts
+++ b/paper/build.gradle.kts
@@ -21,7 +21,7 @@ repositories {
dependencies {
compileOnly("io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT")
- implementation("dev.jorel:commandapi-paper-shade:11.0.0")
+// implementation("dev.jorel:commandapi-paper-shade:11.0.0")
compileOnly("com.ticxo.modelengine:ModelEngine:R4.0.9")
compileOnly("io.github.toxicity188:bettermodel:1.14.0")
diff --git a/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java b/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
index fbfa4d9..608fa8f 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
@@ -2,8 +2,6 @@ package re.imc.geysermodelengine;
import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.event.PacketListenerPriority;
-import dev.jorel.commandapi.CommandAPI;
-import dev.jorel.commandapi.CommandAPIPaperConfig;
import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
@@ -35,7 +33,7 @@ public class GeyserModelEngine extends JavaPlugin {
PacketEvents.setAPI(SpigotPacketEventsBuilder.build(this));
PacketEvents.getAPI().load();
- CommandAPI.onLoad(new CommandAPIPaperConfig(this));
+// CommandAPI.onLoad(new CommandAPIPaperConfig(this));
}
@Override
@@ -56,12 +54,12 @@ public class GeyserModelEngine extends JavaPlugin {
this.modelManager.removeEntities();
PacketEvents.getAPI().terminate();
- CommandAPI.onDisable();
+// CommandAPI.onDisable();
}
private void loadHooks() {
PacketEvents.getAPI().init();
- CommandAPI.onEnable();
+// CommandAPI.onEnable();
}
private void loadBStats() {
diff --git a/paper/src/main/java/re/imc/geysermodelengine/commands/geysermodelenginecommands/GeyserModelEngineReloadCommand.java b/paper/src/main/java/re/imc/geysermodelengine/commands/geysermodelenginecommands/GeyserModelEngineReloadCommand.java
index 2e4bfa7..5ecd25f 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/commands/geysermodelenginecommands/GeyserModelEngineReloadCommand.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/commands/geysermodelenginecommands/GeyserModelEngineReloadCommand.java
@@ -1,7 +1,5 @@
package re.imc.geysermodelengine.commands.geysermodelenginecommands;
-import dev.jorel.commandapi.CommandAPICommand;
-import org.bukkit.Bukkit;
import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.managers.commands.subcommands.SubCommands;
import re.imc.geysermodelengine.util.ColourUtils;
@@ -16,13 +14,13 @@ public class GeyserModelEngineReloadCommand implements SubCommands {
this.plugin = plugin;
}
- @Override
- public CommandAPICommand onCommand() {
- return new CommandAPICommand("reload")
- .withPermission("geysermodelengine.commands.reload")
- .executes((sender, args) -> {
- Bukkit.getAsyncScheduler().runNow(plugin, scheduledTask -> plugin.getConfigManager().load());
- sender.sendMessage(colourUtils.miniFormat(plugin.getConfigManager().getLang().getString("commands.reload.successfully-reloaded")));
- });
- }
+// @Override
+// public CommandAPICommand onCommand() {
+// return new CommandAPICommand("reload")
+// .withPermission("geysermodelengine.commands.reload")
+// .executes((sender, args) -> {
+// Bukkit.getAsyncScheduler().runNow(plugin, scheduledTask -> plugin.getConfigManager().load());
+// sender.sendMessage(colourUtils.miniFormat(plugin.getConfigManager().getLang().getString("commands.reload.successfully-reloaded")));
+// });
+// }
}
\ No newline at end of file
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/commands/managers/geysermodelengine/GeyserModelEngineCommandManager.java b/paper/src/main/java/re/imc/geysermodelengine/managers/commands/managers/geysermodelengine/GeyserModelEngineCommandManager.java
index 37b0a7d..c821956 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/commands/managers/geysermodelengine/GeyserModelEngineCommandManager.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/commands/managers/geysermodelengine/GeyserModelEngineCommandManager.java
@@ -1,6 +1,5 @@
package re.imc.geysermodelengine.managers.commands.managers.geysermodelengine;
-import dev.jorel.commandapi.CommandAPICommand;
import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.commands.geysermodelenginecommands.GeyserModelEngineReloadCommand;
import re.imc.geysermodelengine.managers.commands.CommandManagers;
@@ -19,11 +18,11 @@ public class GeyserModelEngineCommandManager implements CommandManagers {
}
private void registerCommand() {
- CommandAPICommand geyserModelEngineCommand = new CommandAPICommand(getName());
-
- commands.forEach(subCommands -> geyserModelEngineCommand.withSubcommand(subCommands.onCommand()));
-
- geyserModelEngineCommand.register();
+// CommandAPICommand geyserModelEngineCommand = new CommandAPICommand(getName());
+//
+// commands.forEach(subCommands -> geyserModelEngineCommand.withSubcommand(subCommands.onCommand()));
+//
+// geyserModelEngineCommand.register();
}
@Override
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/commands/subcommands/SubCommands.java b/paper/src/main/java/re/imc/geysermodelengine/managers/commands/subcommands/SubCommands.java
index 3d336fb..7391e64 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/commands/subcommands/SubCommands.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/commands/subcommands/SubCommands.java
@@ -1,11 +1,9 @@
package re.imc.geysermodelengine.managers.commands.subcommands;
-import dev.jorel.commandapi.CommandAPICommand;
-
public interface SubCommands {
/**
* Subcommand setup
*/
- CommandAPICommand onCommand();
+// CommandAPICommand onCommand();
}
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/entity/BetterModelEntityData.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/entity/BetterModelEntityData.java
index 0b358fb..f76adee 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/entity/BetterModelEntityData.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/entity/BetterModelEntityData.java
@@ -2,10 +2,10 @@ package re.imc.geysermodelengine.managers.model.entity;
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
import com.google.common.collect.Sets;
+import kr.toxicity.model.api.entity.BaseEntity;
import kr.toxicity.model.api.tracker.EntityTracker;
import kr.toxicity.model.api.tracker.Tracker;
import org.bukkit.Location;
-import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.managers.model.taskshandler.BetterModelTaskHandler;
@@ -20,7 +20,7 @@ public class BetterModelEntityData implements EntityData {
private final PacketEntity entity;
private final Set viewers = Sets.newConcurrentHashSet();
- private final Entity entitySource;
+ private final BaseEntity entitySource;
private final Tracker tracker;
private final EntityTracker entityTracker;
@@ -28,20 +28,20 @@ public class BetterModelEntityData implements EntityData {
private boolean hurt;
- public BetterModelEntityData(GeyserModelEngine plugin, Entity entitySource, Tracker tracker, EntityTracker entityTracker) {
+ public BetterModelEntityData(GeyserModelEngine plugin, BaseEntity entitySource, Tracker tracker, EntityTracker entityTracker) {
this.plugin = plugin;
this.entitySource = entitySource;
this.tracker = tracker;
this.entityTracker = entityTracker;
- this.entity = new PacketEntity(EntityTypes.PIG, viewers, entitySource.getLocation());
+ this.entity = new PacketEntity(EntityTypes.PIG, viewers, entitySource.location());
runEntityTask();
}
@Override
public void teleportToModel() {
- Location location = entitySource.getLocation();
+ Location location = entitySource.location();
entity.teleport(location);
}
@@ -68,7 +68,7 @@ public class BetterModelEntityData implements EntityData {
this.hurt = hurt;
}
- public Entity getEntitySource() {
+ public BaseEntity getEntitySource() {
return entitySource;
}
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/modelhandler/BetterModelHandler.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/modelhandler/BetterModelHandler.java
index b71fd3d..4fd70a5 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/modelhandler/BetterModelHandler.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/modelhandler/BetterModelHandler.java
@@ -1,5 +1,6 @@
package re.imc.geysermodelengine.managers.model.modelhandler;
+import kr.toxicity.model.api.entity.BaseEntity;
import kr.toxicity.model.api.tracker.EntityTracker;
import kr.toxicity.model.api.tracker.Tracker;
import org.bukkit.Bukkit;
@@ -26,11 +27,11 @@ public class BetterModelHandler implements ModelHandler {
//TODO fix dupe issue - dupe happens when server restart
@Override
public void createModel(Object... objects) {
- Entity entitySource = (Entity) objects[0];
+ BaseEntity entitySource = (BaseEntity) objects[0];
Tracker tracker = (Tracker) objects[1];
EntityTracker entityTracker = (EntityTracker) objects[2];
- int entityID = entitySource.getEntityId();
+ int entityID = entitySource.id();
PropertyHandler propertyHandler = plugin.getEntityTaskManager().getPropertyHandler();
EntityData entityData = new BetterModelEntityData(plugin, entitySource, tracker, entityTracker);
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/BetterModelTaskHandler.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/BetterModelTaskHandler.java
index 18c91fd..e64dd36 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/BetterModelTaskHandler.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/BetterModelTaskHandler.java
@@ -2,6 +2,7 @@ package re.imc.geysermodelengine.managers.model.taskshandler;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
+import kr.toxicity.model.api.entity.BaseEntity;
import kr.toxicity.model.api.tracker.Tracker;
import me.zimzaza4.geyserutils.spigot.api.EntityUtils;
import org.bukkit.entity.Entity;
@@ -53,17 +54,17 @@ public class BetterModelTaskHandler implements TaskHandler {
if (entity.isDead()) return;
Set viewers = entityData.getViewers();
- Entity entitySource = entityData.getEntitySource();
+ BaseEntity entitySource = entityData.getEntitySource();
Tracker tracker = entityData.getTracker();
entityData.teleportToModel();
- if (entitySource.isDead() || tracker.forRemoval()) {
+ if (entitySource.dead() || tracker.forRemoval()) {
removed = true;
entity.remove();
- plugin.getModelManager().getEntitiesCache().remove(entitySource.getEntityId());
- plugin.getModelManager().getModelEntitiesCache().remove(entitySource.getEntityId());
+ plugin.getModelManager().getEntitiesCache().remove(entitySource.id());
+ plugin.getModelManager().getModelEntitiesCache().remove(entitySource.id());
cancel();
return;