mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-04-11 05:33:15 +00:00
Wrapped rollback with a Callable to make sure that it executes on the Bukkit thread.
Saw this in a log: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) at java.util.ArrayList$Itr.next(ArrayList.java:791) at me.StevenLawson.TotalFreedomMod.TFM_RollbackManager.rollback(TFM_RollbackManager.java:94) at me.StevenLawson.TotalFreedomMod.Commands.Command_gtfo.run(Command_gtfo.java:51)
This commit is contained in:
parent
81ee5f04dd
commit
65ba053aee
@ -6,6 +6,8 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.Callable;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -83,6 +85,11 @@ public class TFM_RollbackManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int rollback(final String playerName)
|
public static int rollback(final String playerName)
|
||||||
|
{
|
||||||
|
final Future<Integer> future = Bukkit.getScheduler().callSyncMethod(TotalFreedomMod.plugin, new Callable<Integer>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Integer call() throws Exception
|
||||||
{
|
{
|
||||||
final List<RollbackEntry> entries = getEntriesByPlayer(playerName);
|
final List<RollbackEntry> entries = getEntriesByPlayer(playerName);
|
||||||
if (entries == null)
|
if (entries == null)
|
||||||
@ -118,6 +125,17 @@ public class TFM_RollbackManager
|
|||||||
}.runTaskLater(TotalFreedomMod.plugin, 20L * 20L);
|
}.runTaskLater(TotalFreedomMod.plugin, 20L * 20L);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return future.get();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static int undoRollback(String playerName)
|
public static int undoRollback(String playerName)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user