Giter Site home page Giter Site logo

walk-in-the-park's People

Contributors

ahdg6 avatar cirkutry avatar efnilite avatar hsgamer avatar jhqwqmc avatar mcmdev avatar modcrafts avatar tathandev avatar thejcn avatar xmikux avatar yaosiqian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

walk-in-the-park's Issues

MysqlDataTruncation: Data truncation: Data too long for column 'hsdiff' at row 1

Describe the bug
MySQL error updating table data when joining and leaving WITP course.

To Reproduce
Steps to reproduce the behavior:

  1. Join course.
  2. Get a score.
  3. Fall off.
  4. Leave WITP.
  5. Error.

Errors

[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'hsdiff' at row 1
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1347)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at dev.efnilite.witp.util.sql.Database.query(Database.java:44)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at dev.efnilite.witp.util.sql.UpdateStatement.query(UpdateStatement.java:47)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at dev.efnilite.witp.util.sql.UpdertStatement.query(UpdertStatement.java:56)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at dev.efnilite.witp.player.ParkourPlayer.lambda$save$28(ParkourPlayer.java:539)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:100)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:831)
[04:16:36] [Craft Scheduler Thread - 198 - WITP/ERROR]: [WITP] Error while trying to update MySQL database!
[04:16:36] [Craft Scheduler Thread - 198 - WITP/ERROR]: [WITP] Query: UPDATE `players` SET uuid = '24b95709-012c-4dee-a324-c37ff1a4e56c', name = 'rtcabooservb', highscore = 50, hstime = '41.2s', lang = 'en', hsdiff = 'null' WHERE `uuid` = '24b95709-012c-4dee-a324-c37ff1a4e56c';

Versions

  • WITP v2.4c
  • Paper dev 112 (1.17.1)

IllegalArgumentException: location.world

Compiled as of 2f21af9

  • Player joins WITP.
  • Used options to quit.
  • It didn't bring them to spawn. They were falling in the void suffocating.
  • Since they were no longer part of WITP, they could use /spawn to leave.
  • However they lost their inventory and retained the clock.

I'm assuming this is due to go-back-enabled: true being enabled. Setting it false fixes the issue.

[09:09:50] [Server thread/ERROR]: Could not pass event InventoryClickEvent to WITP v2.0
[09:09:50] [Server thread/ERROR]: Suspected Plugins: 
[09:09:50] [Server thread/ERROR]: 	WITP{enabled,ver=2.0,path=plugins/WITP-2.1.jar}
[09:09:50] [Server thread/ERROR]: Exception details below: 
java.lang.IllegalArgumentException: location.world
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.teleport(CraftPlayer.java:780) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity.teleport(CraftEntity.java:515) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at dev.efnilite.witp.player.ParkourUser.unregister(ParkourUser.java:104) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.lambda$menu$17(ParkourPlayer.java:402) ~[?:?]
	at dev.efnilite.witp.util.inventory.InventoryBuilder$ClickHandler.onClick(InventoryBuilder.java:168) ~[?:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor362.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:611) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2643) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:43) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1218) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1211) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1187) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1027) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at java.lang.Thread.run(Thread.java:832) [?:?]
# Options about Bungeecord/autojoining
bungeecord:

    # Enabling this will make players who join the server (that's running this plugin) automatically join the game on that server
    # !! If this is disabled, you have to use /witp join to join and /witp leave to leave. !!
    enabled: false

    # The server the players will be returned to after the game is done
    return_server: Lobby

    # If go back is enabled
    go-back-enabled: true

    # The place players will go back to if they leave, if bungeecord is disabled and the go-back option is enabled
    # You need to retain this format, or else it won't work: '(x,y,z,world)'
    go-back: (9,58,0,spawn)

# Options for the world
world:
    # The world in which the personal parkours will take place
    name: witp

    # The world players will be teleported to if they accidentally join the WITP world without being a player
    fall-back: spawn

Option to disable update checker.

Simple request for improvement.

An option to disable the update checker so WITP isn't checking for a new version every restart / OP join. Useful if you intentionally stay out of date due to an upstream bug or are testing newer commits. I always prefer to disable update checkers in plugins to reduce http calls & notification spam.

WITP returning players to join location on quit is breaking NPC skins from loading.

Describe the bug
Quitting WITP and returning to the join location -- spawn hub in my case -- seems to break NPC skins from loading. I presume this is because it's returning at the same tick as NPC skins loading / being sent to the client.

To Reproduce
Steps to reproduce the behavior:

  1. Join WITP
  2. Quit WITP
  3. NPC Skins don't load on return.

Screenshots
link

How it normally is suppose to look.
link

Errors
None.

Versions

  • Tuinity dev 456 (Paper 1.16.5)
  • WITP compiled as of commit f70e318
  • Citizens 2.0.27 dev 2268

Additional context
NPC skins load fine every other teleport.

Teleport to player -> go back with /spawn - fine.
Teleport to player -> go back with /back - fine.
Teleport to player -> go back with /home - fine.
Teleport to player -> go back with /warp - fine.
Use a random teleport command / function -> go back to spawn - fine.
Disconnect -> reconnect - fine.

It's only with WITP returning the player back to the spawn world / hub location does it break NPCs. I assume it would need a couple tick delay or something. Or changing the teleporting logic to match Essentials. Alternatively, using PaperLib API for async chunk loading? https://github.com/PaperMC/PaperLib

Blocks / structures do not clean up themselves after falling.

Describe the bug
Sometimes blocks & structures do not clean up after themselves / get removed when far enough away or resetting.

To Reproduce
Steps to reproduce the behavior:

  1. Play for awhile.
  2. See blocks / structures that aren't wiped.

Not too sure if it's caused from playing often or from the server restarting while being in a parkour map.

Screenshots

Here are screenshots from a player currently playing after I teleported to them.
link
link2

Errors
None

Versions

  • WalkInThePark 2.0
  • Paper dev 467 (Spigot 1.16.5)

Infinite points with one error

When the first block is at the island you can sneak onto the block and back to the island and you get 1 point. By repeating this process you can cheat the highscore.

I changed the bungeecord option to false...

I changed the bungeecord option to false and it just broke the plugin after I restarted the server. The scoreboard won't work, the GUI menu won't work... please help. Thanks. :)

Lagging the server

Server is lagging much more with this plugin enabled than disabled

image

Paper stopped responding too after a player tried to join the game. Not even joining the parkour lagged the server, just joining the servers hub lagged it so much it stopped responding

  • Latest Plugin
  • Paper434-1.16.5

NullPointerException: null - ParkourUser.leaderboard

[10:08:13] [Server thread/ERROR]: Could not pass event InventoryClickEvent to WITP v2.0
[10:08:13] [Server thread/ERROR]: Suspected Plugins: 
[10:08:13] [Server thread/ERROR]: 	WITP{enabled,ver=2.0,path=plugins/WITP-2.0.jar}
[10:08:13] [Server thread/ERROR]: Exception details below: 
java.lang.NullPointerException: null
	at dev.efnilite.witp.player.ParkourUser.leaderboard(ParkourUser.java:280) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.lambda$menu$16(ParkourPlayer.java:390) ~[?:?]
	at dev.efnilite.witp.util.inventory.InventoryBuilder$ClickHandler.onClick(InventoryBuilder.java:168) ~[?:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor368.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:611) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2643) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:43) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1218) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1211) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1187) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1027) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar:git-Yatopia-pr/upstream-"708cdc3"]
	at java.lang.Thread.run(Thread.java:832) [?:?]

New styles cannot be added to the config.

Compiled as of 2f21af9

Adding styles to the config seem to reset every restart. I have tried adding a new style to the config list and reloading with /witp reload from console.

        terracotta:
        - 'BLACK_GLAZED_TERRACOTTA'
        - 'BLACK_TERRACOTTA'
        - 'BLUE_GLAZED_TERRACOTTA'
        - 'BLUE_TERRACOTTA'
        - 'BROWN_GLAZED_TERRACOTTA'
        - 'BROWN_TERRACOTTA'
        - 'CYAN_GLAZED_TERRACOTTA'
        - 'CYAN_TERRACOTTA'
        - 'GRAY_GLAZED_TERRACOTTA'
        - 'GRAY_TERRACOTTA'
        - 'GREEN_GLAZED_TERRACOTTA'
        - 'GREEN_TERRACOTTA'
        - 'LIGHT_BLUE_GLAZED_TERRACOTTA'
        - 'LIGHT_BLUE_TERRACOTTA'
        - 'LIGHT_GRAY_GLAZED_TERRACOTTA'
        - 'LIGHT_GRAY_TERRACOTTA'
        - 'LIME_GLAZED_TERRACOTTA'
        - 'LIME_TERRACOTTA'
        - 'MAGENTA_GLAZED_TERRACOTTA'
        - 'MAGENTA_TERRACOTTA'
        - 'ORANGE_GLAZED_TERRACOTTA'
        - 'ORANGE_TERRACOTTA'
        - 'PINK_GLAZED_TERRACOTTA'
        - 'PINK_TERRACOTTA'
        - 'PURPLE_GLAZED_TERRACOTTA'
        - 'PURPLE_TERRACOTTA'
        - 'RED_GLAZED_TERRACOTTA'
        - 'RED_TERRACOTTA'
        - 'TERRACOTTA'
        - 'WHITE_GLAZED_TERRACOTTA'
        - 'WHITE_TERRACOTTA'
        - 'YELLOW_GLAZED_TERRACOTTA'
        - 'YELLOW_TERRACOTTA'

The style did not get added when checking the options menu in-game after the reload. After a server restart, the style was gone from the config.

NullPointerException: null - ParkourUser.leaderboard

Compiled as of commit 2f21af9, using MySQL database.

[12:51:56] [Server thread/ERROR]: Could not pass event InventoryClickEvent to WITP v2.0
[12:51:56] [Server thread/ERROR]: Suspected Plugins: 
[12:51:56] [Server thread/ERROR]: 	WITP{enabled,ver=2.0,path=plugins/WITP-2.1.jar}
[12:51:56] [Server thread/ERROR]: Exception details below: 
java.lang.NullPointerException: null
	at dev.efnilite.witp.player.ParkourUser.leaderboard(ParkourUser.java:294) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.lambda$menu$16(ParkourPlayer.java:395) ~[?:?]
	at dev.efnilite.witp.util.inventory.InventoryBuilder$ClickHandler.onClick(InventoryBuilder.java:168) ~[?:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor362.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:611) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2643) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:43) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1218) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1211) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1351) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1016) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"a1c007b"]
	at java.lang.Thread.run(Thread.java:832) [?:?]

[Bug] Options Menu Leaderboards item out of order

Describe the bug
The leaderboards item is out of order in Options GUI.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'options' while in WITP
  • See photo for example

Screenshots
If applicable, add screenshots to help explain your problem.
image

Errors
Check your console for errors that might've occured. These could help greatly in finding the issue.
[18:56:52 WARN]: [WITP] Task #141691 for WITP v1.6a generated an exception java.lang.IllegalArgumentException: Cannot measure distance between witp and world at org.bukkit.Location.distanceSquared(Location.java:510) ~[patched_1.16.2.jar:git-Paper-189] at org.bukkit.Location.distance(Location.java:493) ~[patched_1.16.2.jar:git-Paper-189] at dev.efnilite.witp.generator.ParkourGenerator$1.run(ParkourGenerator.java:119) ~[?:?] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.16.2.jar:git-Paper-189] at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.2.jar:git-Paper-189] at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1296) ~[patched_1.16.2.jar:git-Paper-189] at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:375) ~[patched_1.16.2.jar:git-Paper-189] at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1211) ~[patched_1.16.2.jar:git-Paper-189] at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:999) ~[patched_1.16.2.jar:git-Paper-189] at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-189] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]

Versions

  • Plugin version 1.6a
  • Spigot/Paper version 1.16.2

Could not save configs because already exists redundant verbose.

Is it necessary to output that the configs couldn't be saved because it already exists?

[03:55:01] [Server thread/INFO]: [WITP] Enabling WITP v2.2
[03:55:01] [Server thread/WARN]: [WITP] Could not save config.yml to plugins/WITP/config.yml because config.yml already exists.
[03:55:01] [Server thread/WARN]: [WITP] Could not save generation.yml to plugins/WITP/generation.yml because generation.yml already exists.
[03:55:01] [Server thread/WARN]: [WITP] Could not save lang.yml to plugins/WITP/lang.yml because lang.yml already exists.
[03:55:01] [Server thread/WARN]: [WITP] Could not save items.yml to plugins/WITP/items.yml because items.yml already exists.
[03:55:01] [Server thread/INFO]: [WITP] Downloaded all config files
[03:55:01] [Server thread/ERROR]: No key layers in MapLike[{}]; No key structures in MapLike[{}]; Not a registry ops
[03:55:02] [Server thread/INFO]: Preparing start region for dimension minecraft:witp

Time doesn't stay set when you fall

Describe the bug
A clear and concise description of what the bug is.

When you fail to make a jump with the time set to a certain value, it will automatically re-set the time to noon.

To Reproduce
Steps to reproduce the behavior:

  1. Go to "Options."
  2. Click on 'Time preference'
  3. Fail to make a jump

Screenshots
If applicable, add screenshots to help explain your problem.

2021-01-12_21-57-28.mp4

Errors
Check your console for errors that might've occured. These could help greatly in finding the issue.

I don't think this has anything to do with it but it is displaying

[21:59:47 ERROR]: Could not save data net.minecraft.server.v1_16_R3.PersistentRaid@1d6f46ec
java.io.FileNotFoundException: .\witp\data\raids.dat (The system cannot find the path specified)
at java.io.FileOutputStream.open0(Native Method) ~[?:?]
at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
at java.io.FileOutputStream.(FileOutputStream.java:237) ~[?:?]
at java.io.FileOutputStream.(FileOutputStream.java:187) ~[?:?]
at net.minecraft.server.v1_16_R3.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:81) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.PersistentBase.a(SourceFile:51) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.WorldPersistentData.a(WorldPersistentData.java:194) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.WorldServer.aj(WorldServer.java:1024) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.WorldServer.saveData(WorldServer.java:1018) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.WorldServer.saveIncrementally(WorldServer.java:966) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1235) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:992) ~[paper-1.16.4.jar:git-Paper-407]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:173) ~[paper-1.16.4.jar:git-Paper-407]
at java.lang.Thread.run(Thread.java:834) [?:?]

Versions

  • Plugin version 1.9b
  • Spigot/Paper version 1.16.4 Build#407

Additional context
Add any other context about the problem here.

Ignore section styles verbose output at startup.

Caused by commit 59e51b1 ?

[19:04:54] [Server thread/INFO]: [WITP] Enabling WITP v2.0
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.red // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.blue // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.light blue // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.green // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.lime // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.cyan // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.purple // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.yellow // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.gray // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.end // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.nether // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.quartz // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.ocean // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.redstone // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.overworld // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.ores // styles.list
[19:04:54] [Server thread/INFO]: [WITP] ignore section styles.list.wood // styles.list
[19:04:54] [Server thread/INFO]: [PlaceholderAPI] Successfully registered expansion: witp
[19:04:54] [Server thread/ERROR]: No key layers in MapLike[{}]; No key structures in MapLike[{}]; Not a registry ops
[19:04:55] [Server thread/INFO]: Preparing start region for dimension minecraft:witp

Save player preferences to sql database.

Would it be possible to save the player's preferences to the sql database? Currently preferences (WITP options) reset every time you rejoin the arena. A player may prefer to have their time always at a specific point, a style they always use, a certain comfort block lead, or messages they never want to see.

Having an option to choose what gets saved / used, or at least the first 3 options (style/lead/time), may be a nice quality of life change.

No key layers in MapLike[{}]; No key structures in MapLike[{}]; Not a registry ops

WITP compiled as of commit 3c8ad14

[06:12:48] [Server thread/INFO]: [WITP] Enabling WITP v2.0
[06:12:48] [Server thread/INFO]: [WITP] Downloaded all config files
[06:12:48] [Server thread/INFO]: [WITP] Downloading all structures...
[06:12:48] [Server thread/ERROR]: No key layers in MapLike[{}]; No key structures in MapLike[{}]; Not a registry ops
[06:12:51] [Server thread/INFO]: Preparing start region for dimension minecraft:witp

Also need to update the plugin.yml version to v2.1. :)

High-score / leaderboard seems to not save properly & gets overwritten with a lower value when you disconnect from the server.

Describe the bug
The leaderboard high-score doesn't seem to save properly. If you disconnect in any fashion, your last played score is set as your current new leaderboard highscore.

