Bed location is changed after leaving duty mode, even with BedSpawn disabled #21


  • Defect
  • Accepted
Open
Assigned to _ForgeUser8005959
  • _ForgeUser6840554 created this issue Feb 14, 2013

    What steps will reproduce the problem?
    1. Create a server with Craftbukkit 1.4.7-R1.0, Duties 1.1.8, and PermissionsEx 1.19.5
    2. Leave the config.yml for duties unchanged (all defaults)
    3. Create the following /plugins/permissionsex/permissions.yml:
    groups:
      default:
        default: true
        permissions:
        - modifyworld.*
        - duties.*
      Duty:
        permissions:
        - permissions.*
        - modifyworld.*
    users: {}
    4. log into the server, create a bed. Check your player.dat to make sure your bed is correct, or just die and respawn at the bed to verify that the bed works.
    5. Enter and exit duty mode (type /duty twice.)
    6. Log off the server, and log back in.
    7. Check your player.dat, or die. The bed location will be incorrect (x and/or z will have one subtracted from it after leaving dutymode)

    What is the expected output? What do you see instead?
    I expect a player's bed location to be maintained even after using dutymode, especially without the "BedSpawn" cleanup enabled. However, even with "BedSpawn" disabled, my bed location is still changed, and so when I die I don't go to my bed.

    What version of the plugin are you using?
    Duties 1.1.8

    What version of CraftBukkit are you using?
    Craftbukkit 1.4.7-R1.0

    Do you use any addon?
    No

    What permissions system are you using?
    PermissionsEx 1.19.5

    Do you have an error log of what happened?
    No, but you can check your /world/players/player.dat after using dutymode and logging out to see that your bed location (SpawnX, SpawnY, and SpawnZ tags) have been changed. Use NBTEdit or a similar program to view the player.dat file (http://www.moddb.com/games/minecraft/downloads/nbtedit).

    How does your configuration file look like?
    Default generated by the plugin.

    Please provide any additional information below.
    N/A

  • _ForgeUser6840554 added the tags New Defect Feb 14, 2013
  • _ForgeUser8005959 posted a comment Feb 19, 2013

    Sorry for late response, I've been a bit busy. Anyway.. What I can conclude so far after some testing and debugging is that...

    • the issue isn't reproducible in versions prior to CB 1.4.7-RX.X
    • restoring a previously set bed spawn location now seem to make it invalid
    • this issue is most likely a Bukkit bug

    Assuming you're a programmer... this basically means that...

    player.setBedSpawnLocation( player.getBedSpawnLocation() );
    

    now would set the bed spawn to null. I've yet to verify that that specific code would do that though. I also don't want to make any claims of it being a Bukkit bug just yet. Will tell you when I make any progress.

  • _ForgeUser8005959 removed a tag New Feb 19, 2013
  • _ForgeUser8005959 added a tag Accepted Feb 19, 2013
  • _ForgeUser6840554 posted a comment Mar 23, 2013

    Any luck with this bug? I saw that you had some test code in the source code you posted...

  • _ForgeUser8005959 posted a comment Mar 24, 2013

    I've implemented code to make it so that if you don't change the bed spawn location while in duty mode, Duties won't corrupt it. I also tested this code right after a bed spawn set...

    		event.getPlayer().setBedSpawnLocation( event.getPlayer().getBedSpawnLocation() );
    		if(event.getPlayer().getBedSpawnLocation() == null)
    			event.getPlayer().sendMessage("Bug verified!");
    

    ... which resulted in me getting the "Bug verified!" message.

    You can have this 1.2.0 release candidate with the patch included. Please let me know if you find any more bugs.


To post a comment, please login or register a new account.