Posted January 28, 20223 yr i made an event and when i press a key it it supposed to put true noclip (im using a LivingUpdateEvent because mojang programmed it like that), but is not working, this is an example: when you have hacks and enter in a server, if you activate noclip usually it doesnt work because the server has an anticheat, and instead of letting you go through the block it sends you a bit back VIDEO[when the screen shakes a little bit is because i activated the noclip]( https://imgur.com/a/LATKmV4 ) @SubscribeEvent public static void testevent(LivingEvent.LivingUpdateEvent event) { if(Minecraft.getInstance().player == null) //This is because it crashes the game of an null error return; PlayerEntity player = Minecraft.getInstance().player; if(ModKeys.mykey.isKeyDown()) { player.noClip = true; } } Â
January 28, 20223 yr first of all use TickEvent.Player and not LivingEvent.LivingUpdateEvent, since the Event is only fired for all LivingEntites (exclude the Player) 2 hours ago, ElTotisPro50 said: Minecraft.getInstance().player the Minecraft class is completely client side, you need to do this on server side
January 28, 20223 yr Author 8 hours ago, Luis_ST said: first of all use TickEvent.Player and not LivingEvent.LivingUpdateEvent, since the Event is only fired for all LivingEntites (exclude the Player) the Minecraft class is completely client side, you need to do this on server side https://forums.minecraftforge.net/topic/75228-1143-no-clip-through-blocks/  it says that it only works in LivingUpdateEvent but is like this? if(Minecraft.getInstance().player == null) //This is because it crashes the game of an null error return; if(!world.isRemote) { PlayerEntity player = Minecraft.getInstance().player; if(ModKeys.mykey.isKeyDown()) { player.noClip = true; } } Â
January 28, 20223 yr 3 minutes ago, ElTotisPro50 said: https://forums.minecraftforge.net/topic/75228-1143-no-clip-through-blocks/ the thread is outdated, since it's from 2019 Â 7 hours ago, Luis_ST said: the Minecraft class is completely client side, you need to do this on server side again subscribe to TickEvent.Player and use the Player from the event and not inecraft.getInstance().player
January 28, 20223 yr Author 1 hour ago, Luis_ST said: the thread is outdated, since it's from 2019 Â again subscribe to TickEvent.Player and use the Player from the event and not inecraft.getInstance().player no, im not getting the player from Minecraft class, but i did in some other events i made, why is it bad?
January 28, 20223 yr 1 hour ago, ElTotisPro50 said: no, im not getting the player from Minecraft class yeah, but in this way it won't work 1 hour ago, ElTotisPro50 said: but i did in some other events i made, why is it bad? it's client side, but noClip is handelt server side if you set noClip on client side you have a few ticks the logic you want then you will receive a update packet from the server and the value would be reset
January 28, 20223 yr Author 1 hour ago, Luis_ST said: yeah, but in this way it won't work it's client side, but noClip is handelt server side if you set noClip on client side you have a few ticks the logic you want then you will receive a update packet from the server and the value would be reset nope it didnt work (i did it in server side and in tickevent @SubscribeEvent public static void tickEvent(TickEvent.PlayerTickEvent event) { PlayerEntity player = event.player; World world = player.world; if(!world.isRemote && ModKeys.mykey.isKeyDown()) { player.noClip = true; } )
January 28, 20223 yr check the TickEvent Phase and the LogicalSide, also call Player#onUpdateAbilities
January 28, 20223 yr Author 1 hour ago, Luis_ST said: check the TickEvent Phase and the LogicalSide, also call Player#onUpdateAbilities there is no player#onUpdateAbilities and what do you mean with tick event phase and logical side? like this? if(event.phase == TickEvent.Phase.END) { if(event.side.isServer() && ModKeys.abilityTransformKey.isKeyDown()) { player.noClip = true; } } Â
January 28, 20223 yr 7 minutes ago, ElTotisPro50 said: there is no player#onUpdateAbilities in mcp mappings it's PlayerEntity#sendPlayerAbilities 7 minutes ago, ElTotisPro50 said: and what do you mean with tick event phase and logical side? like this? yes
January 28, 20223 yr Author 1 hour ago, Luis_ST said: in mcp mappings it's PlayerEntity#sendPlayerAbilities yes nope, not throwing errors or crashing it just doesnt to anything (i wrote sendPlayerAbilities() before noclip because i guess is like that) and also my key is working correctly the problem is not my key if(event.phase == TickEvent.Phase.END) { f(event.side.isServer() && ModKeys.mykey.isKeyDown()) { player.sendPlayerAbilities(); player.noClip = true; } } Â
January 28, 20223 yr Author 1 hour ago, Luis_ST said: in mcp mappings it's PlayerEntity#sendPlayerAbilities yes writing noclip and then sendPlayerAbilities didnt work either
January 28, 20223 yr 14 minutes ago, ElTotisPro50 said: writing noclip and then sendPlayerAbilities didnt work either this should work, show the code Edited January 28, 20223 yr by Luis_ST
January 28, 20223 yr Author 1 hour ago, Luis_ST said: this should work, show the code @SubscribeEvent public static void tickEvent(TickEvent.PlayerTickEvent event) { PlayerEntity player = event.player; World world = player.world; if(event.phase == TickEvent.Phase.END) { if(event.side.isServer() && ModKeys.mykey.isKeyDown()) { //This player.noClip = true; player.sendPlayerAbilities(); //Non of them work(in the code i dont duplicate them im just showing that i used the 2 combinations) //Or this player.sendPlayerAbilities(); player.noClip = true; } } } Â Edited January 28, 20223 yr by ElTotisPro50
January 28, 20223 yr 37 minutes ago, poopoodice said: You can't check for keybinds on server side 👀 👀my issue sorry😅, then do it on client an send a custom package to the server https://forge.gemwire.uk/wiki/SimpleChannel
January 28, 20223 yr Author 2 hours ago, Luis_ST said: 👀my issue sorry😅, then do it on client an send a custom package to the server https://forge.gemwire.uk/wiki/SimpleChannel do i REALLY REALLY REALLY need to send the package to the server? i never saw a tutorial or something about sending packages and in the page you wrote it sends a message
January 28, 20223 yr Author 2 hours ago, Luis_ST said: 👀my issue sorry😅, then do it on client an send a custom package to the server https://forge.gemwire.uk/wiki/SimpleChannel please write the code for sending the package i dont even understand what is that for or where do i apply it
January 29, 20223 yr 14 hours ago, ElTotisPro50 said: do i REALLY REALLY REALLY need to send the package to the server? i never saw a tutorial or something about sending packages and in the page you wrote it sends a message in vanilla it's called packet, in forge it's called message and yes you need to set a packet you can use this as a practical example
January 29, 20223 yr Author 5 hours ago, Luis_ST said: in vanilla it's called packet, in forge it's called message and yes you need to set a packet you can use this as a practical example You said that i use this: https://imgur.com/a/RpGsSLy , but you are making your "packet" different : https://imgur.com/a/M9M5sH4 ,  i dont understand why i need this or WHAT I HAVE TO PUT IN ANYWHERE ON THE PACKET CLASS  just explain me what i have to do with the packages
January 29, 20223 yr Author 1 hour ago, diesieben07 said: You need packets because keyboard input is client side only. But the server must turn on noclip as well, otherwise it thinks you're cheating by moving through blocks. Packets are the only way to communicate between server and client. Packages are not at all relevant here. You need to understand basic Java. SubscribeEvent public static void tickEvent(TickEvent.PlayerTickEvent event) { PlayerEntity player = event.player; World world = player.world; if(event.phase == TickEvent.Phase.END) { if(event.side.isServer()) //i used isClient() too and it didnt work either { player.sendPlayerAbilities(); player.noClip = true; } } im not using anymore keybind and it still DOESNT WORK, you said i need the package for keybinds but if im not using keybinds why is not working?
January 29, 20223 yr Author 3 hours ago, diesieben07 said: You need to first turn on noclip and then sync the abilities. How else do you expect this to ever work...? i did it and it still not working if(event.phase == TickEvent.Phase.END) { if(event.side.isServer()) { player.noClip = true; player.sendPlayerAbilities(); } } Â
January 29, 20223 yr Author 1 hour ago, diesieben07 said: sendPlayerAbilities doesn't actually sync noClip. Also note that the player overwrites the noClip value every tick anyways. (luis told me that it should work) so?, what i have to do?
January 29, 20223 yr Author 1 hour ago, diesieben07 said: sendPlayerAbilities doesn't actually sync noClip. Also note that the player overwrites the noClip value every tick anyways. if using packets are not neccesary because im not using keybinds and is not working what i have to do?
January 29, 20223 yr Author 2 hours ago, diesieben07 said: Then they were wrong. noClip will be overwritten every tick by the player code. You have to set it in LivingUpdateEvent to counter-overwrite the vanilla code. SO I WAS RIGHT ALL THE TIME, but thats what i did (except adding sendPlayerAbilities() but it didnt work either) @SubscribeEvent public static void test(LivingEvent.LivingUpdateEvent event) { if(Minecraft.getInstance().player == null) //for not having the null pointer exception error return; PlayerEntity player = Minecraft.getInstance().player; player.noClip = true; player.sendPlayerAbilities(); } Â
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.