From 9d64d02f3db3f317f14eb7e412a0b8df8584616d Mon Sep 17 00:00:00 2001
From: xSquishyLiam <56977759+xSquishyLiam@users.noreply.github.com>
Date: Sun, 14 Dec 2025 03:10:14 +0000
Subject: [PATCH] just sorting my build to match the main build
---
.github/workflows/build.yml | 1 -
.idea/workspace.xml | 4 ++--
paper/build.gradle.kts | 11 ++++++++-
.../geysermodelengine/GeyserModelEngine.java | 16 ++++++++-----
.../hooks/FloodgateAPIHook.java | 24 +++++++++++++++++++
.../managers/model/EntityTaskManager.java | 2 +-
.../BetterModelPropertyHandler.java | 4 +---
.../ModelEnginePropertyHandler.java | 10 ++++----
.../geysermodelengine/util/BedrockUtils.java | 13 +++++-----
paper/src/main/resources/config.yml | 4 +++-
paper/src/main/resources/paper-plugin.yml | 2 +-
11 files changed, 64 insertions(+), 27 deletions(-)
create mode 100644 paper/src/main/java/re/imc/geysermodelengine/hooks/FloodgateAPIHook.java
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b27e9d1..dc9fcc6 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -4,7 +4,6 @@ on:
push:
branches:
- main
- - bettermodel-support-dev
jobs:
build:
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0f855d4..04b1df4 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -11,7 +11,7 @@
-
+
@@ -96,7 +96,7 @@
"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",
+ "last_opened_file_path": "D:/Coding/Minecraft/GeyserExtensionists/GeyserModelEngine",
"project.structure.last.edited": "Project",
"project.structure.proportion": "0.0",
"project.structure.side.proportion": "0.2",
diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts
index 73239ab..f4e67cf 100644
--- a/paper/build.gradle.kts
+++ b/paper/build.gradle.kts
@@ -4,7 +4,7 @@ plugins {
}
group = "re.imc"
-version = "1.0.0"
+version = "1.0.1"
repositories {
mavenCentral()
@@ -58,4 +58,13 @@ tasks.shadowJar {
tasks.build {
dependsOn("shadowJar")
+}
+
+tasks.processResources {
+ val props = mapOf("version" to version)
+ inputs.properties(props)
+ filteringCharset = "UTF-8"
+ filesMatching("paper-plugin.yml") {
+ expand(props)
+ }
}
\ No newline at end of file
diff --git a/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java b/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
index 608fa8f..edc1384 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
@@ -6,6 +6,7 @@ import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
+import re.imc.geysermodelengine.hooks.FloodgateAPIHook;
import re.imc.geysermodelengine.listener.ModelListener;
import re.imc.geysermodelengine.listener.MountPacketListener;
import re.imc.geysermodelengine.managers.ConfigManager;
@@ -34,6 +35,7 @@ public class GeyserModelEngine extends JavaPlugin {
PacketEvents.getAPI().load();
// CommandAPI.onLoad(new CommandAPIPaperConfig(this));
+ preLoadManagers();
}
@Override
@@ -59,16 +61,19 @@ public class GeyserModelEngine extends JavaPlugin {
private void loadHooks() {
PacketEvents.getAPI().init();
+ FloodgateAPIHook.loadHook(this);
// CommandAPI.onEnable();
}
private void loadBStats() {
- if (configManager.getConfig().getBoolean("metrics.bstats", true)) new Metrics(this, 26981);
+ if (this.configManager.getConfig().getBoolean("metrics.bstats", true)) new Metrics(this, 26981);
+ }
+
+ private void preLoadManagers() {
+ this.configManager = new ConfigManager(this);
}
private void loadManagers() {
- this.configManager = new ConfigManager(this);
-
this.commandManager = new CommandManager(this);
this.modelManager = new ModelManager(this);
@@ -77,9 +82,8 @@ public class GeyserModelEngine extends JavaPlugin {
private void loadRunnables() {
this.schedulerPool = Executors.newScheduledThreadPool(configManager.getConfig().getInt("models.thread-pool-size", 4));
-
- schedulerPool.scheduleAtFixedRate(new UpdateTaskRunnable(this), 10, configManager.getConfig().getLong("models.entity-position-update-period", 35), TimeUnit.MILLISECONDS);
- schedulerPool.scheduleAtFixedRate(new BedrockMountControlRunnable(this), 1, 1, TimeUnit.MILLISECONDS);
+ this.schedulerPool.scheduleAtFixedRate(new UpdateTaskRunnable(this), 10, configManager.getConfig().getLong("models.entity-position-update-period", 35), TimeUnit.MILLISECONDS);
+ this.schedulerPool.scheduleAtFixedRate(new BedrockMountControlRunnable(this), 1, 1, TimeUnit.MILLISECONDS);
}
public ConfigManager getConfigManager() {
diff --git a/paper/src/main/java/re/imc/geysermodelengine/hooks/FloodgateAPIHook.java b/paper/src/main/java/re/imc/geysermodelengine/hooks/FloodgateAPIHook.java
new file mode 100644
index 0000000..b192306
--- /dev/null
+++ b/paper/src/main/java/re/imc/geysermodelengine/hooks/FloodgateAPIHook.java
@@ -0,0 +1,24 @@
+package re.imc.geysermodelengine.hooks;
+
+import org.bukkit.Bukkit;
+import org.geysermc.floodgate.api.FloodgateApi;
+import re.imc.geysermodelengine.GeyserModelEngine;
+
+public class FloodgateAPIHook {
+
+ private static FloodgateApi floodgateAPI;
+
+ public static void loadHook(GeyserModelEngine plugin) {
+ if (Bukkit.getPluginManager().getPlugin("floodgate") == null || !plugin.getConfigManager().getConfig().getBoolean("options.hooks.floodgate", true)) {
+ plugin.getLogger().info("Floodgate hook disabled!");
+ return;
+ }
+
+ floodgateAPI = FloodgateApi.getInstance();
+ plugin.getLogger().info("Floodgate hook enabled!");
+ }
+
+ public static FloodgateApi getAPI() {
+ return floodgateAPI;
+ }
+}
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/EntityTaskManager.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/EntityTaskManager.java
index 68580fb..5553811 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/EntityTaskManager.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/EntityTaskManager.java
@@ -41,7 +41,7 @@ public class EntityTaskManager {
public void checkViewers(EntityData model, Set viewers) {
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
- if (!BedrockUtils.isBedrockPlayer(onlinePlayer)) return;
+ if (!BedrockUtils.isBedrockPlayer(onlinePlayer)) continue;
if (canSee(onlinePlayer, model.getEntity())) {
if (!viewers.contains(onlinePlayer)) {
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/BetterModelPropertyHandler.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/BetterModelPropertyHandler.java
index 2e46acf..993533f 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/BetterModelPropertyHandler.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/BetterModelPropertyHandler.java
@@ -134,9 +134,7 @@ public class BetterModelPropertyHandler implements PropertyHandler {
List list = new ArrayList<>(boneUpdates.keySet());
Collections.sort(list);
- for (Player player : players) {
- EntityUtils.sendIntProperties(player, entity, intUpdates);
- }
+ players.forEach(player -> EntityUtils.sendIntProperties(player, entity, intUpdates));
}
public String unstripName(RenderedBone bone) {
diff --git a/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java b/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
index 3047253..95e8353 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
@@ -95,6 +95,8 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
if (anim.isOverride() && anim.getLoopMode() == BlueprintAnimation.LoopMode.ONCE) {
break;
}
+
+ plugin.getLogger().info(animId);
}
}
@@ -121,8 +123,8 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
if (boneUpdates.isEmpty() && animUpdates.isEmpty()) return;
Map intUpdates = new HashMap<>();
- int i = 0;
+ int i = 0;
for (Integer integer : BooleanPacker.mapBooleansToInts(boneUpdates)) {
intUpdates.put(plugin.getConfigManager().getConfig().getString("models.namespace") + ":bone" + i, integer);
i++;
@@ -172,8 +174,8 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
return name;
}
- private Color calculateCurrentColor(ModelEngineEntityData data) {
- if (data.getActiveModel().isMarkedHurt()) return new Color(data.getActiveModel().getDamageTint().asARGB());
- return new Color(data.getActiveModel().getDefaultTint().asARGB());
+ private Color calculateCurrentColor(ModelEngineEntityData modelEngineEntityData) {
+ if (modelEngineEntityData.getActiveModel().isMarkedHurt()) return new Color(modelEngineEntityData.getActiveModel().getDamageTint().asARGB());
+ return new Color(modelEngineEntityData.getActiveModel().getDefaultTint().asARGB());
}
}
diff --git a/paper/src/main/java/re/imc/geysermodelengine/util/BedrockUtils.java b/paper/src/main/java/re/imc/geysermodelengine/util/BedrockUtils.java
index 5ba3e2d..5c38218 100644
--- a/paper/src/main/java/re/imc/geysermodelengine/util/BedrockUtils.java
+++ b/paper/src/main/java/re/imc/geysermodelengine/util/BedrockUtils.java
@@ -2,17 +2,16 @@ package re.imc.geysermodelengine.util;
import org.bukkit.entity.Player;
import org.geysermc.floodgate.api.FloodgateApi;
+import re.imc.geysermodelengine.hooks.FloodgateAPIHook;
public class BedrockUtils {
- private static FloodgateApi FLOODGATE_API;
+ private static final FloodgateApi floodgateAPIHook = FloodgateAPIHook.getAPI();
public static boolean isBedrockPlayer(Player player) {
- if (FLOODGATE_API != null) return FLOODGATE_API.isFloodgatePlayer(player.getUniqueId());
- return player.getClientBrandName().contains("Geyser");
- }
-
- public static FloodgateApi getFloodgateApi() {
- return FLOODGATE_API;
+ if (floodgateAPIHook != null) return floodgateAPIHook.isFloodgatePlayer(player.getUniqueId());
+ String clientBrand = player.getClientBrandName();
+ if (clientBrand == null) return false;
+ return clientBrand.contains("Geyser");
}
}
diff --git a/paper/src/main/resources/config.yml b/paper/src/main/resources/config.yml
index 32d3d21..a4da727 100644
--- a/paper/src/main/resources/config.yml
+++ b/paper/src/main/resources/config.yml
@@ -10,4 +10,6 @@ models:
thread-pool-size: 4
options:
- debug: false
\ No newline at end of file
+ debug: false
+ hooks:
+ floodgate: true # Recommended method
\ No newline at end of file
diff --git a/paper/src/main/resources/paper-plugin.yml b/paper/src/main/resources/paper-plugin.yml
index 61af711..9374450 100644
--- a/paper/src/main/resources/paper-plugin.yml
+++ b/paper/src/main/resources/paper-plugin.yml
@@ -1,6 +1,6 @@
main: re.imc.geysermodelengine.GeyserModelEngine
name: GeyserModelEngine
-version: '1.0.0'
+version: '${version}'
api-version: '1.21'
authors: