diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/packet/MessageGuiButton.java')
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/packet/MessageGuiButton.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/packet/MessageGuiButton.java b/src/main/java/jp/plusplus/fbs/packet/MessageGuiButton.java new file mode 100644 index 0000000..bc58920 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/packet/MessageGuiButton.java @@ -0,0 +1,107 @@ +package jp.plusplus.fbs.packet;
+
+import cpw.mods.fml.common.network.ByteBufUtils;
+import cpw.mods.fml.common.network.simpleimpl.IMessage;
+import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
+import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import io.netty.buffer.ByteBuf;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.container.ContainerAlchemyCauldron;
+import jp.plusplus.fbs.container.ContainerTFKEnchantment;
+import jp.plusplus.fbs.container.ContainerWarp;
+import jp.plusplus.fbs.container.spirit.ContainerSpiritLearn;
+import jp.plusplus.fbs.container.spirit.ContainerSpiritMain;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import jp.plusplus.fbs.exprop.SanityManager;
+import jp.plusplus.fbs.spirit.SpiritManager;
+import jp.plusplus.fbs.spirit.SpiritStatus;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.Container;
+import net.minecraft.util.MathHelper;
+
+/**
+ * Created by plusplus_F on 2015/10/21.
+ */
+public class MessageGuiButton implements IMessage {
+ protected int buttonId;
+
+ public MessageGuiButton(){}
+ public MessageGuiButton(int id){
+ buttonId=id;
+ }
+
+ @Override
+ public void fromBytes(ByteBuf buf) {
+ buttonId= ByteBufUtils.readVarInt(buf, 4);
+ }
+
+ @Override
+ public void toBytes(ByteBuf buf) {
+ ByteBufUtils.writeVarInt(buf, buttonId, 4);
+ }
+
+ public static class Handler implements IMessageHandler<MessageGuiButton, IMessage>{
+
+ @Override
+ public IMessage onMessage(MessageGuiButton message, MessageContext ctx) {
+ Container con=ctx.getServerHandler().playerEntity.openContainer;
+
+ if(con instanceof ContainerTFKEnchantment){
+ //エンチャントできそうならエンチャントする
+ ContainerTFKEnchantment c=(ContainerTFKEnchantment)con;
+ if(c.canEnchant()){
+ c.tryEnchant();
+ }
+ }
+ else if(con instanceof ContainerAlchemyCauldron){
+ ContainerAlchemyCauldron c=(ContainerAlchemyCauldron)con;
+ if(c.entity.canCompounding()){
+ c.entity.tryCompounding(ctx.getServerHandler().playerEntity);
+ }
+ }
+ else if(con instanceof ContainerSpiritMain){
+ ContainerSpiritMain c=(ContainerSpiritMain)con;
+ EntityPlayer player=ctx.getServerHandler().playerEntity;
+ int x= MathHelper.floor_double(player.posX);
+ int y=MathHelper.floor_double(player.posY);
+ int z=MathHelper.floor_double(player.posZ);
+
+ if(c.type==0){
+ switch (message.buttonId){
+ case 0:
+ player.openGui(FBS.instance, FBS.GUI_SPIRIT_SKILL_ID, player.worldObj, x,y,z);
+ break;
+
+ case 1:
+ player.openGui(FBS.instance, FBS.GUI_SPIRIT_LEARN_ID, player.worldObj, x,y,z);
+ break;
+
+ case 2:
+ SpiritManager.bless(player, SpiritManager.findSpiritTool(player));
+ break;
+
+ case 3:
+ SpiritManager.repair(player, SpiritManager.findSpiritTool(player), -1);
+ break;
+
+ case 5:
+ player.openGui(FBS.instance, FBS.GUI_SPIRIT_CONFIG_ID, player.worldObj, x,y,z);
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+ else if(con instanceof ContainerSpiritLearn){
+ EntityPlayer player=ctx.getServerHandler().playerEntity;
+ int x= MathHelper.floor_double(player.posX);
+ int y=MathHelper.floor_double(player.posY);
+ int z=MathHelper.floor_double(player.posZ);
+ player.openGui(FBS.instance, FBS.GUI_SPIRIT_MAIN_ID, player.worldObj, x,y,z);
+ }
+
+ return null;
+ }
+ }
+}
|
