diff --git a/src/main/java/com/extendedae_plus/ae/wireless/LabelNetworkRegistry.java b/src/main/java/com/extendedae_plus/ae/wireless/LabelNetworkRegistry.java index e3acd03..5001915 100644 --- a/src/main/java/com/extendedae_plus/ae/wireless/LabelNetworkRegistry.java +++ b/src/main/java/com/extendedae_plus/ae/wireless/LabelNetworkRegistry.java @@ -103,7 +103,7 @@ public class LabelNetworkRegistry extends SavedData { } /** - * 注销端点;不再自动删除网络,网络的移除需显式调用 removeNetwork。 + * 注销端点;不自动删除网络,网络的移除需显式调用 removeNetwork。 */ public synchronized void unregister(IWirelessEndpoint endpoint) { ServerLevel level = endpoint.getServerLevel(); @@ -256,8 +256,8 @@ public class LabelNetworkRegistry extends SavedData { this.virtualHost = new VirtualLabelNodeHost(); this.managedNode = GridHelper.createManagedNode(virtualHost, NodeListener.INSTANCE); this.virtualHost.setManagedNode(this.managedNode); - // 虚拟节点不占用频道 - this.managedNode.setFlags(); + // 虚拟节点不占用频道,且提供致密(32)频道能力 + this.managedNode.setFlags(GridFlags.DENSE_CAPACITY); this.managedNode.setIdlePowerUsage(0.0); this.managedNode.setInWorldNode(false); this.managedNode.setVisualRepresentation(com.extendedae_plus.init.ModItems.LABELED_WIRELESS_TRANSCEIVER.get().getDefaultInstance()); @@ -288,6 +288,10 @@ public class LabelNetworkRegistry extends SavedData { endpoints.add(EndpointRef.load(list.getCompound(i))); } } + + public int endpointCount() { + return endpoints.size(); + } } public record EndpointRef(@Nullable ResourceKey dim, BlockPos pos) { diff --git a/src/main/java/com/extendedae_plus/client/screen/LabeledWirelessTransceiverScreen.java b/src/main/java/com/extendedae_plus/client/screen/LabeledWirelessTransceiverScreen.java index 834ab34..0006c25 100644 --- a/src/main/java/com/extendedae_plus/client/screen/LabeledWirelessTransceiverScreen.java +++ b/src/main/java/com/extendedae_plus/client/screen/LabeledWirelessTransceiverScreen.java @@ -56,6 +56,7 @@ public class LabeledWirelessTransceiverScreen extends AbstractContainerScreen list, String currentLabel, String ownerName, int usedChannels, int maxChannels) { + public void updateList(List list, String currentLabel, String ownerName, int usedChannels, int maxChannels, int onlineCount) { String prevSelected = getSelectedLabel(); this.entries.clear(); for (LabelNetworkRegistry.LabelNetworkSnapshot s : list) { @@ -332,8 +335,10 @@ public class LabeledWirelessTransceiverScreen extends AbstractContainerScreen player), rsp); }); ctx.get().setPacketHandled(true); diff --git a/src/main/java/com/extendedae_plus/network/LabelNetworkListS2CPacket.java b/src/main/java/com/extendedae_plus/network/LabelNetworkListS2CPacket.java index 3c5714e..02e0221 100644 --- a/src/main/java/com/extendedae_plus/network/LabelNetworkListS2CPacket.java +++ b/src/main/java/com/extendedae_plus/network/LabelNetworkListS2CPacket.java @@ -23,14 +23,16 @@ public class LabelNetworkListS2CPacket { private final String ownerName; private final int usedChannels; private final int maxChannels; + private final int onlineCount; - public LabelNetworkListS2CPacket(BlockPos pos, List list, String currentLabel, String ownerName, int usedChannels, int maxChannels) { + public LabelNetworkListS2CPacket(BlockPos pos, List list, String currentLabel, String ownerName, int usedChannels, int maxChannels, int onlineCount) { this.pos = pos; this.list = list; this.currentLabel = currentLabel; this.ownerName = ownerName; this.usedChannels = usedChannels; this.maxChannels = maxChannels; + this.onlineCount = onlineCount; } public static void encode(LabelNetworkListS2CPacket pkt, FriendlyByteBuf buf) { @@ -39,6 +41,7 @@ public class LabelNetworkListS2CPacket { buf.writeUtf(pkt.ownerName == null ? "" : pkt.ownerName, 128); buf.writeVarInt(pkt.usedChannels); buf.writeVarInt(pkt.maxChannels); + buf.writeVarInt(pkt.onlineCount); buf.writeVarInt(pkt.list.size()); for (LabelNetworkRegistry.LabelNetworkSnapshot s : pkt.list) { buf.writeUtf(s.label(), 128); @@ -52,6 +55,7 @@ public class LabelNetworkListS2CPacket { String ownerName = buf.readUtf(128); int usedChannels = buf.readVarInt(); int maxChannels = buf.readVarInt(); + int onlineCount = buf.readVarInt(); int size = buf.readVarInt(); List list = new ArrayList<>(size); for (int i = 0; i < size; i++) { @@ -59,7 +63,7 @@ public class LabelNetworkListS2CPacket { long channel = buf.readLong(); list.add(new LabelNetworkRegistry.LabelNetworkSnapshot(label, channel)); } - return new LabelNetworkListS2CPacket(pos, list, curLabel, ownerName, usedChannels, maxChannels); + return new LabelNetworkListS2CPacket(pos, list, curLabel, ownerName, usedChannels, maxChannels, onlineCount); } public static void handle(LabelNetworkListS2CPacket pkt, Supplier ctx) { @@ -71,7 +75,7 @@ public class LabelNetworkListS2CPacket { private static void handleClient(LabelNetworkListS2CPacket pkt) { Minecraft mc = Minecraft.getInstance(); if (mc.screen instanceof LabeledWirelessTransceiverScreen screen && screen.isFor(pkt.pos)) { - screen.updateList(pkt.list, pkt.currentLabel, pkt.ownerName, pkt.usedChannels, pkt.maxChannels); + screen.updateList(pkt.list, pkt.currentLabel, pkt.ownerName, pkt.usedChannels, pkt.maxChannels, pkt.onlineCount); } } } diff --git a/src/main/resources/assets/extendedae_plus/lang/en_us.json b/src/main/resources/assets/extendedae_plus/lang/en_us.json index b0ad989..4f6223c 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -105,6 +105,7 @@ "gui.extendedae_plus.labeled_wireless.button.refresh": "Disconnect", "gui.extendedae_plus.labeled_wireless.current_label": "Current Label", "gui.extendedae_plus.labeled_wireless.current_owner": "Owner", + "gui.extendedae_plus.labeled_wireless.online_count": "Online", "extendedae_plus.screen.reload_mapping": "Reload Mapping", "extendedae_plus.screen.reload_mapping_success": "Overloading mapping successful", diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json index 1eea61d..0603302 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -104,6 +104,7 @@ "gui.extendedae_plus.labeled_wireless.button.refresh": "断开连接", "gui.extendedae_plus.labeled_wireless.current_label": "当前标签", "gui.extendedae_plus.labeled_wireless.current_owner": "所有者", + "gui.extendedae_plus.labeled_wireless.online_count": "在线数", "extendedae_plus.screen.reload_mapping": "重载映射", "extendedae_plus.screen.reload_mapping_success": "重载映射成功", diff --git a/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui.png b/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui.png index 48a5ef2..4a586ba 100644 Binary files a/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui.png and b/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui_副本.png b/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui_副本.png deleted file mode 100644 index a8aade5..0000000 Binary files a/src/main/resources/assets/extendedae_plus/textures/gui/lable_wireless_transceiver_gui_副本.png and /dev/null differ