EngineHub / CommandBook

General and administrative commands
https://enginehub.org/commandbook/
GNU Lesser General Public License v3.0
145 stars 105 forks source link

setwarp data corruption from console #107

Closed caver115 closed 9 years ago

caver115 commented 9 years ago

All warps data totally wiped out, if we issued a command from console like: setwarp FOO 10,100,10

DarkArc commented 9 years ago

Can't reproduce, from console:

>setwarp FOO 10,100,10
[20:05:12 INFO]: A player context is required. (Specify a world or player if the command supports it.)

In game a warp is made in my word with the name foo at 10,100,10, as expected.

caver115 commented 9 years ago

Sorry for mistake, please reopen

Steps to reproduce:

setwarp foo 10,100,10 -> OK [08:56:03 INFO]: A player context is required. (Specify a world or player if the command supports it.) setwarp foo 10,100,10 caver -> OK [08:56:08 INFO]: Too many arguments. [08:56:08 INFO]: /setwarp [location] setwarp foo caver -> all warps data is wiped out [08:56:17 INFO]: Invalid warp name!

versions: server CraftBukkit version git-Spigot-1.7.9-R0.2-205-g0a049fa commandbook last from git

DarkArc commented 9 years ago

Is caver a player, or a world?

caver115 commented 9 years ago

Player

caver115 commented 9 years ago

minecraft@node23 ~/server/plugins/CommandBook $ cat warps.csv

"test","world","4048c4d5-f161-383e-8866-45418f871ff2","96.81481571430578","127.08081149041303","457.0513355239731","35.69997","-320.4001"

warps list 09:14:49 INFO: Warps - Page (1/1)

setwarp foo caver [09:15:09 INFO]: Invalid warp name! warps list 09:15:15 INFO: Warps - Page (1/1)

09:15:15 INFO: An error has occurred. See console. [09:15:15 WARN]: com.sk89q.minecraft.util.commands.WrappedCommandException: java.lang.IllegalArgumentException: UUID cannot be null [09:15:15 WARN]: at com.sk89q.minecraft.util.commands.CommandsManager.invokeMethod(CommandsManager.java:538) [09:15:15 WARN]: at com.sk89q.minecraft.util.commands.CommandsManager.executeMethod(CommandsManager.java:516) [09:15:15 WARN]: at com.sk89q.minecraft.util.commands.CommandsManager.executeMethod(CommandsManager.java:471) [09:15:15 WARN]: at com.sk89q.minecraft.util.commands.CommandsManager.execute(CommandsManager.java:409) [09:15:15 WARN]: at com.zachsthings.libcomponents.bukkit.BukkitComponent.onCommand(BukkitComponent.java:80) [09:15:15 WARN]: at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:54) [09:15:15 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [09:15:15 WARN]: at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [09:15:15 WARN]: at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [09:15:15 WARN]: at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [09:15:15 WARN]: at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [09:15:15 WARN]: at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [09:15:15 WARN]: at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [09:15:15 WARN]: at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [09:15:15 WARN]: Caused by: java.lang.IllegalArgumentException: UUID cannot be null [09:15:15 WARN]: at org.apache.commons.lang.Validate.notNull(Validate.java:192) [09:15:15 WARN]: at org.bukkit.craftbukkit.v1_7_R4.CraftServer.getOfflinePlayer(CraftServer.java:1423) [09:15:15 WARN]: at com.sk89q.commandbook.locations.NamedLocation.getCreatorName(NamedLocation.java:66) [09:15:15 WARN]: at com.sk89q.commandbook.locations.WarpsComponent$1.format(WarpsComponent.java:189) [09:15:15 WARN]: at com.sk89q.commandbook.locations.WarpsComponent$1.format(WarpsComponent.java:186) [09:15:15 WARN]: at com.sk89q.commandbook.commands.PaginatedResult.display(PaginatedResult.java:62) [09:15:15 WARN]: at com.sk89q.commandbook.locations.LocationsComponent.list(LocationsComponent.java:143) [09:15:15 WARN]: at com.sk89q.commandbook.locations.WarpsComponent$ManagementCommands.listCmd(WarpsComponent.java:179) [09:15:15 WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [09:15:15 WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [09:15:15 WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [09:15:15 WARN]: at java.lang.reflect.Method.invoke(Method.java:606) [09:15:15 WARN]: at com.sk89q.minecraft.util.commands.CommandsManager.invokeMethod(CommandsManager.java:528) [09:15:15 WARN]: ... 13 more

minecraft@node23 ~/server/plugins/CommandBook $ cat warps.csv minecraft@node23 ~/server/plugins/CommandBook $

DarkArc commented 9 years ago

Please try this build, and tell me if it resolves your issue. http://teamcity.sk89q.com/viewLog.html?buildId=6375&tab=artifacts&buildTypeId=bt9. You should now be required to set an owner for the warp, and that player must be online.

EDIT: Yes, I can fix it so that they don't have to be online, but at the moment, I'm not going to. I've got a ton of calculus homework, and I'm technically retired... But I promised to maintain the bukkit version if serious bugs came up... so... ya... I think this qualifies. I'll polish it up at a later date if it works.

caver115 commented 9 years ago

yep, it's fixed

caver115 commented 9 years ago

NB: In my commit its possible to install the warp from the console, where target is the player :)

DarkArc commented 9 years ago

Your commit breaks non-player targets from the console. With my commit, you can say /setwarp foo player player. As well as, /setwarp foo player otherPlayer from the console.

DarkArc commented 9 years ago

In addition to, /setwarp foo x,y,z:World player

caver115 commented 9 years ago

Excellent work :) Thank you.

DarkArc commented 9 years ago

@caver115 If you would, could you try the latest build and tell me how it works? You should be able to specify offline players whom have logged in before in addition to online players -- though if they're offline you must specify a location.

EDIT: You may have to compile locally, the build system seems locked up.

DarkArc commented 9 years ago

@caver115 If you're still watching this, http://teamcity.sk89q.com/repository/download/bt9/6384:id/commandbook-2.5-SNAPSHOT.zip.