Jump to content

jredfox

Members
  • Posts

    660
  • Joined

  • Last visited

Everything posted by jredfox

  1. anybody know why the client is rendering the nether. I am trying to override data on de- serialization on server side but, client an't syncing and the data shouldn't get to the client till this event is done what am I missing here?
  2. So should I be creating a custom packet to tell the player he is alive? Where on the client does it think that you are dead? Where is the model code that renders you are dead as well?
  3. if server offline mode is false this seems to happen
  4. Code: https://github.com/jredfox/norespawnscreen Setup: dl evil notch lib beta snapshot 36 or higher make fresh mdk dl github source and replace mdk source thow evil notch lib in the mdk libs folder and add it to the eclipse java build path Steps to reproduce: go into the nether with /tpdim @p ~ 129 ~ -1 or simply build a portal and die in lava in a different dimension place a 2x2 lava pit die in lava notice that in f5 mode most of the time it displays you are dead still. My code manually says to respawn the player on death event. if you use /tpdim command again it goes away so what packet should I be sending to the client that the player is still alive and is a new player? I do the equivlent of EntityPlayerMP#onDeath() method for the player before using the playerlist re-create the player
  5. bad news I have two new issues to solve though one is related. Fire on client side doesn't get put out if: another player is in render distence player is in same dimension Fire on client doesn't get put out till you sprint even changing dimensions still displays that Edit: reproduced in vanilla going to be looking into the sprint packet to see what it does to fix it https://bugs.mojang.com/browse/MC-129570
  6. issue is solved with calling this right after my respawn method you were initially right it had to do with the network connection coords cheat system. try { Method capture = NetHandlerPlayServer.class.getDeclaredMethod("captureCurrentPosition"); capture.setAccessible(true); capture.invoke(player.connection); } catch (Throwable t) { t.printStackTrace(); }
  7. I disagree because there are things called forge capabilities and this isn't a bukkit plugin where I can hardcode vanilla things and it always works for vanilla. This is a forge mod which has to fully work with forge. I think there are issues with the vanilla respawn method to begin with. So I have a new plan recreate the player same as they did exact code teleport player to right dim and coords manually using my own teleport method and see if it fixes itself. I will post results here "I didn't have a lot of time to look at this further" That's ok I will be fixing this manually if I have to but, I do need help bad on another issue here for when your not busy please and thanks: trying to get player to update variables when loading from the disk it does that then it glitches out.
  8. I meant to say de-serialize
  9. attaching a capability for a global tick counter isn't an option he only half reads my posts anyways. it would reset per player when in reality I need it global to check for all players. On player logout if is server owner I reset the tick counter back to 0 has nothing to do with this.
  10. ", receiveCanceled = true)" > awesome didn't know this was a feature so it's going to fire even if the event cancels? your respawn breaks player cannot do anything. Have you tried player.connection.player = newPlayer at the end? That's what I called and then the bug started happening again. I think you were onto something better originally with the cheat system just tell me what coords and what class then I will use reflection to change them and see if that does anything different?
  11. Edit: post duped somehow weird
  12. I don't know how the heck the player serialization event isn't the right event for calling player.readFromNBT(). I made a test and the above code produces the issue described don't know why that is since my event serialized it forcibly to be those coords and that dimension.
  13. then what is? You wanted me fixing uuidfixer to another event this is the right event to fix it on. So yes I need this event to serialize the player with the corrected data. Doing it on construction Is too early I will surely get overridden
  14. I can do stuff to the client from the server (packet) what should I be doing? If you got the fire extinguished and not rendered straight after death in lava death I would like to know what your code is. Thanks for looking into this Also make sure you send the respawn packet that could by why your a ghost player
  15. if you read the code the gui opens up twice the packet for the player isn't sent twice unlike your code. And unless you send the packet twice it makes you wait a minimum of 1 second before respawning. If you send the packet twice the respawn events occur twice thus really screwing up other mods data like dropping modded inventories twice I already do all of that except for onDeath() don't cause an endless recursion where it constantly fires the death event. the reflection isn't causing issues I use my mcpmappings api to change the string based on which dev it's in. Again I already handled hardcore mode and have seen that code before. The only other code that could possible not fire is the end dimension to overworld code which in a normal respawn death it never fires I also have a client proxy to always cancel the death screen event so that's not it. What I need to know is where are the values stored that the server thinks I am still there from previous death. Those are what need to be changed possibly with reflection.
  16. If you looked at my code I already handled hardcore mode with spectator same as vanilla. your respawn player fires twice I already tried that. It's best to do it on the server side. Yes I could do this and then manually spawn the xp and the particles but, I would prefer doing it on server side especially since your code will make respawn forge events fire twice on server. Use a println during where you respawn the player
  17. it's when the player is suppose to be serialized from the disk and the client shouldn't be getting any data till after this. This is the right event I have verified when this is firing. So I need to know what data isn't synced/needs to be changed since when I change it the client thinks it's still there
  18. cancle the death event so it doesn't try and constantly repsawn screen try and show up on tick and or make the player wait a full second before re spawning. The particles are necessary because on death the particles do not show up for a full 20 death ticks or one second on death. So for instant re-spawn it's necessary for xp and particles for manual re-spawning. I am trying to get the player to respawn without being on fire if last death with in lava/fire please help me figure out exactly where it's trying to reset the coords yet failing. Code I gave has been updated several dozen times since I posted this remove the tick event and the fire bug will always occur.
  19. during PlayerEvent.LoadFromFile I am trying to make the player update it's variables through a new entire nbt from another file. During this test of changing the dimension and position seems to all sync fine on server side but, if player use to be in the nether it still thinks the sky is the nether when going to either overworld/end dimension. This code is eventually for a vanilla bug fix when swaping worlds between two players and eventually another bug fix I am confused since the data on the client shouldn't even be there till after the load from file event the connection of the player is still null so what the heck isn't syncing? Test 1: have player in vanilla nether somewhere use this code during PlayerEvent.LoadFromFile event notice player is at right pos and dimension but, the sky isn't right NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("Dimension",1); NBTTagList pos = new NBTTagList(); pos.appendTag(new NBTTagDouble(0)); pos.appendTag(new NBTTagDouble(67)); pos.appendTag(new NBTTagDouble(0)); nbt.setTag("Pos",pos); e.getEntityPlayer().readFromNBT(nbt);
  20. but, if you look at my code all the respawn and teleportation is done via the server side as well as the extinguishing. is there a way I can notify the server that the movement I am making aka respawning if you viewed my code as legal? I am doing this all on the server side as well. were are the older values it's looking for? Is it possible I could just set those older values of xyz and just edit them via reflection to the players new coords therefore fixing the bug?
  21. maybe they are broken maybe they are not but, I can confirm alot of mods do this on player logout event for this that I have looked at their code. That's why I knew about the event to begin with either way I need to go ahead and get the client side to logout of the world
  22. arraylists/hashmap data for manual work around/do functions that don't need to be saved to the disk will get re-instantiated on startup. for example the code you had me do with mob spawnage if that had anything to do with the player that data would get screwed up if I did shutdown like that I have code myself for uuidfixer on player logout if player is owner(checks for is client) reset the tick counter back to 0. Yes I could technically do world unload but, but, not all mods are going to use that format.
  23. shutdown a dedicated server player logout events are not needed because the program that the variables are attached to are no longer in memory and the program dies. I did post a crash report I am trying again will post it if it still persists
  24. I will be sending the packet I just need it to not crash when executing that code. The game freezes and or crashed on previous tests I could try again maybe I thought it was a client tick when it was somehow still server.
  25. I am doing the client only version because that is what mc calls and I believe player logout events should occur before world shutdown like it does in vanilla save and quit anyways. How am I suppose to do this on command when the data gets to the client? The game will crash since the game isn't paused like I was saying at page one. So Should I be opening a gui first then call the code to exit the world like jeblar was saying?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.