To Reproduce
Steps to reproduce the behavior:

  1. Join WITP
  2. Set a score of 10.
  3. Quit.
  4. Your highscore is 10.
  5. Join WITP
  6. Set a score of 1
  7. Quit
  8. Disconnect from server
  9. Reconnect to server
  10. Your leaderboard / high score is now 1.

Edit: Doing some more testing, it seems to set a new high score (even if it's lower than the last time you played) the first time you re-join the parkour game and get a score & fall (reset).

i.e.

Play parkour > get a score of 10 > leave parkour > rejoin parkour > get a score of 1 > goodbye highscore.

Screenshots
Bryn complained about their score resetting so I went in to check their total.
link
Then they played a game and said their new score was lower.
link2

Errors
None.

Versions

  • Compiled as of commit 2f21af9
  • Paper dev 467 (Spigot 1.16.5)

Additional context
Using MySQL database.

One-time score threshold rewards.

Would it be possible to add support for one-time score threshold rewards? For example rewarding someone for reaching a score of 1,000 but they only get that reward once (i.e. a tag or permission unlock). Currently if you use commands on score rewards, it would reward every time a person meets that threshold if they restart.

Could flag the player if they've reached that score reward before in the database file.

Reload command is not functional in-game.

Compiled as of 2f21af9

The reload command /witp reload does not seem to be functional in-game. It only seems to work from console. Nothing is outputted when using the command.

permissions:

    # If permissions are enabled
    enabled: true

I also tried giving myself a wildcard permission (witp.*) in case the reload permission was hidden.

If you disconnect while spectating someone, you login at the backup location in spectate gamemode.

Describe the bug
Player gamemode isn't reverted back / set to survival on login if disconnecting from inside the game.

To Reproduce
Steps to reproduce the behavior:

  1. Player 1 joins WITP.
  2. Player 2 joins WITP.
  3. Player 1 changes gamemode to spectate Player 2 using WITP options menu.
  4. Player 1 disconnects.
  5. Player 1 rejoins.
  6. Player 1 gets a message saying You have been teleported to a backup location but is still in the spectate gamemode.
    Screenshots
    If applicable, add screenshots to help explain your problem.

Errors
None.

Versions

  • WalkInThePark v2.0
  • Paper dev 467 (Spigot 1.16.5)

Additional context

# Options for the world
world:
    # The world in which the personal parkours will take place
    name: witp

    # The world players will be teleported to if they accidentally join the WITP world without being a player
    fall-back: spawn

Players are able to break WITP by joining while mounted to a vehicle/player.

Describe the bug
Player discovered that if you are mounted to a vehicle or another player and try to join parkour via /witp join, it does not teleport you to the WITP world but puts you in the parkour mode / inventory / red screen.

Screenshots
Not in parkour.
link

Joined parkour with a player on my head.
link2

Errors

[21:03:39] [Server thread/INFO]: mibby issued server command: /witp join
[21:03:39] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:40] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:41] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:42] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:43] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:43] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:43] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:43] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/INFO]: mibby issued server command: /witp join
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:49] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:50] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:51] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:52] [Server thread/INFO]: mibby issued server command: /witp join
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:53] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:54] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:55] [Server thread/ERROR]: [WITP] Worlds are not the same (1)
[21:03:55] [Server thread/ERROR]: [WITP] Worlds are not the same (1)

Versions

  • WITP v2.1a - Hotfix 10
  • Paper dev 469 (Spigot 1.16.5)

Additional context
Probably should deny joining Parkour if the player can't be teleported to the world first or check against if they are unmovable / in a vehicle / mounted to an entity.

The config resets itself on invalid configuration and doesn't create a backup.

Ran into this error testing latest dev commit, compiled as of commit 00843b9.

Instead of the config just complaining about invalid configuration, it reset itself and wiped all settings (such as sql password) without backing itself up at start-up. Also breaks itself from /witp reload if you try making config changes that it doesn't like post-initialization.

This was caused by trying to remove the commands on the new scores config section. Tried setting scores: {}, tried just removing the command line, tried removing the score values, also tried setting the command line to ''. Everything errors and resets it. :(

[19:00:32] [Server thread/ERROR]: Cannot load plugins/WITP/config.yml
org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping
 in 'string', line 273, column 3:
      enabled: true
      ^
expected <block end>, but found '<block mapping start>'
 in 'string', line 285, column 5:
        50:
        ^

	at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:59) ~[1.16.5-patched.jar: "]
	at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:160) ~[1.16.5-patched.jar: "]
	at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:128) ~[1.16.5-patched.jar: "]
	at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:188) ~[1.16.5-patched.jar: "]
	at dev.efnilite.witp.util.config.ConfigUpdater.update(ConfigUpdater.java:41) ~[?:?]
	at dev.efnilite.witp.util.config.Configuration.<init>(Configuration.java:51) ~[?:?]
	at dev.efnilite.witp.WITP.onEnable(WITP.java:85) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[1.16.5-patched.jar: "]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[1.16.5-patched.jar: "]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[1.16.5-patched.jar: "]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:500) ~[1.16.5-patched.jar: "]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:414) ~[1.16.5-patched.jar: "]
	at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:467) ~[1.16.5-patched.jar: "]
	at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:260) ~[1.16.5-patched.jar: "]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:946) ~[1.16.5-patched.jar: "]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar: "]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
 in 'string', line 273, column 3:
      enabled: true
      ^
