From 742351ec666bb45c21a1710869bd2f04fd14ecb8 Mon Sep 17 00:00:00 2001
From: xSquishyLiam <56977759+xSquishyLiam@users.noreply.github.com>
Date: Sun, 9 Nov 2025 22:44:10 +0000
Subject: [PATCH] removed a debugger i had
---
.idea/workspace.xml | 20 ++++--
build.gradle.kts | 2 +-
gradle/wrapper/gradle-wrapper.properties | 2 +-
renovate.json | 36 +----------
.../geysermodelengine/GeyserModelEngine.java | 4 +-
.../ModelEnginePropertyHandler.java | 64 +++++++++----------
.../taskshandler/ModelEngineTaskHandler.java | 12 ++--
.../BedrockMountControlRunnable.java | 4 +-
.../runnables/UpdateTaskRunnable.java | 15 +++--
9 files changed, 69 insertions(+), 90 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 9a89915..2e64d3a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,14 +4,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -60,7 +70,7 @@
-
+
@@ -93,13 +103,13 @@
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
- "git-widget-placeholder": "bettermodel-support-dev",
+ "git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "D:/Coding/Forks/Minecraft/GeyserModelEngine",
"project.structure.last.edited": "Project",
"project.structure.proportion": "0.0",
"project.structure.side.proportion": "0.2",
- "settings.editor.selected.configurable": "reference.settings.project.maven.runner"
+ "settings.editor.selected.configurable": "reference.settingsdialog.project.gradle"
}
}
diff --git a/build.gradle.kts b/build.gradle.kts
index ab2d265..c598abf 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,6 +1,6 @@
plugins {
id("java")
- id("io.github.goooler.shadow") version "8.1.8"
+ id("com.gradleup.shadow") version "9.2.2"
}
group = "re.imc"
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index cea7a79..bad7c24 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/renovate.json b/renovate.json
index 942faf4..32f78b0 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,39 +1,9 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
- "config:recommended",
- "gradle:default",
- ":separateMajorReleases",
- ":prImmediately"
+ "config:recommended"
],
- "baseBranches": ["main"],
- "labels": ["dependencies", "gradle"],
- "prConcurrentLimit": 5,
- "prHourlyLimit": 1,
- "dependencyDashboard": true,
- "packageRules": [
- {
- "description": "Useful libraries",
- "matchPackagePatterns": [
- "dev.jorel:commandapi-paper-shade",
- "com.github.retrooper",
- "org.reflections"
- ],
- "matchUpdateTypes": ["minor", "patch"],
- "automerge": true
- },
- {
- "description": "Plugin API dependencies",
- "matchPackagePatterns": [
- "com.ticxo.modelengine",
- "org.geysermc.floodgate"
- ],
- "groupName": "Minecraft Plugins APIs"
- },
- {
- "description": "Automatically update Gradle Wrapper",
- "matchManagers": ["gradle-wrapper"],
- "groupName": "Gradle Wrapper Update"
- }
+ "baseBranches": [
+ "main"
]
}
\ No newline at end of file
diff --git a/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java b/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
index d11d709..fbfa4d9 100644
--- a/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
+++ b/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java
@@ -80,8 +80,8 @@ public class GeyserModelEngine extends JavaPlugin {
private void loadRunnables() {
this.schedulerPool = Executors.newScheduledThreadPool(configManager.getConfig().getInt("models.thread-pool-size", 4));
- Bukkit.getAsyncScheduler().runAtFixedRate(this, new UpdateTaskRunnable(this), 10, configManager.getConfig().getLong("models.entity-position-update-period", 35), TimeUnit.MILLISECONDS);
- Bukkit.getAsyncScheduler().runAtFixedRate(this, new BedrockMountControlRunnable(this), 1, 1, TimeUnit.MILLISECONDS);
+ 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);
}
public ConfigManager getConfigManager() {
diff --git a/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java b/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
index b9dd73d..688775f 100644
--- a/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
+++ b/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java
@@ -40,28 +40,22 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
if (average == lastScale) return;
}
- for (Player player : players) {
- EntityUtils.sendCustomScale(player, modelEngineEntityData.getEntity().getEntityId(), average);
- }
- } catch (Throwable ignored) {}
+ players.forEach(player -> EntityUtils.sendCustomScale(player, modelEngineEntityData.getEntity().getEntityId(), average));
+ } catch (Exception err) {
+ throw new RuntimeException(err);
+ }
}
@Override
public void sendColor(EntityData entityData, Collection players, Color lastColor, boolean firstSend) {
if (players.isEmpty()) return;
- ModelEngineEntityData modelEngineEntityData = (ModelEngineEntityData) entityData;
+ ModelEngineEntityData data = (ModelEngineEntityData) entityData;
+ Color color = calculateCurrentColor(data);
- Color color = new Color(modelEngineEntityData.getActiveModel().getDefaultTint().asARGB());
- if (modelEngineEntityData.getActiveModel().isMarkedHurt()) color = new Color(modelEngineEntityData.getActiveModel().getDamageTint().asARGB());
+ if (!firstSend && color.equals(lastColor)) return;
- if (firstSend) {
- if (color.equals(lastColor)) return;
- }
-
- for (Player player : players) {
- EntityUtils.sendCustomColor(player, modelEngineEntityData.getEntity().getEntityId(), color);
- }
+ players.forEach(player -> EntityUtils.sendCustomColor(player, data.getEntity().getEntityId(), color));
}
@Override
@@ -86,7 +80,7 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
int entity = model.getEntity().getEntityId();
Set forceAnimSet = Set.of(forceAnims);
- Map boneUpdates = new HashMap<>();
+ Map boneUpdates = new LinkedHashMap<>();
Map animUpdates = new HashMap<>();
Set anims = new HashSet<>();
@@ -121,7 +115,9 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
}
}
- for (String anim : lastPlayed) animUpdates.put(anim, true);
+ for (String anim : lastPlayed) {
+ animUpdates.put(anim, true);
+ }
if (boneUpdates.isEmpty() && animUpdates.isEmpty()) return;
@@ -150,12 +146,21 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
if (plugin.getConfigManager().getConfig().getBoolean("options.debug")) plugin.getLogger().info(animUpdates.toString());
- List list = new ArrayList<>(boneUpdates.keySet());
- Collections.sort(list);
+ players.forEach(player -> EntityUtils.sendIntProperties(player, entity, intUpdates));
+ }
- for (Player player : players) {
- EntityUtils.sendIntProperties(player, entity, intUpdates);
- }
+ private void processBone(ModelEngineEntityData model, BlueprintBone bone, Map map) {
+ String name = unstripName(bone).toLowerCase();
+ if (name.equals("hitbox") || name.equals("shadow") || name.equals("mount") || name.startsWith("p_") || name.startsWith("b_") || name.startsWith("ob_")) return;
+
+ bone.getChildren().values().forEach(child -> processBone(model, child, map));
+
+ ModelBone activeBone = model.getActiveModel().getBones().get(bone.getName());
+
+ boolean visible = false;
+ if (activeBone != null) visible = activeBone.isVisible();
+
+ map.put(name, visible);
}
public String unstripName(BlueprintBone bone) {
@@ -168,19 +173,8 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
return name;
}
- private void processBone(ModelEngineEntityData model, BlueprintBone bone, Map map) {
- String name = unstripName(bone).toLowerCase();
- if (name.equals("hitbox") || name.equals("shadow") || name.equals("mount") || name.startsWith("p_") || name.startsWith("b_") || name.startsWith("ob_")) return;
-
- for (BlueprintBone blueprintBone : bone.getChildren().values()) {
- processBone(model, blueprintBone, map);
- }
-
- ModelBone activeBone = model.getActiveModel().getBones().get(bone.getName());
-
- boolean visible = false;
- if (activeBone != null) visible = activeBone.isVisible();
-
- map.put(name, visible);
+ private Color calculateCurrentColor(ModelEngineEntityData data) {
+ if (data.getActiveModel().isMarkedHurt()) return new Color(data.getActiveModel().getDamageTint().asARGB());
+ return new Color(data.getActiveModel().getDefaultTint().asARGB());
}
}
diff --git a/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java b/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java
index dc11348..7488a8c 100644
--- a/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java
+++ b/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java
@@ -47,10 +47,12 @@ public class ModelEngineTaskHandler implements TaskHandler {
@Override
public void runAsync() {
- plugin.getEntityTaskManager().checkViewers(entityData, entityData.getViewers());
+ if (removed || entityData == null) return;
PacketEntity entity = entityData.getEntity();
- if (entity.isDead()) return;
+ if (entity == null || entity.isDead()) return;
+
+ plugin.getEntityTaskManager().checkViewers(entityData, entityData.getViewers());
entityData.teleportToModel();
@@ -71,11 +73,7 @@ public class ModelEngineTaskHandler implements TaskHandler {
if (tick % 5 == 0) {
if (tick % 40 == 0) {
- for (Player viewer : Set.copyOf(viewers)) {
- if (!plugin.getEntityTaskManager().canSee(viewer, entityData.getEntity())) {
- viewers.remove(viewer);
- }
- }
+ viewers.removeIf(viewer -> !plugin.getEntityTaskManager().canSee(viewer, entityData.getEntity()));
}
}
diff --git a/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java b/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java
index c2f163d..745d098 100644
--- a/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java
+++ b/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java
@@ -14,7 +14,7 @@ import re.imc.geysermodelengine.GeyserModelEngine;
import java.util.UUID;
import java.util.function.Consumer;
-public class BedrockMountControlRunnable implements Consumer {
+public class BedrockMountControlRunnable implements Runnable {
private final GeyserModelEngine plugin;
@@ -23,7 +23,7 @@ public class BedrockMountControlRunnable implements Consumer {
}
@Override
- public void accept(ScheduledTask scheduledTask) {
+ public void run() {
for (UUID playerUUID : plugin.getModelManager().getPlayerJoinedCache()) {
Player player = Bukkit.getPlayer(playerUUID);
diff --git a/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java b/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java
index bf48f5d..595a3e7 100644
--- a/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java
+++ b/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java
@@ -6,9 +6,10 @@ import re.imc.geysermodelengine.managers.model.entity.EntityData;
import re.imc.geysermodelengine.managers.model.model.Model;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
-public class UpdateTaskRunnable implements Consumer {
+public class UpdateTaskRunnable implements Runnable {
private final GeyserModelEngine plugin;
@@ -17,10 +18,16 @@ public class UpdateTaskRunnable implements Consumer {
}
@Override
- public void accept(ScheduledTask scheduledTask) {
+ public void run() {
+ ConcurrentHashMap> entitiesCache = plugin.getModelManager().getEntitiesCache();
+ if (entitiesCache.isEmpty()) return;
+
try {
- for (Map models : plugin.getModelManager().getEntitiesCache().values()) {
- models.values().forEach(entityData -> plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false));
+ for (Map models : entitiesCache.values()) {
+ models.values().forEach(entityData -> {
+ if (entityData.getViewers().isEmpty()) return;
+ plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false);
+ });
}
} catch (Throwable err) {
throw new RuntimeException(err);