diff options
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java index a8cd30d8..aeedd5d1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java @@ -31,6 +31,8 @@ import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class CapeManager { @@ -242,6 +244,8 @@ public class CapeManager { } } + private static final ExecutorService capeTicker = Executors.newCachedThreadPool(); + @SubscribeEvent public void onTick(TickEvent.ClientTickEvent event) { if (event.phase != TickEvent.Phase.END) return; @@ -274,7 +278,9 @@ public class CapeManager { continue; } capeMap.get(playerUUID).getLeft().setCapeTexture(capeName); - capeMap.get(playerUUID).getLeft().onTick(event, player); + capeTicker.submit(() -> { + capeMap.get(playerUUID).getLeft().onTick(event, player); + }); } else { toRemove.add(playerUUID); } @@ -284,7 +290,9 @@ public class CapeManager { if(hasLocalCape) { localCape.getLeft().setCapeTexture(localCape.getValue()); - localCape.getLeft().onTick(event, Minecraft.getMinecraft().thePlayer); + capeTicker.submit(() -> { + localCape.getLeft().onTick(event, Minecraft.getMinecraft().thePlayer); + }); } for(String playerName : toRemove) { capeMap.remove(playerName); |