expected <block end>, but found '<block mapping start>'
 in 'string', line 285, column 5:
        50:
        ^

	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:235) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:95) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:119) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:150) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:490) ~[1.16.5-patched.jar: "]
	at org.yaml.snakeyaml.Yaml.load(Yaml.java:416) ~[1.16.5-patched.jar: "]
	at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57) ~[1.16.5-patched.jar: "]
	... 16 more
[19:33:19] [Server thread/INFO]: mibby issued server command: /witp reload
[19:33:19] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Cannot execute command 'witp' in plugin WITP v2.1a - plugin is disabled.
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:806) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2146) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1949) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1902) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:43) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1218) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1211) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1351) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1016) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"124113a"]
	at java.lang.Thread.run(Thread.java:834) [?:?]

Allow whitelisting certain commands for focus-mode.

Would it be possible to allow whitelisting a certain list of commands when using focus-mode? You may want to block all commands by default to prevent any form of abuse (such as gamemode, teleporting, flying, etc) but are okay with players being able to message, talk in certain chat channels, and reply to players in tells.

# Options for focus mode
focus-mode:

    # If focus mode is enabled players can't use commands while in parkour
    enabled: true

IllegalArgumentException: Cannot measure distance between witp and spawn

Compiled as of commit 01146d5

[23:13:06] [Server thread/ERROR]: [WITP] Task #263171 for WITP v2.0 generated an exception
[23:13:06] [Server thread/ERROR]: [WITP] Suspected Plugins: 
[23:13:06] [Server thread/ERROR]: [WITP] 	WITP{enabled,ver=2.0,path=plugins/WITP-2.1.jar}
[23:13:06] [Server thread/ERROR]: [WITP] Exception details below: 
java.lang.IllegalArgumentException: Cannot measure distance between witp and spawn
	at org.bukkit.Location.distanceSquared(Location.java:510) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at org.bukkit.Location.distance(Location.java:493) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at dev.efnilite.witp.player.ParkourSpectator.checkDistance(ParkourSpectator.java:58) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.updateSpectators(ParkourPlayer.java:130) ~[?:?]
	at dev.efnilite.witp.generator.DefaultGenerator$1.run(DefaultGenerator.java:124) ~[?:?]
	at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:100) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:469) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1386) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:398) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1295) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1016) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:176) ~[1.16.5-patched.jar:git-Yatopia-ver/1.16.5-"f295cbb"]
	at java.lang.Thread.run(Thread.java:832) [?:?]

Button interact to join Parkour forwards an extra click event, opening the Options menu.

Describe the bug
I have a button setup at my spawn to join the parkour mode. Upon right clicking the button, it runs the command /parkour join. However if players right click the button while their inventory slot is hovering over slot 9, WITP opens the options menu immediately on join as if the player right clicked the Options item when they only interacted with a button prior (single right click).

I have tested this with two separate plugins that handle attaching commands to run on interact with a button; ServerSigns & ButtonWarps.

To Reproduce
Steps to reproduce the behavior with ServerSigns

  1. Place button on a wall.
  2. /svs add parkour join
  3. Right click to attach command.
  4. Right click button to join WITP while hovering over slot 9.
  5. Options menu opens on join.

Steps to reproduce the behavior with ButtonWarps

  1. Place button on a wall.
  2. /bw make parkourtest nowhere
  3. /bw cmd parkourtest add parkour join
  4. Stare at button.
  5. /bw link parkourtest
  6. Right click button to join WITP while hovering over slot 9.
  7. Options menu opens on join.

Errors
None.

Versions

  • Compiled as of commit 2f21af9
  • Paper dev 467

Additional context
I also tried binding the command /parkour join to an NPC from Citizens. NPC interact doesn't seem to have this problem, only buttons when you right click prior to joining.

Some players appears in the same island as other person

Describe the bug
Some players appear in the island of another player and a big error appears in the console. They can both play but the blocks just are mixed

To Reproduce
It is very hard to reproduce and I don't know why it happened

Screenshots
https://i.imgur.com/fNiDXK9.png
https://i.imgur.com/sE3VTNH.png
https://i.imgur.com/XPgHP62.png

Errors
09.05 19:20:57 [Server] ERROR [WITP] Point assignment after confirmation has gone terribly wrong - regenerating.. 09.05 19:20:57 [Server] ERROR [WITP] Generator of player is null while trying to unregister! 09.05 19:20:57 [Server] ERROR Could not pass event InventoryClickEvent to WITP v2.3c 09.05 19:20:57 [Server] INFO java.lang.NullPointerException: null 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourPlayer.updateScoreboard(ParkourPlayer.java:168) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourPlayer.setDefaults(ParkourPlayer.java:111) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourPlayer.register(ParkourPlayer.java:651) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourPlayer.register(ParkourPlayer.java:602) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourUser.unregister(ParkourUser.java:89) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.player.ParkourSpectator.<init>(ParkourSpectator.java:33) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.api.gamemode.SpectatorGamemode.lambda$handleItemClick$0(SpectatorGamemode.java:50) ~[?:?] 09.05 19:20:57 [Server] INFO at dev.efnilite.witp.util.inventory.InventoryBuilder$ClickHandler.onClick(InventoryBuilder.java:168) ~[?:?] 09.05 19:20:57 [Server] INFO at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor270.execute(Unknown Source) ~[?:?] 09.05 19:20:57 [Server] INFO at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2687) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:20:57 [Server] INFO at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1252) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1245) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1206) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1120) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-584] 09.05 19:21:02 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_282]

Versions

  • Plugin version: 2.3c
  • Spigot/Paper version: Paper-584

An internal error occured when joining parkour

