mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-10-03 18:07:26 +02:00
Fix non-playerlist NPCs
This commit is contained in:
parent
8e85dde59b
commit
a807ee1f38
@ -1,8 +1,10 @@
|
|||||||
package net.citizensnpcs.util;
|
package net.citizensnpcs.util;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@ -16,10 +18,16 @@ public class PlayerUpdateTask extends BukkitRunnable {
|
|||||||
public void cancel() {
|
public void cancel() {
|
||||||
super.cancel();
|
super.cancel();
|
||||||
TICKERS.clear();
|
TICKERS.clear();
|
||||||
|
TICKERS_PENDING_ADD.clear();
|
||||||
|
TICKERS_PENDING_REMOVE.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
TICKERS.removeAll(TICKERS_PENDING_REMOVE);
|
||||||
|
TICKERS.addAll(TICKERS_PENDING_ADD);
|
||||||
|
TICKERS_PENDING_ADD.clear();
|
||||||
|
TICKERS_PENDING_REMOVE.clear();
|
||||||
Iterator<org.bukkit.entity.Entity> itr = TICKERS.iterator();
|
Iterator<org.bukkit.entity.Entity> itr = TICKERS.iterator();
|
||||||
while (itr.hasNext()) {
|
while (itr.hasNext()) {
|
||||||
Entity entity = NMS.getHandle(itr.next());
|
Entity entity = NMS.getHandle(itr.next());
|
||||||
@ -49,12 +57,14 @@ public class PlayerUpdateTask extends BukkitRunnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void addOrRemove(org.bukkit.entity.Entity entity, boolean remove) {
|
public static void addOrRemove(org.bukkit.entity.Entity entity, boolean remove) {
|
||||||
if (remove) {
|
if (!remove) {
|
||||||
TICKERS.remove(entity);
|
TICKERS_PENDING_REMOVE.add(entity);
|
||||||
} else {
|
} else {
|
||||||
TICKERS.add(entity);
|
TICKERS_PENDING_ADD.add(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<org.bukkit.entity.Entity> TICKERS = new ArrayList<org.bukkit.entity.Entity>();
|
private static Set<org.bukkit.entity.Entity> TICKERS = new HashSet<org.bukkit.entity.Entity>();
|
||||||
|
private static List<org.bukkit.entity.Entity> TICKERS_PENDING_ADD = new ArrayList<org.bukkit.entity.Entity>();
|
||||||
|
private static List<org.bukkit.entity.Entity> TICKERS_PENDING_REMOVE = new ArrayList<org.bukkit.entity.Entity>();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user