Кейбинд с ивентами...

Версия Minecraft
1.7.10
Код:
package mod.mcreator;

import org.lwjgl.input.Keyboard;

import net.minecraft.world.WorldServer;
import net.minecraft.world.World;
import net.minecraft.util.ChatComponentText;
import net.minecraft.server.MinecraftServer;
import net.minecraft.item.ItemStack;
import net.minecraft.init.Items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.gui.GuiChat;
import net.minecraft.client.Minecraft;

import java.util.Random;

import cpw.mods.fml.common.gameevent.InputEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.FMLClientHandler;

public class mcreator_bIND {

 public static Object instance;

 public mcreator_bIND() {
 }

 public void load() {
 FMLCommonHandler.instance().bus().register(new KeyHandlerClass());
 }

 public void generateNether(World world, Random random, int chunkX, int chunkZ) {
 }

 public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
 }

 public void registerRenderers() {
 }

 public int addFuel(ItemStack fuel) {
 return 0;
 }

 public void serverLoad(FMLServerStartingEvent event) {
 }

 public void preInit(FMLPreInitializationEvent event) {
 }

 public class KeyHandlerClass {

 private static final String desc = "key.tut_inventory.desc";
 private static final int keyValues = Keyboard.KEY_NUMPADENTER;
 private final KeyBinding keys;

 public KeyHandlerClass() {
 keys = new KeyBinding(desc, keyValues, "key.tutorial.category");
 ClientRegistry.registerKeyBinding(keys);
 }

 @SubscribeEvent
 public void onKeyInput(InputEvent.KeyInputEvent event) {
 if (!FMLClientHandler.instance().isGUIOpen(GuiChat.class)) {
 if (keys.isPressed()) {
 EntityPlayer entity = Minecraft.getMinecraft().thePlayer;
 int i = (int) entity.posX;
 int j = (int) entity.posY;
 int k = (int) entity.posZ;
 /*
 * World world = null; WorldServer[] list =
 * MinecraftServer.getServer().worldServers; for(WorldServer
 * ins : list){
 * if(ins.provider.dimensionId==entity.worldObj.
 * provider.dimensionId) world = ins; } if(world==null)
 * world = list[0];
 */
 MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
 World world = server.worldServers[0];

 if (true) {
 if (entity.inventory.getCurrentItem() != null && entity.inventory.getCurrentItem().getItem() == Items.apple) {

 if (!world.isDaytime()) {
 MinecraftServer.getServer().addChatMessage(new ChatComponentText("123"));
 }

 }
 }

 }
 }
 }
 }

}
т.к я новичек и в коде разбираюсь не очень я использую MCreator...как вы поняли проблема с ним...короче говоря,пока я настраивал бинд...поставил условие на поиск предмета в руке(предмет поставил) в ивенте поставил ну...к примеру...вывод сообщения в чат....при условии что сейчас ночь...бинд был установлен на NUMPADENTER...код если найду то отредактирую сообщение если нет то както так...помогите исправить либо киньте рабочий код я его перепишу в прогу и на этом спасибо...
 
Я не работал с MCcreator, но...
У класса mcreator_bIND, нету аннотации @Mod (т.е. по идеи у тебя во-обще ни чего не работает).
У метода load(), нету аннотации @Mod.EventHandler и аргумента FMLInitializationEvent (или FMLPreInitializationEvent bkb FMLPostInitializationEvent).
 
timaxa007 написал(а):
Я не работал с MCcreator, но...
У класса mcreator_bIND, нету аннотации @Mod (т.е. по идеи у тебя во-обще ни чего не работает).
У метода load(), нету аннотации @Mod.EventHandler и аргумента FMLInitializationEvent (или FMLPreInitializationEvent bkb FMLPostInitializationEvent).

почему не работает?именно всё кроме этого и работает...
 
могу скинуть код любого другого компонента который работает...к примеру кирки...
Код:
package mod.mcreator;

