таймер на моба

Версия Minecraft
1.7.10
с одной темы попытался разобрать код из задержки и получилось непонятно что... короче вот тема там из первого же сообщения я попытался понять код... в общем мне надо сделать чтобы переменная dellay ставилась на опр. моба на 10 секунд и потом снималась надеюсь, вы поняли, если что - пишите.
 
И ещё: над методами инициализации в главном классе нужно ставить аннотацию @EventHandler.


asdqwertypro написал(а):
AustereTony написал(а):
Покажи класс своего предмета. Что ты такого пытаешься сделать в onItemRightClick?
Код:
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity) {
 entity.addPotionEffect (new PotionEffect (Main.customPotion.id, 200, 1));
}
на пкм поставил шоб на себе протестить, потом на hitEntity перекину.
 Предполагаю что у тебя неправильно зарегестрирован эффект, поэтому тут NullPointerException. Проверь ещё раз.
 
AustereTony написал(а):
И ещё: над методами инициализации в главном классе нужно ставить аннотацию @EventHandler.


asdqwertypro написал(а):
AustereTony написал(а):
Покажи класс своего предмета. Что ты такого пытаешься сделать в onItemRightClick?
Код:
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity) {
 entity.addPotionEffect (new PotionEffect (Main.customPotion.id, 200, 1));
}
на пкм поставил шоб на себе протестить, потом на hitEntity перекину.
 Предполагаю что у тебя неправильно зарегестрирован эффект, поэтому тут NullPointerException. Проверь ещё раз.



вот Main.class 
Код:
public static Potion customPotion;
 
 public void preInit(FMLPreInitializationEvent event) {
 Potion[] potionTypes = null;
 
 
 for (Field f : Potion.class.getDeclaredFields()) {
 f.setAccessible(true);
 try {
 if (f.getName().equals("potionTypes") || f.getName().equals("field_76425_a")) {
 Field modfield = Field.class.getDeclaredField("modifiers");
 modfield.setAccessible(true);
 modfield.setInt(f, f.getModifiers() & ~Modifier.FINAL);

 potionTypes = (Potion[])f.get(null);
 final Potion[] newPotionTypes = new Potion[256];
 System.arraycopy(potionTypes, 0, newPotionTypes, 0, potionTypes.length);
 f.set(null, newPotionTypes);
 }
 }
 catch (Exception e) {
 System.err.println("Severe error, please report this to the mod author: _Gamer_Pro_");
 System.err.println(e);
 }
 }

 MinecraftForge.EVENT_BUS.register(new EventHooks());
 }
 
 public void load(FMLInitializationEvent event) {
 customPotion = (new PotionTaser(227, false, 0)).setIconIndex(0, 0).setPotionName("potion.customPotion");
 }
 
 public static void registerEntity(Class entityClass, String name, int primaryColor, int secondaryColor) 
 {
    int entityID = EntityRegistry.findGlobalUniqueEntityId();
    long seed = name.hashCode();
    EntityRegistry.registerGlobalEntityID(entityClass, name, entityID);
    EntityRegistry.registerModEntity(entityClass, name, entityID, instance, 64, 1, true);
    EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID,         primaryColor, secondaryColor)); 
 }
P.S. когда ивент хэндлер ставлю то майн крашится ещё при входе в мир

Код:
import net.minecraft.potion.Potion;

public class PotionTaser {
 public PotionTaser(int par1, boolean par2, int par3) {
 super();
 }

 public PotionTaser setIconIndex(int par1, int par2) {
 return this;
 }

 public Potion setPotionName(String string) {
 return null;
 }
}
полностью весь класс зелья шокера P.S. я не умею иконки сетить... они обязательны? мне и без текстуры норм... если обязательны, то как иконки сетить???

полный класс ивентхука для зелья.
Код:
import java.util.Random;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.util.DamageSource;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;

public class EventHooks {
 @SubscribeEvent
 public void onEntityUpdate(LivingUpdateEvent event) {
 if (event.entityLiving.isPotionActive(Main.customPotion)) {
 if (event.entityLiving.worldObj.rand.nextInt(20) == 0) {
 int r = new Random().nextInt(10);
 int r2 = new Random().nextInt(10);
 int r3 = new Random().nextInt(10);
 int r4 = new Random().nextInt(10);
 event.entityLiving.rotationPitch -= (r);
 event.entityLiving.rotationPitch += (r2);
 event.entityLiving.rotationYaw -= (r3);
 event.entityLiving.rotationYaw += (r4);
 }
 }
 }
}
P.S. я кажется тут что-то импортировал наугад... хз что и в каком точно классе, но может в этом проблема???
 
AustereTony написал(а):
Ты не передал параметры в суперконструктор эффекта.
super(par1, par2, par3);

... ты про это?
Код:
public class PotionTaser {
 public PotionTaser(int par1, boolean par2, int par3) {
 super(); И ТУТ ТИПО ВСТАВИТЬ В СКОБКИ par1, par2, par3 ???
 }
 public PotionTaser setIconIndex(int par1, int par2) {
 return this;
 }

 public Potion setPotionName(String string) {
 return null;
 }
}

или что-то другое??? я честно говоря не знаю что значит передать параметры в СУПЕРконструктор... ВАТАФфф???
 
