diff --git a/pom.xml b/pom.xml
index 5f3ed40..f28cfcc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
pw.yumc
Yum
- 2.7.5
+ 2.7.6
Yum
Minecraft 服务器插件管理系统
@@ -66,10 +66,9 @@
§a全新 2.X 版本 更多守护与优化
§c注意 §6- §aYum更新需要§d重启服务器!§c重启服务器!§4重启服务器!;
+ §b2.7.6 §6- §c暂时取消部分线程安全检测§4(不稳定)...;
§b2.7.5 §6- §c修复§eBukkitDev§e下载为空时的异常...;
§b2.7.4 §6- §e异步记录服务器报错与耗时操作 §a性能优化...;
- §b2.7.3 §6- §a调整lag判断条件 减少高峰期误报...;
- §b2.7.2 §6- §c修复mi lag命令参数错误报错 §d百分比显示能耗...;
DEBUG
UTF-8
diff --git a/src/main/java/pw/yumc/Yum/listeners/ThreadSafetyListener.java b/src/main/java/pw/yumc/Yum/listeners/ThreadSafetyListener.java
index b107b7f..04353e7 100644
--- a/src/main/java/pw/yumc/Yum/listeners/ThreadSafetyListener.java
+++ b/src/main/java/pw/yumc/Yum/listeners/ThreadSafetyListener.java
@@ -1,98 +1,96 @@
-package pw.yumc.Yum.listeners;
-
-import org.bukkit.Bukkit;
-import org.bukkit.event.Event;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.CreatureSpawnEvent;
-import org.bukkit.event.entity.ItemSpawnEvent;
-import org.bukkit.event.inventory.InventoryOpenEvent;
-import org.bukkit.event.player.PlayerMoveEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.event.player.PlayerTeleportEvent;
-import org.bukkit.event.world.ChunkLoadEvent;
-import org.bukkit.event.world.ChunkUnloadEvent;
-import org.bukkit.event.world.WorldLoadEvent;
-import org.bukkit.event.world.WorldSaveEvent;
-import org.bukkit.event.world.WorldUnloadEvent;
-import org.bukkit.plugin.Plugin;
-
-import cn.citycraft.PluginHelper.kit.PluginKit;
-import pw.yumc.Yum.Yum;
-
-/**
- * Fork From LagMonitor: https://github.com/games647/LagMonitor.git
- * We can listen to events which are intended to run sync to the main thread.
- * If those events are fired on a async task the operation was likely not thread-safe.
- */
-public class ThreadSafetyListener implements Listener {
-
- public ThreadSafetyListener(final Yum yum) {
- Bukkit.getPluginManager().registerEvents(this, yum);
- }
-
- @EventHandler
- public void onChunkLoad(final ChunkLoadEvent chunkLoadEvent) {
- checkSafety(chunkLoadEvent);
- }
-
- @EventHandler
- public void onChunkUnload(final ChunkUnloadEvent chunkUnloadEvent) {
- checkSafety(chunkUnloadEvent);
- }
-
- @EventHandler
- public void onCreatureSpawn(final CreatureSpawnEvent creatureSpawnEvent) {
- checkSafety(creatureSpawnEvent);
- }
-
- @EventHandler
- public void onInventoryOpen(final InventoryOpenEvent inventoryOpenEvent) {
- checkSafety(inventoryOpenEvent);
- }
-
- @EventHandler
- public void onItemSpawn(final ItemSpawnEvent itemSpawnEvent) {
- checkSafety(itemSpawnEvent);
- }
-
- @EventHandler
- public void onPlayerMove(final PlayerMoveEvent moveEvent) {
- checkSafety(moveEvent);
- }
-
- @EventHandler
- public void onPlayerQuit(final PlayerQuitEvent quitEvent) {
- checkSafety(quitEvent);
- }
-
- @EventHandler
- public void onPlayerTeleport(final PlayerTeleportEvent teleportEvent) {
- checkSafety(teleportEvent);
- }
-
- @EventHandler
- public void onWorldLoad(final WorldLoadEvent worldLoadEvent) {
- checkSafety(worldLoadEvent);
- }
-
- @EventHandler
- public void onWorldSave(final WorldSaveEvent worldSaveEvent) {
- checkSafety(worldSaveEvent);
- }
-
- @EventHandler
- public void onWorldUnload(final WorldUnloadEvent worldUnloadEvent) {
- checkSafety(worldUnloadEvent);
- }
-
- private void checkSafety(final Event eventType) {
- if (Yum.mainThread != null && Thread.currentThread() != Yum.mainThread && !eventType.isAsynchronous()) {
- final String eventName = eventType.getEventName();
- final Plugin plugin = PluginKit.getOperatePlugin();
- if (plugin != null) {
- throw new IllegalAccessError("[Yum 线程安全]: 请勿异步调用一个同步事件 " + eventName + " 操作插件: " + plugin.getName());
- }
- }
- }
-}
+package pw.yumc.Yum.listeners;
+
+import org.bukkit.Bukkit;
+import org.bukkit.event.Event;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.CreatureSpawnEvent;
+import org.bukkit.event.entity.ItemSpawnEvent;
+import org.bukkit.event.inventory.InventoryOpenEvent;
+import org.bukkit.event.player.PlayerMoveEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.event.player.PlayerTeleportEvent;
+import org.bukkit.event.world.ChunkLoadEvent;
+import org.bukkit.event.world.ChunkUnloadEvent;
+import org.bukkit.event.world.WorldLoadEvent;
+import org.bukkit.event.world.WorldSaveEvent;
+import org.bukkit.event.world.WorldUnloadEvent;
+import org.bukkit.plugin.Plugin;
+
+import cn.citycraft.PluginHelper.kit.PluginKit;
+import pw.yumc.Yum.Yum;
+
+/**
+ * Fork From LagMonitor: https://github.com/games647/LagMonitor.git
+ * We can listen to events which are intended to run sync to the main thread.
+ * If those events are fired on a async task the operation was likely not thread-safe.
+ */
+public class ThreadSafetyListener implements Listener {
+
+ public ThreadSafetyListener(final Yum yum) {
+ Bukkit.getPluginManager().registerEvents(this, yum);
+ }
+
+ @EventHandler
+ public void onChunkLoad(final ChunkLoadEvent chunkLoadEvent) {
+ checkSafety(chunkLoadEvent);
+ }
+
+ @EventHandler
+ public void onChunkUnload(final ChunkUnloadEvent chunkUnloadEvent) {
+ checkSafety(chunkUnloadEvent);
+ }
+
+ @EventHandler
+ public void onCreatureSpawn(final CreatureSpawnEvent creatureSpawnEvent) {
+ checkSafety(creatureSpawnEvent);
+ }
+
+ public void onInventoryOpen(final InventoryOpenEvent inventoryOpenEvent) {
+ checkSafety(inventoryOpenEvent);
+ }
+
+ @EventHandler
+ public void onItemSpawn(final ItemSpawnEvent itemSpawnEvent) {
+ checkSafety(itemSpawnEvent);
+ }
+
+ @EventHandler
+ public void onPlayerMove(final PlayerMoveEvent moveEvent) {
+ checkSafety(moveEvent);
+ }
+
+ @EventHandler
+ public void onPlayerQuit(final PlayerQuitEvent quitEvent) {
+ checkSafety(quitEvent);
+ }
+
+ @EventHandler
+ public void onPlayerTeleport(final PlayerTeleportEvent teleportEvent) {
+ checkSafety(teleportEvent);
+ }
+
+ @EventHandler
+ public void onWorldLoad(final WorldLoadEvent worldLoadEvent) {
+ checkSafety(worldLoadEvent);
+ }
+
+ public void onWorldSave(final WorldSaveEvent worldSaveEvent) {
+ checkSafety(worldSaveEvent);
+ }
+
+ @EventHandler
+ public void onWorldUnload(final WorldUnloadEvent worldUnloadEvent) {
+ checkSafety(worldUnloadEvent);
+ }
+
+ private void checkSafety(final Event eventType) {
+ if (Yum.mainThread != null && Thread.currentThread() != Yum.mainThread && !eventType.isAsynchronous()) {
+ final String eventName = eventType.getEventName();
+ final Plugin plugin = PluginKit.getOperatePlugin();
+ if (plugin != null) {
+ throw new IllegalAccessError("[Yum 线程安全]: 请勿异步调用一个同步事件 " + eventName + " 操作插件: " + plugin.getName());
+ }
+ }
+ }
+}