import net.minecraftforge.common.util.EnumHelper;

import net.minecraft.world.World;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.Item;
import net.minecraft.init.Items;
import net.minecraft.entity.player.EntityPlayer;

import java.util.Set;
import java.util.Random;
import java.util.HashMap;

import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

public class mcreator_energyPickaxe {

 public mcreator_energyPickaxe() {
 }

 public static Item block;
 public static Object instance;

 public void load() {
 ItemStack stack = new ItemStack(block, 1);
 GameRegistry.addRecipe(
 stack,
 new Object[]{"012", "345", "678", Character.valueOf('0'), new ItemStack(mcreator_energyIngot.block, 1), Character.valueOf('1'),
 new ItemStack(mcreator_energyIngot.block, 1), Character.valueOf('2'), new ItemStack(mcreator_energyIngot.block, 1),
 Character.valueOf('3'), new ItemStack(mcreator_energyIngot.block, 1), Character.valueOf('4'),
 new ItemStack(Items.diamond_pickaxe, 1), Character.valueOf('5'), new ItemStack(mcreator_energyIngot.block, 1),
 Character.valueOf('6'), new ItemStack(mcreator_energyIngot.block, 1), Character.valueOf('7'),
 new ItemStack(mcreator_energyIngot.block, 1), Character.valueOf('8'), new ItemStack(mcreator_energyIngot.block, 1),});
 }

 public void generateNether(World world, Random random, int chunkX, int chunkZ) {
 }

 public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
 }

 public int addFuel(ItemStack fuel) {
 return 0;
 }

 public void serverLoad(FMLServerStartingEvent event) {
 }

 public void preInit(FMLPreInitializationEvent event) {
 }

 public void registerRenderers() {
 }

 static {
 Item.ToolMaterial enumt = EnumHelper.addToolMaterial("ENERGYPICKAXE", 5, 4000, 30F, 5, 20);
 block = (Item) (new ItemPickaxe(enumt) {
 public Set<String> getToolClasses(ItemStack stack) {
 HashMap<String, Integer> ret = new HashMap<String, Integer>();
 ret.put("pickaxe", 5);
 return ret.keySet();
 }

 public void onCreated(ItemStack itemstack, World world, EntityPlayer entity) {
 float var4 = 1.0F;
 int i = (int) (entity.prevPosX + (entity.posX - entity.prevPosX) * (double) var4);
 int j = (int) (entity.prevPosY + (entity.posY - entity.prevPosY) * (double) var4 + 1.62D - (double) entity.yOffset);
 int k = (int) (entity.prevPosZ + (entity.posZ - entity.prevPosZ) * (double) var4);

 if (true) {
 if (entity instanceof EntityPlayer)
 ((EntityPlayer) entity).addStat(mcreator_craftPick.achievement, 1);
 }

 }
 }).setUnlocalizedName("EnergyPickaxe").setTextureName("EnergyPickaxe");
 Item.itemRegistry.addObject(430, "EnergyPickaxe", block);

 }

}
 
Может быть из методов, которые лучше использовать на серверной стороне, а ты используешь на клиенской.
Darkar25 написал(а):
Код:
MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
и
Darkar25 написал(а):
Код:
MinecraftServer.getServer().addChatMessage(new ChatComponentText("123"));


Darkar25 написал(а):
Код:
World world = server.worldServers[0];
на
Код:
World world = Minecraft.getMinecraft().theWorld
Больше предположений нет.
 
Выброси этот отстой на помойку и немедленно начни изучать язык.Иначе у тебя ничего хорошего не получится
 
Maxik001 написал(а):
Выброси этот отстой на помойку и немедленно начни изучать язык.Иначе у тебя ничего хорошего не получится

ну...меня и так вполне всё устраивает...кроме того что у меня не робит бинд...


это менять
Код:
World world = server.worldServers[0];
на это?
Код:
World world = Minecraft.getMinecraft().theWorld
 
Назад
Сверху