Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Forge 1.7.10 GUI

Discussion in 'Разработка плагинов для новичков' started by Егор Грушко, Jul 24, 2014.

  1. Автор темы
    Егор Грушко

    Егор Грушко Старожил Пользователь

    Trophy Points:
    123
    Skype:
    egorgrushko
    Хочу сделать свой gui при активировании блока, но почему-то gui не открывается. Вот код:
    Code:
    package com.mymod;
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    
    
    @Mod(modid = MyMod.MODID, version = MyMod.VERSION)
    public class MyMod {
        public static final String MODID = "MyMod";
        public static final String VERSION = "1.0";
    
        @Mod.Instance(MyMod.MODID) public static MyMod instance;
    
        public static Logger log = Logger.getLogger("Minecraft");
    
        public static Block MyModBlock;
    
        public MyMod() {
            instance = this;
        }
    
        @Mod.EventHandler
        public void preInit(FMLPreInitializationEvent event) {
            MyModBlock = new MyModBlock();
    
            GameRegistry.registerBlock(MyModBlock, "MyModBlock");
    
            GameRegistry.addRecipe(new ItemStack(MyModBlock),
                    new Object[]{"###", "## ", "###", Character.valueOf('#'), Items.iron_ingot});
    
            NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
    
            log.info("MyMod client plugin loaded.");
        }
    
    }
    Code:
    package com.MyMod;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.IIcon;
    import net.minecraft.world.World;
    
    public class MyModBlock extends Block {
        private IIcon[] icons = new IIcon[6];
    
        public MyModBlock() {
            super(Material.iron);
    
            this.setBlockName("MyModblock");
            this.setCreativeTab(CreativeTabs.tabMisc);
            this.setBlockTextureName("MyMod:MyModblock");
        }
    
        @Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){
            if (!world.isRemote) {
                System.out.print("block clicked, open gui.\n");
                System.out.print(MyMod.instance != null);
                player.openGui(MyMod.instance, Gui.GUI_ID, world, x, y, z);
            }
            return true;
        }
    
        @Override
        public void registerBlockIcons(IIconRegister reg) {
            for (int i = 0; i < 6; i ++) {
                this.icons[i] = reg.registerIcon(this.textureName + "_" + i);
            }
        }
    
        @Override
        public IIcon getIcon(int side, int meta) {
            return this.icons[side];
        }
    }
    Code:
    package com.mymod;
    
    import cpw.mods.fml.common.network.IGuiHandler;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.world.World;
    
    public class GuiHandler implements IGuiHandler {
        @Override
        public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
            return null;
        }
    
        @Override
        public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
            if (ID == Gui.GUI_ID) {
                System.out.print("create gui.\n");
                return new Gui();
            }
            return null;
        }
    }
    Code:
    package com.mymod;
    
    import net.minecraft.client.gui.GuiButton;
    import net.minecraft.client.gui.GuiScreen;
    
    public class Gui extends GuiScreen {
        public static final int GUI_ID = 20;
    
        public Gui() {
            System.out.print("gui constructor.\n");
    
        }
    
        @Override
        public void initGui() {
            buttonList.clear();
            buttonList.add(new GuiButton(0, 100, 100, 60, 60, "Button"));
        }
    
        @Override
        public boolean doesGuiPauseGame() {
            return false;
        }
    
        @Override
        public void drawScreen(int i, int j, float f) {
            drawDefaultBackground();
            super.drawScreen(i, j, f);
            System.out.print("drawing gui.\n");
        }
    
        @Override
        public void actionPerformed(GuiButton button) {
            System.out.print("button clicked.\n");
    
        }
    }
     
  2. Хостинг MineCraft
    <
  3. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Не тот раздел
     
  4. Автор темы
    Егор Грушко

    Егор Грушко Старожил Пользователь

    Trophy Points:
    123
    Skype:
    egorgrushko
    А какой раздел правильный?
     
  5. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Модификации клиента
     
  6. Автор темы
    Егор Грушко

    Егор Грушко Старожил Пользователь

    Trophy Points:
    123
    Skype:
    egorgrushko
    Там только релизы, не?
     
  7. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
  8. Автор темы
    Егор Грушко

    Егор Грушко Старожил Пользователь

    Trophy Points:
    123
    Skype:
    egorgrushko
  9. Agravaine

    Agravaine Активный участник Пользователь

    Trophy Points:
    88
    Имя в Minecraft:
    Agravaine25
    Зачем делать гуи хандлер, если у тебя нет контейнера, а простой GuiScreen?
    Открывай просто через Minecraft#displayGuiScreen.
     

Share This Page