mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-19 06:49:24 +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" />
|
||||
</component>
|
||||
<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="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="DarkyenusTimeTracker">
|
||||
<option name="totalTimeSeconds" value="1293" />
|
||||
<option name="totalTimeSeconds" value="15282" />
|
||||
</component>
|
||||
<component name="ExternalProjectsData">
|
||||
<projectState path="$PROJECT_DIR$">
|
||||
@@ -60,7 +70,7 @@
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</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">
|
||||
<option name="delegateBuildToMaven" value="true" />
|
||||
</component>
|
||||
@@ -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"
|
||||
}
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
|
||||
@@ -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"
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -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
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -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<Player> 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<String> forceAnimSet = Set.of(forceAnims);
|
||||
|
||||
Map<String, Boolean> boneUpdates = new HashMap<>();
|
||||
Map<String, Boolean> boneUpdates = new LinkedHashMap<>();
|
||||
Map<String, Boolean> animUpdates = new HashMap<>();
|
||||
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;
|
||||
|
||||
@@ -150,12 +146,21 @@ public class ModelEnginePropertyHandler implements PropertyHandler {
|
||||
|
||||
if (plugin.getConfigManager().getConfig().getBoolean("options.debug")) plugin.getLogger().info(animUpdates.toString());
|
||||
|
||||
List<String> 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<String, Boolean> 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<String, Boolean> 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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import re.imc.geysermodelengine.GeyserModelEngine;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class BedrockMountControlRunnable implements Consumer<ScheduledTask> {
|
||||
public class BedrockMountControlRunnable implements Runnable {
|
||||
|
||||
private final GeyserModelEngine plugin;
|
||||
|
||||
@@ -23,7 +23,7 @@ public class BedrockMountControlRunnable implements Consumer<ScheduledTask> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(ScheduledTask scheduledTask) {
|
||||
public void run() {
|
||||
for (UUID playerUUID : plugin.getModelManager().getPlayerJoinedCache()) {
|
||||
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 java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class UpdateTaskRunnable implements Consumer<ScheduledTask> {
|
||||
public class UpdateTaskRunnable implements Runnable {
|
||||
|
||||
private final GeyserModelEngine plugin;
|
||||
|
||||
@@ -17,10 +18,16 @@ public class UpdateTaskRunnable implements Consumer<ScheduledTask> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(ScheduledTask scheduledTask) {
|
||||
public void run() {
|
||||
ConcurrentHashMap<Integer, Map<Model, EntityData>> entitiesCache = plugin.getModelManager().getEntitiesCache();
|
||||
if (entitiesCache.isEmpty()) return;
|
||||
|
||||
try {
|
||||
for (Map<Model, EntityData> models : plugin.getModelManager().getEntitiesCache().values()) {
|
||||
models.values().forEach(entityData -> plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false));
|
||||
for (Map<Model, EntityData> 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);
|
||||
|
||||
Reference in New Issue
Block a user