1
mirror of https://github.com/Shiewk/BlockHistory3.git synced 2026-04-28 04:24:17 +02:00

Fix RejectedExecutionException when too many actions are happening

This commit is contained in:
Shy
2025-02-02 15:51:58 +01:00
parent bee44236dd
commit 388f33790c
2 changed files with 8 additions and 3 deletions
@@ -41,7 +41,7 @@ public final class HistoryManager {
1, 1,
1, 1,
TimeUnit.SECONDS, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(0xff), new ArrayBlockingQueue<>(1000),
new NamedLoggingThreadFactory( new NamedLoggingThreadFactory(
threadName, threadName,
threadPriority, threadPriority,
@@ -26,6 +26,7 @@ import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.RejectedExecutionException;
public final class BlockListener implements Listener { public final class BlockListener implements Listener {
@@ -155,7 +156,7 @@ public final class BlockListener implements Listener {
} }
signData.append(serializer.serialize(line)); signData.append(serializer.serialize(line));
} }
BlockHistoryPlugin.instance().getHistoryManager().addHistoryElement(new BlockHistoryElement( addEntryToManager(new BlockHistoryElement(
block.getWorld(), block.getWorld(),
blockLocation.getBlockX(), blockLocation.getBlockX(),
blockLocation.getBlockY(), blockLocation.getBlockY(),
@@ -169,7 +170,11 @@ public final class BlockListener implements Listener {
} }
private void addEntryToManager(BlockHistoryElement element){ private void addEntryToManager(BlockHistoryElement element){
BlockHistoryPlugin.instance().getHistoryManager().addHistoryElement(element); try {
BlockHistoryPlugin.instance().getHistoryManager().addHistoryElement(element);
} catch (RejectedExecutionException e){
BlockHistoryPlugin.logger().warn("Too many actions are happening at the same time, skipping one");
}
} }
private void createAndAddEntry(BlockHistoryType type, Player player, Block block) { private void createAndAddEntry(BlockHistoryType type, Player player, Block block) {