/* * WorldEdit, a Minecraft world manipulation toolkit * Copyright (C) sk89q * Copyright (C) WorldEdit team and contributors * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ package com.sk89q.worldedit.forge; import java.nio.charset.Charset; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.play.client.C17PacketCustomPayload; import com.sk89q.worldedit.LocalSession; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.FMLEventChannel; import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent; import cpw.mods.fml.common.network.NetworkRegistry; public class WECUIPacketHandler { public static final Charset UTF_8_CHARSET = Charset.forName("UTF-8"); private static FMLEventChannel WECUI_CHANNEL; public static void init() { WECUI_CHANNEL = NetworkRegistry.INSTANCE.newEventDrivenChannel(ForgeWorldEdit.CUI_PLUGIN_CHANNEL); WECUI_CHANNEL.register(new WECUIPacketHandler()); } @SubscribeEvent public void onPacketData(ServerCustomPacketEvent event) { C17PacketCustomPayload rawPacket = (C17PacketCustomPayload) event.packet.toC17Packet(); if (event.packet.channel().equals(ForgeWorldEdit.CUI_PLUGIN_CHANNEL)) { EntityPlayerMP player = getPlayerFromEvent(event); LocalSession session = ForgeWorldEdit.inst.getSession((EntityPlayerMP) player); if (session.hasCUISupport()) { return; } String text = new String(rawPacket.func_149558_e(), UTF_8_CHARSET); session.handleCUIInitializationMessage(text); } } private static EntityPlayerMP getPlayerFromEvent(ServerCustomPacketEvent event) { return ((NetHandlerPlayServer) event.handler).playerEntity; } }