fix concurrent fard exception i guess
finally !!!!
This commit is contained in:
parent
3b34eaf9cb
commit
cb2fd9401e
2 changed files with 42 additions and 6 deletions
|
@ -6,27 +6,61 @@ import com.mojang.brigadier.suggestion.Suggestions;
|
||||||
import land.chipmunk.chipmunkmod.data.MutablePlayerListEntry;
|
import land.chipmunk.chipmunkmod.data.MutablePlayerListEntry;
|
||||||
import land.chipmunk.chipmunkmod.listeners.Listener;
|
import land.chipmunk.chipmunkmod.listeners.Listener;
|
||||||
import land.chipmunk.chipmunkmod.listeners.ListenerManager;
|
import land.chipmunk.chipmunkmod.listeners.ListenerManager;
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
import net.minecraft.client.network.ClientPlayNetworkHandler;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.packet.Packet;
|
||||||
import net.minecraft.network.packet.s2c.play.CommandSuggestionsS2CPacket;
|
import net.minecraft.network.packet.s2c.play.CommandSuggestionsS2CPacket;
|
||||||
import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket;
|
import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket;
|
||||||
import net.minecraft.network.packet.s2c.play.PlayerRemoveS2CPacket;
|
import net.minecraft.network.packet.s2c.play.PlayerRemoveS2CPacket;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
public class Players extends Listener {
|
public class Players extends Listener {
|
||||||
public List<MutablePlayerListEntry> list = new ArrayList<>();
|
public List<MutablePlayerListEntry> list = new ArrayList<>();
|
||||||
|
|
||||||
public static Players INSTANCE = new Players();
|
public static Players INSTANCE = new Players(MinecraftClient.getInstance());
|
||||||
|
|
||||||
public Players () {
|
private Timer timer;
|
||||||
|
|
||||||
|
private final MinecraftClient client;
|
||||||
|
|
||||||
|
public Players (MinecraftClient client) {
|
||||||
|
this.client = client;
|
||||||
ListenerManager.addListener(this);
|
ListenerManager.addListener(this);
|
||||||
|
|
||||||
|
TabComplete.INSTANCE.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init () {}
|
public void init () {
|
||||||
|
final TimerTask task = new TimerTask() {
|
||||||
|
public void run () {
|
||||||
|
tick();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (timer != null) cleanup();
|
||||||
|
|
||||||
|
timer = new Timer();
|
||||||
|
timer.schedule(task, 0, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cleanup () {
|
||||||
|
list.clear();
|
||||||
|
|
||||||
|
if (timer == null) return;
|
||||||
|
|
||||||
|
timer.cancel();
|
||||||
|
timer.purge();
|
||||||
|
timer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void tick () {
|
||||||
|
final ClientPlayNetworkHandler networkHandler = client.getNetworkHandler();
|
||||||
|
|
||||||
|
if (networkHandler == null) cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packetReceived (Packet packet) {
|
public void packetReceived (Packet packet) {
|
||||||
|
|
|
@ -29,6 +29,8 @@ public class TabComplete extends Listener {
|
||||||
ListenerManager.addListener(this);
|
ListenerManager.addListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void init () {}
|
||||||
|
|
||||||
public CompletableFuture<CommandSuggestionsS2CPacket> complete (String command) {
|
public CompletableFuture<CommandSuggestionsS2CPacket> complete (String command) {
|
||||||
final ClientPlayNetworkHandler networkHandler = client.getNetworkHandler();
|
final ClientPlayNetworkHandler networkHandler = client.getNetworkHandler();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue