下面列出了net.minecraft.util.shape.VoxelShape#net.minecraft.client.network.ClientPlayNetworkHandler 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void apply(ClientPlayNetworkHandler handler) {
NetworkThreadUtils.forceMainThread(this, handler, MinecraftClient.getInstance());
Entity entity = MinecraftClient.getInstance().world.getEntityById(playerId);
if (entity instanceof PlayerEntity) {
((PlayerEntity) entity).trySleep(bedPos);
}
}
@Override
public void apply(ClientPlayNetworkHandler handler) {
if ("minecraft:container".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, slotCount <= 27 ? ScreenHandlerType.GENERIC_9X3 : ScreenHandlerType.GENERIC_9X6, title));
} else if ("minecraft:villager".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.MERCHANT, title));
} else if ("EntityHorse".equals(type)) {
handler.onOpenHorseScreen(new OpenHorseScreenS2CPacket(syncId, slotCount, horseId));
} else if (slotCount <= 0) {
if ("minecraft:crafting_table".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.CRAFTING, title));
} else if ("minecraft:enchanting_table".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.ENCHANTMENT, title));
} else if ("minecraft:anvil".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.ANVIL, title));
}
} else {
if ("minecraft:chest".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, slotCount <= 27 ? ScreenHandlerType.GENERIC_9X3 : ScreenHandlerType.GENERIC_9X6, title));
} else if ("minecraft:hopper".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.HOPPER, title));
} else if ("minecraft:furnace".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.FURNACE, title));
} else if ("minecraft:brewing_stand".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.BREWING_STAND, title));
} else if ("minecraft:beacon".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.BEACON, title));
} else if ("minecraft:dispenser".equals(type) || "minecraft:dropper".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.GENERIC_3X3, title));
} else if ("minecraft:shulker_box".equals(type)) {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, ScreenHandlerType.SHULKER_BOX, title));
} else {
handler.onOpenScreen(new OpenScreenS2CPacket(syncId, slotCount <= 27 ? ScreenHandlerType.GENERIC_9X3 : ScreenHandlerType.GENERIC_9X6, title));
}
}
}
@Inject(method = "onCustomPayload", at = @At("HEAD"), cancellable = true)
private void onOnCustomPayload(CustomPayloadS2CPacket packet, CallbackInfo ci) {
NetworkThreadUtils.forceMainThread(packet, (ClientPlayNetworkHandler) (Object) this, MinecraftClient.getInstance());
if (packet.getChannel().equals(CustomPayloadHandler.DROP_ID)) {
ci.cancel();
} else if (ConnectionInfo.protocolVersion != SharedConstants.getGameVersion().getProtocolVersion()
&& !CustomPayloadHandler.VANILLA_CHANNELS.contains(packet.getChannel())) {
CustomPayloadHandler.handleCustomPayload(packet);
ci.cancel();
}
}
@Environment(EnvType.CLIENT)
private void sendMessageClient(String s) {
ClientPlayNetworkHandler handler = MinecraftClient.getInstance().getNetworkHandler();
if (handler != null) {
try {
handler.onGameMessage(new GameMessageS2CPacket(
Text.Serializer.fromJson(ChatRewriter.legacyTextToJson(s)), MessageType.SYSTEM, Util.NIL_UUID
));
} catch (OffThreadException ignored) {
}
}
}
@Environment(EnvType.CLIENT)
private boolean kickClient(String msg) {
ClientPlayNetworkHandler handler = MinecraftClient.getInstance().getNetworkHandler();
if (handler != null) {
try {
handler.onDisconnect(new DisconnectS2CPacket(
Text.Serializer.fromJson(ChatRewriter.legacyTextToJson(msg))
));
} catch (OffThreadException ignored) {
}
return true;
}
return false;
}
private CommandDispatcher<CommandSource> getPlayerCommandDispatcher() {
return Optional.ofNullable(this.minecraft.player)
.map(player -> player.networkHandler)
.map(ClientPlayNetworkHandler::getCommandDispatcher)
.orElse(null);
}
@Shadow public abstract ClientPlayNetworkHandler getNetworkHandler();