Describe the bug
When attempting to join the parkour with /witp join the plugin breaks and i get a An internal error occured while performing this command message. I get teleported to the start platform but only see a emeraldblock and can't do the parkour. I can't use any other /witp command. Only the /witp leave command works which will bring me back to spawn.

To Reproduce
Steps to reproduce the behavior:

  1. Attempting to join the parkour with /witp join
  2. See: An internal error occured while performing this command
  3. See error in log

Errors

[19:21:22 INFO]: Neocky issued server command: /witp join
[19:21:22 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'witp' in plugin WITP v2.3c
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Paper-629]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-629]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:810) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2171) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1986) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1939) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:50) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:8) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1262) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1255) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1216) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130) ~[patched_1.16.5.jar:git-Paper-629]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-629]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NullPointerException
        at dev.efnilite.witp.util.config.Configuration.getItemData(Configuration.java:178) ~[?:?]
        at dev.efnilite.witp.util.config.Configuration.getFromItemData(Configuration.java:166) ~[?:?]
        at dev.efnilite.witp.generator.subarea.SubareaDivider.createIsland(SubareaDivider.java:301) ~[?:?]
        at dev.efnilite.witp.generator.subarea.SubareaDivider.generate(SubareaDivider.java:152) ~[?:?]
        at dev.efnilite.witp.player.ParkourPlayer.<init>(ParkourPlayer.java:89) ~[?:?]
        at dev.efnilite.witp.player.ParkourPlayer.register(ParkourPlayer.java:602) ~[?:?]
        at dev.efnilite.witp.command.MainCommand.execute(MainCommand.java:102) ~[?:?]
        at dev.efnilite.witp.util.wrapper.BukkitCommand.onCommand(BukkitCommand.java:49) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-629]
        ... 19 more
[19:21:28 INFO]: Neocky issued server command: /witp menu
[19:21:31 INFO]: Neocky issued server command: /witp leave
[19:21:31 ERROR]: [WITP] Generator of player is null while trying to unregister!

Versions

  • 2.3c (latest)
  • Paper-629 & before Paper-584 with the same problem

World save error

The error when saving the witp world is still there. Is it not possible to cancel the save with the event "WorldSaveEvent"?

[19:00:03] [Server thread/ERROR]: Could not save data net.minecraft.server.v1_16_R3.PersistentRaid@7c70334b java.io.FileNotFoundException: ./witp/data/raids.dat (No such file or directory) at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_275] at java.io.FileOutputStream.open(FileOutputStream.java:270) ~[?:1.8.0_275] at java.io.FileOutputStream.<init>(FileOutputStream.java:213) ~[?:1.8.0_275] at java.io.FileOutputStream.<init>(FileOutputStream.java:162) ~[?:1.8.0_275] at net.minecraft.server.v1_16_R3.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:81) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.PersistentBase.a(SourceFile:51) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.WorldPersistentData.a(WorldPersistentData.java:194) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.WorldServer.aj(WorldServer.java:1024) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.WorldServer.saveData(WorldServer.java:1018) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.WorldServer.saveIncrementally(WorldServer.java:966) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1239) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:996) ~[patched_1.16.4.jar:git-Paper-416] at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:173) ~[patched_1.16.4.jar:git-Paper-416] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]

suggestion: sql Prefix

Would be nice to have a configurable prefix for the sql table names.
This could significantly reduce the risk of unwanted data override and would make it easier to view the witp tabled within a bigger database.

Left message does not occur when you use the quit option from the GUI.

Compiled as of commit 2f21af9

If you open the GUI and click Quit, the left language string message does not occur. It only seems to appear when you manually type /parkour leave.

    en:
        join: '&7%p has joined the server'
        leave: '&7%p has left the server'
        joined: '&a&l(!) &7You joined the parkour'
        left: '&c&l(!) &7You left the parkour'

