- 161
- 0
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Предполагаю что у тебя неправильно зарегестрирован эффект, поэтому тут NullPointerException. Проверь ещё раз.asdqwertypro написал(а):AustereTony написал(а):Покажи класс своего предмета. Что ты такого пытаешься сделать в onItemRightClick?на пкм поставил шоб на себе протестить, потом на hitEntity перекину.Код:public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity) { entity.addPotionEffect (new PotionEffect (Main.customPotion.id, 200, 1)); }
AustereTony написал(а):И ещё: над методами инициализации в главном классе нужно ставить аннотацию @EventHandler.
Предполагаю что у тебя неправильно зарегестрирован эффект, поэтому тут NullPointerException. Проверь ещё раз.asdqwertypro написал(а):AustereTony написал(а):Покажи класс своего предмета. Что ты такого пытаешься сделать в onItemRightClick?на пкм поставил шоб на себе протестить, потом на hitEntity перекину.Код:public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity) { entity.addPotionEffect (new PotionEffect (Main.customPotion.id, 200, 1)); }
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));
}
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;
}
}
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);
}
}
}
}
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 написал(а):Да, вставить именно там.
AustereTony написал(а):Чувак, учи матчасть. Да, вставить именно там.
И убери метод setPotionName, ты возвращаешь там null, имя эффекта ты уже задал в главном классе при регистрации.
AustereTony написал(а):Чувак, учи матчасть. Да, вставить именно там.
И убери метод setPotionName, ты возвращаешь там null, имя эффекта ты уже задал в главном классе при регистрации.
AustereTony написал(а):Я с телефона и мне немного проблематично за всем уследить. Ты не наследуешь класс Potion в своём эффекте
public class PotionTaser extends Potion
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/:?]
Doc написал(а):Такая херня, а не код. Ты половину того, что делаешь даже не понимаешь. Как ты хочешь делать моды... Это не нормально. У тебя даже в главном классе нету EventHandler, что дает майну понять твои инициализации. Вот твой код и есть гавнокод. В одном ты пишешь одну переменную, в другом, где нужно писать первую переменную ты пишешь совершенно другую, и это называешь кодом... Импорт на угад - это тоже не нормально...
asdqwertypro написал(а):ну... по сравнению с тем, что было недели две назад, я гений, а по сравнению с тобой и прочими форумлянами я нубло... я всегда всё учу сразу на практике.
Doc написал(а):asdqwertypro написал(а):ну... по сравнению с тем, что было недели две назад, я гений, а по сравнению с тобой и прочими форумлянами я нубло... я всегда всё учу сразу на практике.
На практике - ты задаешь кучу вопросов, вместо того, что бы изучить теорию и после уже практику.
asdqwertypro написал(а):ну да... но я такой как есть. меняться не планирую. )))))
Doc написал(а):asdqwertypro написал(а):ну да... но я такой как есть. меняться не планирую. )))))
Для таких есть игнор.
(ну а лямзить подписи не красиво)