mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-19 14:59:19 +00:00
removed a debugger i had
This commit is contained in:
20
.idea/workspace.xml
generated
20
.idea/workspace.xml
generated
@@ -4,14 +4,24 @@
|
|||||||
<option name="autoReloadType" value="SELECTIVE" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="ff2e9770-ec88-4715-adeb-b9dbda130e1a" name="Changes" comment="" />
|
<list default="true" id="ff2e9770-ec88-4715-adeb-b9dbda130e1a" name="Changes" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle.kts" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/renovate.json" beforeDir="false" afterPath="$PROJECT_DIR$/renovate.json" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/managers/model/propertyhandler/ModelEnginePropertyHandler.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/managers/model/taskshandler/ModelEngineTaskHandler.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/runnables/BedrockMountControlRunnable.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java" afterDir="false" />
|
||||||
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="DarkyenusTimeTracker">
|
<component name="DarkyenusTimeTracker">
|
||||||
<option name="totalTimeSeconds" value="1293" />
|
<option name="totalTimeSeconds" value="15282" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ExternalProjectsData">
|
<component name="ExternalProjectsData">
|
||||||
<projectState path="$PROJECT_DIR$">
|
<projectState path="$PROJECT_DIR$">
|
||||||
@@ -60,7 +70,7 @@
|
|||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="GradleScriptDefinitionsStorage" workingDir="$PROJECT_DIR$" gradleHome="C:\Users\Livid\.gradle\wrapper\dists\gradle-8.12-bin\cetblhg4pflnnks72fxwobvgv\gradle-8.12" javaHome="C:\Users\Livid\.jdks\openjdk-21.0.1" gradleVersion="8.12" />
|
<component name="GradleScriptDefinitionsStorage" workingDir="$PROJECT_DIR$" gradleHome="C:\Users\Livid\.gradle\wrapper\dists\gradle-9.2.0-bin\11i5gvueggl8a5cioxuftxrik\gradle-9.2.0" javaHome="C:\Users\Livid\.jdks\openjdk-21.0.1" gradleVersion="9.2.0" />
|
||||||
<component name="MavenRunner">
|
<component name="MavenRunner">
|
||||||
<option name="delegateBuildToMaven" value="true" />
|
<option name="delegateBuildToMaven" value="true" />
|
||||||
</component>
|
</component>
|
||||||
@@ -93,13 +103,13 @@
|
|||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||||
"RunOnceActivity.git.unshallow": "true",
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
"git-widget-placeholder": "bettermodel-support-dev",
|
"git-widget-placeholder": "main",
|
||||||
"kotlin-language-version-configured": "true",
|
"kotlin-language-version-configured": "true",
|
||||||
"last_opened_file_path": "D:/Coding/Forks/Minecraft/GeyserModelEngine",
|
"last_opened_file_path": "D:/Coding/Forks/Minecraft/GeyserModelEngine",
|
||||||
"project.structure.last.edited": "Project",
|
"project.structure.last.edited": "Project",
|
||||||
"project.structure.proportion": "0.0",
|
"project.structure.proportion": "0.0",
|
||||||
"project.structure.side.proportion": "0.2",
|
"project.structure.side.proportion": "0.2",
|
||||||
"settings.editor.selected.configurable": "reference.settings.project.maven.runner"
|
"settings.editor.selected.configurable": "reference.settingsdialog.project.gradle"
|
||||||
}
|
}
|
||||||
}</component>
|
}</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("java")
|
id("java")
|
||||||
id("io.github.goooler.shadow") version "8.1.8"
|
id("com.gradleup.shadow") version "9.2.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "re.imc"
|
group = "re.imc"
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
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
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
@@ -1,39 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"extends": [
|
"extends": [
|
||||||
"config:recommended",
|
"config:recommended"
|
||||||
"gradle:default",
|
|
||||||
":separateMajorReleases",
|
|
||||||
":prImmediately"
|
|
||||||
],
|
],
|
||||||
"baseBranches": ["main"],
|
"baseBranches": [
|
||||||
"labels": ["dependencies", "gradle"],
|
"main"
|
||||||
"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"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -80,8 +80,8 @@ public class GeyserModelEngine extends JavaPlugin {
|
|||||||
private void loadRunnables() {
|
private void loadRunnables() {
|
||||||
this.schedulerPool = Executors.newScheduledThreadPool(configManager.getConfig().getInt("models.thread-pool-size", 4));
|
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);
|
schedulerPool.scheduleAtFixedRate(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 BedrockMountControlRunnable(this), 1, 1, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConfigManager getConfigManager() {
|
public ConfigManager getConfigManager() {
|
||||||
|
|||||||
@@ -40,28 +40,22 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
|
|||||||
if (average == lastScale) return;
|
if (average == lastScale) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player player : players) {
|
players.forEach(player -> EntityUtils.sendCustomScale(player, modelEngineEntityData.getEntity().getEntityId(), average));
|
||||||
EntityUtils.sendCustomScale(player, modelEngineEntityData.getEntity().getEntityId(), average);
|
} catch (Exception err) {
|
||||||
}
|
throw new RuntimeException(err);
|
||||||
} catch (Throwable ignored) {}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendColor(EntityData entityData, Collection<Player> players, Color lastColor, boolean firstSend) {
|
public void sendColor(EntityData entityData, Collection<Player> players, Color lastColor, boolean firstSend) {
|
||||||
if (players.isEmpty()) return;
|
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 (!firstSend && color.equals(lastColor)) return;
|
||||||
if (modelEngineEntityData.getActiveModel().isMarkedHurt()) color = new Color(modelEngineEntityData.getActiveModel().getDamageTint().asARGB());
|
|
||||||
|
|
||||||
if (firstSend) {
|
players.forEach(player -> EntityUtils.sendCustomColor(player, data.getEntity().getEntityId(), color));
|
||||||
if (color.equals(lastColor)) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Player player : players) {
|
|
||||||
EntityUtils.sendCustomColor(player, modelEngineEntityData.getEntity().getEntityId(), color);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -86,7 +80,7 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
|
|||||||
int entity = model.getEntity().getEntityId();
|
int entity = model.getEntity().getEntityId();
|
||||||
Set<String> forceAnimSet = Set.of(forceAnims);
|
Set<String> forceAnimSet = Set.of(forceAnims);
|
||||||
|
|
||||||
Map<String, Boolean> boneUpdates = new HashMap<>();
|
Map<String, Boolean> boneUpdates = new LinkedHashMap<>();
|
||||||
Map<String, Boolean> animUpdates = new HashMap<>();
|
Map<String, Boolean> animUpdates = new HashMap<>();
|
||||||
Set<String> anims = new HashSet<>();
|
Set<String> 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;
|
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());
|
if (plugin.getConfigManager().getConfig().getBoolean("options.debug")) plugin.getLogger().info(animUpdates.toString());
|
||||||
|
|
||||||
List<String> list = new ArrayList<>(boneUpdates.keySet());
|
players.forEach(player -> EntityUtils.sendIntProperties(player, entity, intUpdates));
|
||||||
Collections.sort(list);
|
}
|
||||||
|
|
||||||
for (Player player : players) {
|
private void processBone(ModelEngineEntityData model, BlueprintBone bone, Map<String, Boolean> map) {
|
||||||
EntityUtils.sendIntProperties(player, entity, intUpdates);
|
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) {
|
public String unstripName(BlueprintBone bone) {
|
||||||
@@ -168,19 +173,8 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processBone(ModelEngineEntityData model, BlueprintBone bone, Map<String, Boolean> map) {
|
private Color calculateCurrentColor(ModelEngineEntityData data) {
|
||||||
String name = unstripName(bone).toLowerCase();
|
if (data.getActiveModel().isMarkedHurt()) return new Color(data.getActiveModel().getDamageTint().asARGB());
|
||||||
if (name.equals("hitbox") || name.equals("shadow") || name.equals("mount") || name.startsWith("p_") || name.startsWith("b_") || name.startsWith("ob_")) return;
|
return new Color(data.getActiveModel().getDefaultTint().asARGB());
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,10 +47,12 @@ public class ModelEngineTaskHandler implements TaskHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void runAsync() {
|
public void runAsync() {
|
||||||
plugin.getEntityTaskManager().checkViewers(entityData, entityData.getViewers());
|
if (removed || entityData == null) return;
|
||||||
|
|
||||||
PacketEntity entity = entityData.getEntity();
|
PacketEntity entity = entityData.getEntity();
|
||||||
if (entity.isDead()) return;
|
if (entity == null || entity.isDead()) return;
|
||||||
|
|
||||||
|
plugin.getEntityTaskManager().checkViewers(entityData, entityData.getViewers());
|
||||||
|
|
||||||
entityData.teleportToModel();
|
entityData.teleportToModel();
|
||||||
|
|
||||||
@@ -71,11 +73,7 @@ public class ModelEngineTaskHandler implements TaskHandler {
|
|||||||
|
|
||||||
if (tick % 5 == 0) {
|
if (tick % 5 == 0) {
|
||||||
if (tick % 40 == 0) {
|
if (tick % 40 == 0) {
|
||||||
for (Player viewer : Set.copyOf(viewers)) {
|
viewers.removeIf(viewer -> !plugin.getEntityTaskManager().canSee(viewer, entityData.getEntity()));
|
||||||
if (!plugin.getEntityTaskManager().canSee(viewer, entityData.getEntity())) {
|
|
||||||
viewers.remove(viewer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import re.imc.geysermodelengine.GeyserModelEngine;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class BedrockMountControlRunnable implements Consumer<ScheduledTask> {
|
public class BedrockMountControlRunnable implements Runnable {
|
||||||
|
|
||||||
private final GeyserModelEngine plugin;
|
private final GeyserModelEngine plugin;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ public class BedrockMountControlRunnable implements Consumer<ScheduledTask> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void accept(ScheduledTask scheduledTask) {
|
public void run() {
|
||||||
for (UUID playerUUID : plugin.getModelManager().getPlayerJoinedCache()) {
|
for (UUID playerUUID : plugin.getModelManager().getPlayerJoinedCache()) {
|
||||||
Player player = Bukkit.getPlayer(playerUUID);
|
Player player = Bukkit.getPlayer(playerUUID);
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,10 @@ import re.imc.geysermodelengine.managers.model.entity.EntityData;
|
|||||||
import re.imc.geysermodelengine.managers.model.model.Model;
|
import re.imc.geysermodelengine.managers.model.model.Model;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class UpdateTaskRunnable implements Consumer<ScheduledTask> {
|
public class UpdateTaskRunnable implements Runnable {
|
||||||
|
|
||||||
private final GeyserModelEngine plugin;
|
private final GeyserModelEngine plugin;
|
||||||
|
|
||||||
@@ -17,10 +18,16 @@ public class UpdateTaskRunnable implements Consumer<ScheduledTask> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void accept(ScheduledTask scheduledTask) {
|
public void run() {
|
||||||
|
ConcurrentHashMap<Integer, Map<Model, EntityData>> entitiesCache = plugin.getModelManager().getEntitiesCache();
|
||||||
|
if (entitiesCache.isEmpty()) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (Map<Model, EntityData> models : plugin.getModelManager().getEntitiesCache().values()) {
|
for (Map<Model, EntityData> models : entitiesCache.values()) {
|
||||||
models.values().forEach(entityData -> plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false));
|
models.values().forEach(entityData -> {
|
||||||
|
if (entityData.getViewers().isEmpty()) return;
|
||||||
|
plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (Throwable err) {
|
} catch (Throwable err) {
|
||||||
throw new RuntimeException(err);
|
throw new RuntimeException(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user