AustereTony написал(а):
Да, вставить именно там.

я когда там ставлю то пишет ошибка исправляется токо remove arguments to match Object();
что, как ты понял, удаляет эти параметры.


AustereTony написал(а):
Чувак, учи матчасть. Да, вставить именно там.
И убери метод setPotionName, ты возвращаешь там null, имя эффекта ты уже задал в главном классе при регистрации.

нейм убрал, а проблема с супером осталась


AustereTony написал(а):
Чувак, учи матчасть. Да, вставить именно там.
И убери метод setPotionName, ты возвращаешь там null, имя эффекта ты уже задал в главном классе при регистрации.

если удалить setpotionname то в гл. классе будет ошибка фиксом которой будет создать этот метод...
 
AustereTony написал(а):
Я с телефона и мне немного проблематично за всем уследить. Ты не наследуешь класс Potion в своём эффекте
public class PotionTaser extends Potion

эхх... иногда кажется, что у тебя огромные проблемы с которыми придётся разбираться пол года... а оказывается такая фигня... эт прям как история про первый комп и бабочку! R.I.P. бабочка...


AustereTony написал(а):
Я с телефона и мне немного проблематично за всем уследить. Ты не наследуешь класс Potion в своём эффекте
public class PotionTaser extends Potion

краш... 
Код:
net.minecraft.util.ReportedException: Ticking memory connection
 at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:198) ~[NetworkSystem.class:?]
 at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
 at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
 at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
 at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.NullPointerException
 at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
 at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
 at net.minecraft.server.management.ItemInWorldManager.tryUseItem(ItemInWorldManager.java:345) ~[ItemInWorldManager.class:?]
 at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:576) ~[NetHandlerPlayServer.class:?]
 at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
 at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
 at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
 at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
 ... 5 more
[16:26:45] [Server thread/ERROR]: This crash report has been saved to: C:\forgemodding\eclipse\.\crash-reports\crash-2017-04-18_16.26.45-server.txt
[16:26:45] [Server thread/INFO]: Stopping server
[16:26:45] [Server thread/INFO]: Saving players
[16:26:45] [Server thread/INFO]: Saving worlds
[16:26:45] [Server thread/INFO]: Saving chunks for level 'Новый мир'/Overworld
[16:26:45] [Server thread/INFO]: Saving chunks for level 'Новый мир'/Nether
[16:26:45] [Server thread/INFO]: Saving chunks for level 'Новый мир'/The End
[16:26:46] [Server thread/INFO] [FML]: Unloading dimension 0
[16:26:46] [Server thread/INFO] [FML]: Unloading dimension -1
[16:26:46] [Server thread/INFO] [FML]: Unloading dimension 1
[16:26:46] [Server thread/INFO] [FML]: Applying holder lookups
[16:26:46] [Server thread/INFO] [FML]: Holder lookups applied
[16:26:46] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
[16:26:47] [Client thread/FATAL]: Unreported exception thrown!
java.lang.NullPointerException
 at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
 at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
 at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430) ~[PlayerControllerMP.class:?]
 at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558) ~[Minecraft.class:?]
 at net.minecraft.client.Minecraft.runTick(Minecraft.java:2045) ~[Minecraft.class:?]
 at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040) ~[Minecraft.class:?]
 at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
 at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
 at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
 at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
 at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
 at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
 at GradleStart.main(Unknown Source) [start/:?]
 
Такая херня, а не код. Ты половину того, что делаешь даже не понимаешь. Как ты хочешь делать моды... Это не нормально. У тебя даже в главном классе нету EventHandler, что дает майну понять твои инициализации. Вот твой код и есть гавнокод. В одном ты пишешь одну переменную, в другом, где нужно писать первую переменную ты пишешь совершенно другую, и это называешь кодом... Импорт на угад - это тоже не нормально...
 
Doc написал(а):
Такая херня, а не код. Ты половину того, что делаешь даже не понимаешь. Как ты хочешь делать моды... Это не нормально. У тебя даже в главном классе нету EventHandler, что дает майну понять твои инициализации. Вот твой код и есть гавнокод. В одном ты пишешь одну переменную, в другом, где нужно писать первую переменную ты пишешь совершенно другую, и это называешь кодом... Импорт на угад - это тоже не нормально...

ну... по сравнению с тем, что было недели две назад, я гений, а по сравнению с тобой и прочими форумлянами я нубло... я всегда всё учу сразу на практике.
 
asdqwertypro написал(а):
ну... по сравнению с тем, что было недели две назад, я гений, а по сравнению с тобой и прочими форумлянами я нубло... я всегда всё учу сразу на практике.

На практике - ты задаешь кучу вопросов, вместо того, что бы изучить теорию и после уже практику.
 
Doc написал(а):
asdqwertypro написал(а):
ну... по сравнению с тем, что было недели две назад, я гений, а по сравнению с тобой и прочими форумлянами я нубло... я всегда всё учу сразу на практике.

На практике - ты задаешь кучу вопросов, вместо того, что бы изучить теорию и после уже практику.

ну да... но я такой как есть. меняться не планирую. )))))
 
asdqwertypro написал(а):
ну да... но я такой как есть. меняться не планирую. )))))

Для таких есть игнор.
(ну а лямзить подписи не красиво)
 
Назад
Сверху