Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.12.2] Poisonous air class kicks players out of servers


Recommended Posts

So I have a poisonous air class I made for my custom dimension that causes any player that isn't wearing a gas mask to get poisoned, but the poison is slightly randomized, in that the player may suffer the effects more slowly or more rapidly at any moment. Also if they are wearing the gas mask, the poison doesn't affect them, but the gas mask slowly breaks at a randomized rate. It all works very well for me. On singleplayer, there are no issues. When I start the server, there are no issues. When someone tries to join the server, the server kinda kicks them out. My poison air code looks like this:

Quote

public class PoisonAir {
    
    @SubscribeEvent
    public static void playerTick(TickEvent.PlayerTickEvent event)
    {    
        final EntityPlayer player = event.player;
            
        if(player.inventory.armorItemInSlot(3).getItem() != ModItems.GAS_MASK)
        {
            if(player.dimension == 2)
            {
                Random random = new Random();
                if(random.nextInt(35) == 0)
                {
                    player.addPotionEffect(new PotionEffect(MobEffects.POISON, 120, 0, false, false));
                }
            }
        }
        
        else if(player.inventory.armorItemInSlot(3).getItem() == ModItems.GAS_MASK)
        {
            if(player.dimension == 2)
            {
                Random random = new Random();
                if(random.nextInt(860) == 0)
                {
                    player.inventory.armorItemInSlot(3).damageItem(1, player);
                }
            }
        }
    }
}

I don't know what part of this code is causing the problems, so if someone could help me track down where and why the problems arise, I'd be very grateful.

Link to post
Share on other sites
47 minutes ago, JonIsPatented said:

When someone tries to join the server, the server kinda kicks them out. My poison air code looks like this:

What does the console say when they get kicked. 

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to post
Share on other sites
8 hours ago, JonIsPatented said:

        if(player.inventory.armorItemInSlot(3).getItem() != ModItems.GAS_MASK)
        //...
        else if(player.inventory.armorItemInSlot(3).getItem() == ModItems.GAS_MASK)

else is sufficient here, by the way. It is impossible for both of those to be true at the same time or false at the same time.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to post
Share on other sites
12 hours ago, Animefan8888 said:

What does the console say when they get kicked. 

Quote

[00:27:34] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.fml.common.gameevent.TickEvent$PlayerTickEvent@11ef70d:
java.lang.NoSuchMethodError: net.minecraft.entity.player.InventoryPlayer.func_70440_f(I)Lnet/minecraft/item/ItemStack;
    at com.jonispatented.moarmor.world.dimension.overrun.PoisonAir.playerTick(PoisonAir.java:28) ~[PoisonAir.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_12_PoisonAir_playerTick_PlayerTickEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
    at net.minecraftforge.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:365) [FMLCommonHandler.class:?]
    at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:190) [aed.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:382) [oq.class:?]
    at net.minecraft.network.NetHandlerPlayServer.func_73660_a(NetHandlerPlayServer.java:173) [pa.class:?]
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.func_73660_a(NetworkDispatcher.java:209) [NetworkDispatcher$1.class:?]
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:285) [gw.class:?]
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:180) [oz.class:?]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:790) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
[00:27:34] [Server thread/ERROR] [FML]: Index: 1 Listeners:
[00:27:34] [Server thread/ERROR] [FML]: 0: NORMAL
[00:27:34] [Server thread/ERROR] [FML]: 1: ASM: class com.jonispatented.moarmor.world.dimension.overrun.PoisonAir playerTick(Lnet/minecraftforge/fml/common/gameevent/TickEvent$PlayerTickEvent;)V
[00:27:34] [Server thread/WARN] [net.minecraft.network.NetworkSystem]: Failed to handle packet for /129.137.96.9:36630
net.minecraft.util.ReportedException: Ticking player
    at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:459) ~[oq.class:?]
    at net.minecraft.network.NetHandlerPlayServer.func_73660_a(NetHandlerPlayServer.java:173) ~[pa.class:?]
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.func_73660_a(NetworkDispatcher.java:209) ~[NetworkDispatcher$1.class:?]
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:285) ~[gw.class:?]
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:180) [oz.class:?]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:790) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
Caused by: java.lang.NoSuchMethodError: net.minecraft.entity.player.InventoryPlayer.func_70440_f(I)Lnet/minecraft/item/ItemStack;
    at com.jonispatented.moarmor.world.dimension.overrun.PoisonAir.playerTick(PoisonAir.java:28) ~[PoisonAir.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_12_PoisonAir_playerTick_PlayerTickEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
    at net.minecraftforge.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:365) ~[FMLCommonHandler.class:?]
    at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:190) ~[aed.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:382) ~[oq.class:?]
    ... 9 more

It says this but repeated at what I assume to be every tick, because it appears about 20 times every second and it happens for about 3 seconds before it kicks the player out.

Link to post
Share on other sites
29 minutes ago, JonIsPatented said:

Could that be causing it to kick players off the server? 

Its not. Its just a comment that your code was unnecessarily verbose.

 

9 minutes ago, JonIsPatented said:

java.lang.NoSuchMethodError: net.minecraft.entity.player.InventoryPlayer.func_70440_f(I)Lnet/minecraft/item/ItemStack;
    at com.jonispatented.moarmor.world.dimension.overrun.PoisonAir.playerTick(PoisonAir.java:28) ~[PoisonAir.class:?]

 

My guess as to which line is line 28 is this one, as its the only one that appears to reference a function in the ItemStack class:

13 hours ago, JonIsPatented said:

player.inventory.armorItemInSlot(3).damageItem(1, player);

You should probably be using attemptDamageItem I think its called. Its the one that takes Unbreaking into account.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to post
Share on other sites

