mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-19 14:59:19 +00:00
disable part visibility by default
This commit is contained in:
@@ -20,6 +20,8 @@ import re.imc.geysermodelengine.listener.ModelListener;
|
|||||||
import re.imc.geysermodelengine.listener.MountPacketListener;
|
import re.imc.geysermodelengine.listener.MountPacketListener;
|
||||||
import re.imc.geysermodelengine.model.ModelEntity;
|
import re.imc.geysermodelengine.model.ModelEntity;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -56,6 +58,9 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private boolean initialized = false;
|
private boolean initialized = false;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private List<String> enablePartVisibilityModels = new ArrayList<>();
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Plugin startup logic
|
// Plugin startup logic
|
||||||
@@ -66,6 +71,7 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
debug = getConfig().getBoolean("debug", false);
|
debug = getConfig().getBoolean("debug", false);
|
||||||
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));
|
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));
|
||||||
joinSendDelay = getConfig().getInt("join-send-delay", 20);
|
joinSendDelay = getConfig().getInt("join-send-delay", 20);
|
||||||
|
enablePartVisibilityModels.addAll(getConfig().getStringList("enable-part-visibility-models"));
|
||||||
if (joinSendDelay > 0) {
|
if (joinSendDelay > 0) {
|
||||||
joinedPlayer = CacheBuilder.newBuilder()
|
joinedPlayer = CacheBuilder.newBuilder()
|
||||||
.expireAfterWrite(joinSendDelay * 50L, TimeUnit.MILLISECONDS).build();
|
.expireAfterWrite(joinSendDelay * 50L, TimeUnit.MILLISECONDS).build();
|
||||||
|
|||||||
@@ -237,21 +237,24 @@ public class EntityTask {
|
|||||||
|
|
||||||
Map<String, Boolean> updates = new HashMap<>();
|
Map<String, Boolean> updates = new HashMap<>();
|
||||||
|
|
||||||
model.getActiveModel().getBones().forEach((s, bone) -> {
|
if (GeyserModelEngine.getInstance().getEnablePartVisibilityModels().contains(model.getActiveModel().getBlueprint().getName())) {
|
||||||
if (!lastModelBoneSet.containsKey(bone))
|
model.getActiveModel().getBones().forEach((s, bone) -> {
|
||||||
lastModelBoneSet.put(bone, !bone.isVisible());
|
if (!lastModelBoneSet.containsKey(bone))
|
||||||
|
lastModelBoneSet.put(bone, !bone.isVisible());
|
||||||
|
|
||||||
Boolean lastBone = lastModelBoneSet.get(bone);
|
Boolean lastBone = lastModelBoneSet.get(bone);
|
||||||
if (lastBone == null)
|
if (lastBone == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!lastBone.equals(bone.isVisible()) || ignore) {
|
if (!lastBone.equals(bone.isVisible()) || ignore) {
|
||||||
String name = unstripName(bone).toLowerCase();
|
String name = unstripName(bone).toLowerCase();
|
||||||
updates.put(model.getActiveModel().getBlueprint().getName() + ":" + name, bone.isVisible());
|
updates.put(model.getActiveModel().getBlueprint().getName() + ":" + name, bone.isVisible());
|
||||||
lastModelBoneSet.replace(bone, bone.isVisible());
|
lastModelBoneSet.replace(bone, bone.isVisible());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
if (ignore || !lastAnimProperty.equals(currentAnimProperty)) {
|
if (ignore || !lastAnimProperty.equals(currentAnimProperty)) {
|
||||||
|
|||||||
@@ -2,4 +2,6 @@ data-send-delay: 5
|
|||||||
entity-view-distance: 50
|
entity-view-distance: 50
|
||||||
join-send-delay: 20
|
join-send-delay: 20
|
||||||
model-entity-type: BAT # must be a living entity
|
model-entity-type: BAT # must be a living entity
|
||||||
|
enable-part-visibility-models:
|
||||||
|
- example
|
||||||
debug: false
|
debug: false
|
||||||
Reference in New Issue
Block a user