mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-19 14:59:19 +00:00
fix reload command
This commit is contained in:
@@ -26,10 +26,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
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.*;
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public final class GeyserModelEngine extends JavaPlugin {
|
public final class GeyserModelEngine extends JavaPlugin {
|
||||||
|
|
||||||
@@ -68,6 +65,7 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private ScheduledExecutorService scheduler;
|
private ScheduledExecutorService scheduler;
|
||||||
|
private ScheduledFuture<?> updateTask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
@@ -78,20 +76,6 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
PacketEvents.getAPI().init();
|
PacketEvents.getAPI().init();
|
||||||
saveDefaultConfig();
|
|
||||||
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
|
|
||||||
sendDelay = getConfig().getInt("data-send-delay", 0);
|
|
||||||
scheduler = Executors.newScheduledThreadPool(getConfig().getInt("thread-pool-size", 4));
|
|
||||||
viewDistance = getConfig().getInt("entity-view-distance", 60);
|
|
||||||
debug = getConfig().getBoolean("debug", false);
|
|
||||||
joinSendDelay = getConfig().getInt("join-send-delay", 20);
|
|
||||||
entityPositionUpdatePeriod = getConfig().getLong("entity-position-update-period", 35);
|
|
||||||
enablePartVisibilityModels.addAll(getConfig().getStringList("enable-part-visibility-models"));
|
|
||||||
if (joinSendDelay > 0) {
|
|
||||||
joinedPlayer = CacheBuilder.newBuilder()
|
|
||||||
.expireAfterWrite(joinSendDelay * 50L, TimeUnit.MILLISECONDS).build();
|
|
||||||
}
|
|
||||||
instance = this;
|
|
||||||
PacketEvents.getAPI().getEventManager().registerListener(new MountPacketListener(), PacketListenerPriority.NORMAL);
|
PacketEvents.getAPI().getEventManager().registerListener(new MountPacketListener(), PacketListenerPriority.NORMAL);
|
||||||
/*
|
/*
|
||||||
scheduler.scheduleAtFixedRate(() -> {
|
scheduler.scheduleAtFixedRate(() -> {
|
||||||
@@ -106,17 +90,7 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
scheduler.scheduleWithFixedDelay(() -> {
|
reload();
|
||||||
try {
|
|
||||||
for (Map<ActiveModel, ModelEntity> models : ModelEntity.ENTITIES.values()) {
|
|
||||||
models.values().forEach(model -> model.getTask().updateEntityProperties(model.getViewers(), false));
|
|
||||||
}
|
|
||||||
} catch (Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
}
|
|
||||||
}, 10, entityPositionUpdatePeriod, TimeUnit.MILLISECONDS);
|
|
||||||
|
|
||||||
|
|
||||||
getCommand("geysermodelengine").setExecutor(new ReloadCommand(this));
|
getCommand("geysermodelengine").setExecutor(new ReloadCommand(this));
|
||||||
Bukkit.getPluginManager().registerEvents(new ModelListener(), this);
|
Bukkit.getPluginManager().registerEvents(new ModelListener(), this);
|
||||||
Bukkit.getScheduler()
|
Bukkit.getScheduler()
|
||||||
@@ -140,6 +114,36 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
BedrockMountControl.startTask();
|
BedrockMountControl.startTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void reload() {
|
||||||
|
saveDefaultConfig();
|
||||||
|
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
|
||||||
|
sendDelay = getConfig().getInt("data-send-delay", 0);
|
||||||
|
scheduler = Executors.newScheduledThreadPool(getConfig().getInt("thread-pool-size", 4));
|
||||||
|
viewDistance = getConfig().getInt("entity-view-distance", 60);
|
||||||
|
debug = getConfig().getBoolean("debug", false);
|
||||||
|
joinSendDelay = getConfig().getInt("join-send-delay", 20);
|
||||||
|
entityPositionUpdatePeriod = getConfig().getLong("entity-position-update-period", 35);
|
||||||
|
enablePartVisibilityModels.addAll(getConfig().getStringList("enable-part-visibility-models"));
|
||||||
|
if (joinSendDelay > 0) {
|
||||||
|
joinedPlayer = CacheBuilder.newBuilder()
|
||||||
|
.expireAfterWrite(joinSendDelay * 50L, TimeUnit.MILLISECONDS).build();
|
||||||
|
}
|
||||||
|
instance = this;
|
||||||
|
if (updateTask != null) {
|
||||||
|
updateTask.cancel(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateTask = scheduler.scheduleWithFixedDelay(() -> {
|
||||||
|
try {
|
||||||
|
for (Map<ActiveModel, ModelEntity> models : ModelEntity.ENTITIES.values()) {
|
||||||
|
models.values().forEach(model -> model.getTask().updateEntityProperties(model.getViewers(), false));
|
||||||
|
}
|
||||||
|
} catch (Throwable t) {
|
||||||
|
t.printStackTrace();
|
||||||
|
}
|
||||||
|
}, 10, entityPositionUpdatePeriod, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
PacketEvents.getAPI().terminate();
|
PacketEvents.getAPI().terminate();
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class ReloadCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
plugin.reloadConfig();
|
plugin.reloadConfig();
|
||||||
plugin.onEnable();
|
plugin.reload();
|
||||||
|
|
||||||
sender.sendMessage("§aGeyserModelEngine configuration reloaded!");
|
sender.sendMessage("§aGeyserModelEngine configuration reloaded!");
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ public class EntityTask {
|
|||||||
sendScale(Collections.singleton(player), true);
|
sendScale(Collections.singleton(player), true);
|
||||||
sendColor(Collections.singleton(player), true);
|
sendColor(Collections.singleton(player), true);
|
||||||
updateEntityProperties(Collections.singleton(player), true);
|
updateEntityProperties(Collections.singleton(player), true);
|
||||||
}, 1000, TimeUnit.MILLISECONDS);
|
}, 500, TimeUnit.MILLISECONDS);
|
||||||
}, 100, TimeUnit.MILLISECONDS);
|
}, delay * 50L, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendScale(Collection<Player> players, boolean firstSend) {
|
public void sendScale(Collection<Player> players, boolean firstSend) {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class PacketEntity {
|
|||||||
public void sendSpawnPacket(Collection<Player> players) {
|
public void sendSpawnPacket(Collection<Player> players) {
|
||||||
// EntitySpawnPacket packet = new EntitySpawnPacket(id, uuid, type, location);
|
// EntitySpawnPacket packet = new EntitySpawnPacket(id, uuid, type, location);
|
||||||
// EntityMetadataPacket metadataPacket = new EntityMetadataPacket(id);
|
// EntityMetadataPacket metadataPacket = new EntityMetadataPacket(id);
|
||||||
WrapperPlayServerSpawnEntity spawnEntity = new WrapperPlayServerSpawnEntity(id, uuid, EntityTypes.BAT, SpigotConversionUtil.fromBukkitLocation(location), location.getYaw(), 0, null);
|
WrapperPlayServerSpawnEntity spawnEntity = new WrapperPlayServerSpawnEntity(id, uuid, type, SpigotConversionUtil.fromBukkitLocation(location), location.getYaw(), 0, null);
|
||||||
players.forEach(player -> PacketEvents.getAPI().getPlayerManager().sendPacket(player, spawnEntity));
|
players.forEach(player -> PacketEvents.getAPI().getPlayerManager().sendPacket(player, spawnEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user