This commit is contained in:
gnembon committed 2021-04-19 03:48:37 -03:00
1 parent 1819694d19
commit fa3505763e
3 files changed
+28 -15

No files matched your search

@@ -19,10 +19,13 @@ import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
public class HUDController
@@ -38,18 +41,18 @@ public class HUDController
HUDListeners.add(listener);
}
public static Map<PlayerEntity, List<BaseText>> player_huds = new HashMap<>();
public static Map<ServerPlayerEntity, List<BaseText>> player_huds = new HashMap<>();
public static final Map<PlayerEntity, BaseText> scarpet_headers = new HashMap<>();
public static final Map<ServerPlayerEntity, BaseText> scarpet_headers = new HashMap<>();
public static final Map<PlayerEntity, BaseText> scarpet_footers = new HashMap<>();
public static final Map<ServerPlayerEntity, BaseText> scarpet_footers = new HashMap<>();
public static void resetScarpetHUDs() {
scarpet_headers.clear();
scarpet_footers.clear();
}
public static void addMessage(PlayerEntity player, BaseText hudMessage)
public static void addMessage(ServerPlayerEntity player, BaseText hudMessage)
{
if (!player_huds.containsKey(player))
{
@@ -70,9 +73,9 @@ public class HUDController
}
public static void update_hud(MinecraftServer server, boolean force)
public static void update_hud(MinecraftServer server, List<ServerPlayerEntity> force)
{
if ((server.getTicks() % 20 != 0 && !force) || CarpetServer.minecraft_server == null)
if (((server.getTicks() % 20 != 0) && force == null) || CarpetServer.minecraft_server == null)
return;
player_huds.clear();
@@ -109,12 +112,14 @@ public class HUDController
// extensions have time to pitch in.
HUDListeners.forEach(l -> l.accept(server));
for (PlayerEntity player: player_huds.keySet())
Set<ServerPlayerEntity> targets = new HashSet<>(player_huds.keySet());
if (force!= null) targets.addAll(force);
for (ServerPlayerEntity player: targets)
{
PlayerListHeaderS2CPacket packet = new PlayerListHeaderS2CPacket();
((PlayerListHeaderS2CPacketMixin)packet).setHeader(scarpet_headers.getOrDefault(player, new LiteralText("")));
((PlayerListHeaderS2CPacketMixin)packet).setFooter(Messenger.c(player_huds.get(player).toArray(new Object[0])));
((ServerPlayerEntity)player).networkHandler.sendPacket(packet);
((PlayerListHeaderS2CPacketMixin)packet).setFooter(Messenger.c(player_huds.getOrDefault(player, Collections.emptyList()).toArray(new Object[0])));
player.networkHandler.sendPacket(packet);
}
}
private static BaseText [] send_tps_display(MinecraftServer server)