InventoryPlayer#armorItemInSlot is a client-only method (indicated by it's @SideOnly(CLIENT) annotation). This means it does not exist on a dedicated server and cannot be used there.

Use EntityLivingBase#getItemStackFromSlot, which also avoids the magic numbers.

  • Like 1
Link to post
Share on other sites
2 hours ago, diesieben07 said:

InventoryPlayer#armorItemInSlot is a client-only method (indicated by it's @SideOnly(CLIENT) annotation). This means it does not exist on a dedicated server and cannot be used there.

Use EntityLivingBase#getItemStackFromSlot, which also avoids the magic numbers.

Oh geez, really that simple? Thank you so much, it works now.

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Do not implement IChestLid on your tile entity.
    • Ok so, i think that the problem is i register a ISTER Property of the Item while i initialize the server. But how can I separate item/block registration between client and server?
    • Hi! I had this mod that adds new chest, and when i launch it in a single player world it works good. But when i try to load it on a server, i receive this error: 13.05 11:48:37 [Server] modloading-worker-11/INFO [ne.mi.co.ForgeMod/FORGEMOD]: Forge mod loading, version 36.1.13, for MC 1.16.5 with MCP 20210115.111550 13.05 11:48:37 [Server] modloading-worker-11/INFO [ne.mi.co.MinecraftForge/FORGE]: MinecraftForge v36.1.13 Initialized 13.05 11:48:37 [Server] modloading-worker-2/ERROR [ne.mi.fm.ja.FMLModContainer/LOADING]: Failed to create mod instance. ModID: tenchest, class com.ike.tenchest.TenChest 13.05 11:48:37 [Server] INFO java.lang.BootstrapMethodError: java.lang.IllegalAccessError: no such constructor: com.ike.tenchest.minichest.MiniChest.<init>()void/newInvokeSpecial 13.05 11:48:37 [Server] INFO at com.ike.tenchest.Blocks.<clinit>(Blocks.java:63) ~[tenchest:1.0] {re:classloading,pl:runtimedistcleaner:A} 13.05 11:48:37 [Server] INFO at com.ike.tenchest.TenChest.<init>(TenChest.java:54) ~[tenchest:1.0] {re:classloading} 13.05 11:48:37 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:81) ~[forge:36.1] {re:classloading} 13.05 11:48:37 [Server] INFO at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[forge:?] {re:classloading} 13.05 11:48:37 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1632) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) [?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO Caused by: java.lang.IllegalAccessError: no such constructor: com.ike.tenchest.minichest.MiniChest.<init>()void/newInvokeSpecial 13.05 11:48:37 [Server] INFO at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:483) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO ... 15 more 13.05 11:48:37 [Server] INFO Caused by: java.lang.NoClassDefFoundError: net/minecraft/tileentity/IChestLid 13.05 11:48:37 [Server] INFO at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:138) ~[modlauncher-8.0.9.jar:?] {re:classloading} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-8.0.9.jar:?] {re:classloading} 13.05 11:48:37 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:62) ~[eventbus-4.0.0.jar:?] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-4.0.0.jar:?] {} 13.05 11:48:37 [Multicraft] Skipped 83 lines due to rate limit (30/s) 13.05 11:48:37 [Server] main/FATAL [ne.mi.fm.ModLoader/LOADING]: Failed to complete lifecycle event CONSTRUCT, 1 errors found 13.05 11:48:37 [Server] main/FATAL [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 449cf277-bc9c-4a21-b16a-3f07d0d4e0c4 13.05 11:48:37 [Server] main/INFO [STDOUT/]: [net.minecraft.crash.CrashReport:func_85057_a:196]: Negative index in crash report handler (16/18) 13.05 11:48:37 [Server] main/FATAL [ne.mi.fm.se.ServerModLoader/]: Crash report saved to ./crash-reports/crash-2021-05-13_11.48.37-fml.txt 13.05 11:48:37 [Server] INFO ---- Minecraft Crash Report ---- 13.05 11:48:37 [Server] INFO // Daisy, daisy... 13.05 11:48:37 [Server] INFO Time: 5/13/21 11:48 AM 13.05 11:48:37 [Server] INFO Description: Mod loading error has occurred 13.05 11:48:37 [Server] INFO java.lang.Exception: Mod Loading has failed 13.05 11:48:37 [Server] INFO at net.minecraftforge.fml.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:85) ~[forge:?] {re:classloading} 13.05 11:48:37 [Server] INFO at net.minecraftforge.fml.server.ServerModLoader.load(ServerModLoader.java:51) ~[forge:?] {re:classloading} 13.05 11:48:37 [Server] INFO at net.minecraft.server.Main.main(Main.java:95) ~[?:?] {re:classloading} 13.05 11:48:37 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.fml.loading.FMLServerLaunchProvider.lambda$launchService$0(FMLServerLaunchProvider.java:51) ~[forge_1.16.5.jar:36.1] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} 13.05 11:48:37 [Server] INFO at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63) [forge_1.16.5.jar:?] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60) [forge_1.16.5.jar:?] {} 13.05 11:48:37 [Server] INFO at net.minecraftforge.server.ServerMain.main(ServerMain.java:57) [forge_1.16.5.jar:?] {} 13.05 11:48:37 [Server] INFO A detailed walkthrough of the error, its code path and all known details is as follows: 13.05 11:48:38 [Multicraft] Server shut down (running) 13.05 11:48:38 [Multicraft] Restarting crashed server in 300 seconds 13.05 11:48:38 [Multicraft] Server stopped 13.05 11:50:33 [Multicraft] Received kill command 13.05 11:50:33 [Multicraft] Server stopped What can i do?
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.