Loading class `com.mysql.jdbc.Driver'. This is deprecated.

New driver is com.mysql.cj.jdbc.Driver

[14:02:57] [Server thread/INFO]: [WITP] Enabling WITP v2.3c
[14:02:59] [Server thread/INFO]: [WITP] Connecting to SQL...
[14:02:59] [Server thread/WARN]: Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[14:02:59] [Server thread/INFO]: [WITP] Initialized database
[14:02:59] [Server thread/INFO]: [WITP] Connected to SQL!
[14:02:59] [Server thread/INFO]: [WITP] Loaded WITP in 1854ms!

suggestion: New sql table "game_history"

It would be nice if there was an option to enable a "game-logging" option.
Enabling it could put every played game with coresponding data (uuid,blocks, time, settings) into a table.

This would make it possible to develop some kind of leaderboard for the serverwebsite or similiar.
Settings dos sound strange at first, but would be needed for comparison (because a game played with "super easy" settings should not count the same as one played with "super hard settings")

Red corners and very limited interactions in returning world

Describe the bug
When I and my players on the server join and later leave the parkour (with all kinds of commands; parkour/witp leave, homes, back, etc.), the HUD has red corners and you can't interact with doors or even destroy any blocks. I can though mount horses. The only way to "fix" it is to re-connect to the server or switch to other worlds (like nether or the end).

Screenshots

Errors
No errors in console or in-game chat.

Versions

  • Java JDK 16.0.1
  • Paper 1.16.5 (783)
  • WITP 2.4e

Additional context
I'm using Multiverse Core and VoidGen among other plugins. The world is not named "world", I've changed to the correct one in the config file (fall-back world).

Permission enabling does not block commands from working if you don't have permission -- only the GUI.

Describe the bug

# Options for permissions.
# These permissions are used to determine which things the player can change.
# List: https://github.com/Efnilite/Walk-in-the-Park/wiki/Permissions
permissions:

    # If permissions are enabled
    enabled: true

Despite permissions being enabled, players are able to use WITP commands they shouldn't have access to. A player was able to use the command /witp gamemode to enter spectate mode (and subsequently create inventory loss because of it).

To Reproduce
Steps to reproduce the behavior:

  1. Enable setting.
  2. Give permissions except gamemode.
  3. Can't use gamemode in GUI.
  4. Can use gamemode in command manually.

Versions

Additional context

Gave only these permissions to the default group.

- witp.difficulty
- witp.fall
- witp.lead
- witp.leaderboard
- witp.particles
- witp.scoreboard
- witp.special
- witp.structures
- witp.style
- witp.time

More spectate bugs / loss of inventory.

RE: #10

Compiled as of commit 01146d5

Found some more spectate bugs.

link

  1. Join WITP.
  2. Spectate a player with the command /witp gamemode.
  3. Can spam /witp join despite already being part of parkour
    -- Bug 1
    (Also works prior to spectating and spams join messages, should only be able to "join" parkour once and output already playing.)
  4. After typing /witp join, your game breaks. You get put in survival mode and back into your own course. However you can't move, your screen flashes red (as if you are dying), and you see your course's initial path generate infinitely in a repeating loop.
    -- Bug 2
  5. Leave spectate/parkour with the command /witp leave since you can't do anything.
  6. You get teleported back to the person you were spectating and you are attached to them. However you are no longer a part of parkour.
    -- Bug 3
  7. A If you leave with /spawn, your inventory is wiped (get parkour inventory) & you are stuck in spectate gamemode.
  8. B If you disconnect and reconnect, your inventory is wiped (get parkour inventory) & you are stuck in spectate gamemode.
  9. C If you wait for the person you are stuck spectating to leave, you get put back in your course in survival (despite not being part of parkour). When you try to leave with /parkour leave, you get put back into spectate gamemode, your spawn area despawns, & you are floating in the void. You then need to either do 7A or 7B, with inventory loss / getting stuck in gamemode spectate bug also occurring.
    -- Bug 4

Use default preset if style is no longer existing.

WITP joins break if you have a preset that no longer exists in the config set as your default. Should fallback to first listed as a default if not existing to prevent breakage since you can't open the GUI to change it back or generate blocks.

[21:02:46] [Server thread/ERROR]: [WITP] Style selected (amethyst) doesn't exist in config.yml!
[21:02:46] [Server thread/WARN]: [ServerSigns] Error while executing task PlayerTask{data='parkour join'} de.czymm.serversigns.taskmanager.tasks.PlayerActionTask@33cf2d9e
org.bukkit.command.CommandException: Unhandled exception executing command 'parkour' in plugin WITP v2.4c
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.craftbukkit.v1_17_R1.CraftServer.dispatchCommand(CraftServer.java:821) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer.performCommand(CraftPlayer.java:652) ~[patched_1.17.1.jar:git-Purpur-1285]
	at de.czymm.serversigns.taskmanager.tasks.PlayerActionTask.performCommand(PlayerActionTask.java:39) ~[?:?]
	at de.czymm.serversigns.taskmanager.tasks.PlayerActionTask.lambda$runPlayerTask$0(PlayerActionTask.java:68) ~[?:?]
	at de.czymm.serversigns.ServerSignsPlugin.runOnMainThread(ServerSignsPlugin.java:269) ~[?:?]
	at de.czymm.serversigns.taskmanager.tasks.PlayerActionTask.runPlayerTask(PlayerActionTask.java:68) ~[?:?]
	at de.czymm.serversigns.taskmanager.tasks.PlayerTask.runTask(PlayerTask.java:51) ~[?:?]
	at de.czymm.serversigns.taskmanager.TaskManagerTaskExecutor.runTaskImpl(TaskManagerTaskExecutor.java:62) ~[?:?]
	at de.czymm.serversigns.taskmanager.TaskManagerTaskExecutor.runTask(TaskManagerTaskExecutor.java:55) ~[?:?]
	at de.czymm.serversigns.taskmanager.TaskManagerTaskExecutor.runTask(TaskManagerTaskExecutor.java:31) ~[?:?]
	at de.czymm.serversigns.taskmanager.TaskManager.addTask(TaskManager.java:109) ~[?:?]
	at de.czymm.serversigns.taskmanager.TaskManager.addAllTasks(TaskManager.java:121) ~[?:?]
	at de.czymm.serversigns.signs.ServerSignExecutor.createCommandTasks(ServerSignExecutor.java:229) ~[?:?]
	at de.czymm.serversigns.signs.ServerSignExecutor.executeSignFull(ServerSignExecutor.java:104) ~[?:?]
	at de.czymm.serversigns.listeners.PlayerListener.playerInteractCheck(PlayerListener.java:106) ~[?:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor695.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.17.1.jar:git-Purpur-1285]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.17.1.jar:git-Purpur-1285]
	at org.bukkit.craftbukkit.v1_17_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:538) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:543) ~[?:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1853) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:33) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:9) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1422) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.server.MinecraftServer.shouldRun(MinecraftServer.java:190) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1400) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1393) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1369) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1280) ~[patched_1.17.1.jar:git-Purpur-1285]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Purpur-1285]
	at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because "this.possibleStyle" is null
	at dev.efnilite.witp.player.ParkourPlayer.randomMaterial(ParkourPlayer.java:193) ~[?:?]
	at dev.efnilite.witp.generator.DefaultGenerator.generate(DefaultGenerator.java:431) ~[?:?]
	at dev.efnilite.witp.generator.DefaultGenerator.generate(DefaultGenerator.java:644) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.setDefaults(ParkourPlayer.java:116) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.register(ParkourPlayer.java:753) ~[?:?]
	at dev.efnilite.witp.player.ParkourPlayer.register(ParkourPlayer.java:661) ~[?:?]
	at dev.efnilite.witp.command.MainCommand.execute(MainCommand.java:109) ~[?:?]
	at dev.efnilite.witp.util.wrapper.BukkitCommand.onCommand(BukkitCommand.java:49) ~[?:?]
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.17.1.jar:git-Purpur-1285]
	... 40 more

focus-mode is not denying all commands not whitelisted

Despite focus-mode being forced on, players are able to use the command /spawn to leave the parkour map. Either focus-mode is not properly blocking all commands or because I use spawn as a fall-back world / go-back configuration, it's breaking WITP.

# Options for focus mode.
focus-mode:

    # If focus mode is enabled players can't use commands while in parkour.
    enabled: true

    # A whitelist for commands which ARE allowed during focus mode (if focus mode is enabled).
    # If you want to disable the default whitelisted commands you can remove every item in the list below.
    whitelist:
    - 'witp'
    - 'parkour'
    - 'msg'
    - 'r'
    - 'w'
    - 'whisper'
    - 'reply'
    - 'message'
    - 'tell'
    - 'me'
    - 'ac'
    - 'musicbox'
    - 'money'
    - 'bal'
    - 'balance'
    # If go back is enabled
    go-back-enabled: false

    # The place players will go back to if they leave, if bungeecord is disabled and the go-back option is enabled
    # You need to retain this format, or else it won't work: '(x,y,z,world)'
    go-back: (9,58,0,spawn)
# Options for the world
world:
    # The world in which the personal parkours will take place
    name: witp

    # The world players will be teleported to if they accidentally join the WITP world without being a player
    fall-back: spawn

Option to disable update checker.

Would it be possible to add an option to disable update checking? As found in many other plugins. Sometimes you intentionally stay outdated due to issues or use dev builds and have the plugin complain it is not the latest stable release.

I'd personally prefer to disable the update checking for making connection requests to check and because I use dev builds.

IllegalStateException: The instance wasn't set!

WITP v2.4e
Multiverse-Core dev 857 (https://ci.onarandombox.com/job/Multiverse-Core/)
VoidGen 2.0

[23:41:38] [Server thread/ERROR]: Error occurred while enabling WITP v2.4e (Is it up to date?)
java.lang.IllegalStateException: The instance wasn't set!
	at com.onarandombox.MultiverseCore.MultiverseCoreConfiguration.getInstance(MultiverseCoreConfiguration.java:40) ~[?:?]
	at com.onarandombox.MultiverseCore.utils.WorldManager.doLoad(WorldManager.java:497) ~[?:?]
	at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:288) ~[?:?]
	at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:228) ~[?:?]
	at dev.efnilite.witp.hook.MultiverseHook.createWorld(MultiverseHook.java:31) ~[?:?]
	at dev.efnilite.witp.generator.subarea.SubareaDivider.createWorld(SubareaDivider.java:253) ~[?:?]
	at dev.efnilite.witp.generator.subarea.SubareaDivider.<init>(SubareaDivider.java:94) ~[?:?]
	at dev.efnilite.witp.WITP.onEnable(WITP.java:106) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.17.1.jar:git-Purpur-1300]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.17.1.jar:git-Purpur-1300]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.17.1.jar:git-Purpur-1300]
	at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:527) ~[patched_1.17.1.jar:git-Purpur-1300]
	at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:441) ~[patched_1.17.1.jar:git-Purpur-1300]
	at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:712) ~[patched_1.17.1.jar:git-Purpur-1300]
	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:317) ~[patched_1.17.1.jar:git-Purpur-1300]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1201) ~[patched_1.17.1.jar:git-Purpur-1300]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Purpur-1300]
	at java.lang.Thread.run(Thread.java:831) [?:?]
[23:41:38] [Server thread/INFO]: [WITP] Disabling WITP v2.4e

Spectator Mode Errors / Bugs

Describe the bug

When spectating another player, sometimes player cannot go back in to normal gamemode.

When going to hub and returning to world, player is teleported in normal game mode to player they were spectating's island
Player also recieves red out of bounds overlay when leaving spectator to normal island when the gui works properly

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'spectate'
  2. Attempt to leave either by gui or command

Screenshots
If applicable, add screenshots to help explain your problem.

Errors
Check your console for errors that might've occured. These could help greatly in finding the issue.

Error.txt

Versions

  • Plugin version 1.8.0
  • Spigot/Paper version 1.16.4 Latest Version

Additional context
Add any other context about the problem here.

Plugin is disabled upon installation

Describe the bug
A clear and concise description of what the bug is.

Plugin is disabled upon installation

To Reproduce
Steps to reproduce the behavior:

  1. Install plugin
  2. Start server

Screenshots
If applicable, add screenshots to help explain your problem.

Errors
Check your console for errors that might've occured. These could help greatly in finding the issue.

[21:26:38 ERROR]: null
org.bukkit.command.CommandException: Cannot execute command 'witp' in plugin WITP v1.9 - plugin is disabled.
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37) ~[patched_1.16.4.jar:git-Paper-396]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.4.jar:git-Paper-396]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:807) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2021) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1832) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1785) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1128) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1121) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1082) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:996) ~[patched_1.16.4.jar:git-Paper-396]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:173) ~[patched_1.16.4.jar:git-Paper-396]
        at java.lang.Thread.run(Thread.java:834) [?:?]

Versions

  • Plugin version 1.9 (latest)
  • Spigot/Paper version 1.16.4 (Build #396)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.