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