kernitus / BukkitOldCombatMechanics

Spigot plugin to configure combat mechanics for 1.9 onwards
https://www.spigotmc.org/resources/19510/
Mozilla Public License 2.0
175 stars 73 forks source link

Player collisions #457

Closed Rafalll closed 4 years ago

Rafalll commented 4 years ago

Server Version: PaperSpigot 1.16.2 OldCombatMechanics version: dev build #45 Server Log File: https://pastebin.com/Jfqt3ME6 Debug Log: https://pastebin.com/5zfFQc80 OldCombatMechanics config file: https://pastebin.com/Y1eCFrAu

## Problem Description Once the option to disable collisions between players is enabled, the plugin kicks a player out of the server.

### To Reproduce 1. Upload the plugin 2. Change the disable-player-collisions setting to true disable-player-collisions: enabled: true worlds: [] 3. Reload 4. Leave the server and try to join to server

I-Al-Istannen commented 4 years ago

Hey, thank you for the report. I have a few questions:

  1. Do you have any other plugins displaying scoreboards or changing player tab-list colours?
  2. Does this happen when only you join or do you need multiple players on the server?
  3. Does this happen if you use just OCM and no other plugin?

A minimal set of plugins to cause this (I'd suspect OCM + some tablist/scoreboard plugin(s)) would be greatly appreciated.

This is a somewhat known bug, but I have never been able to reproduce any of the bug reports, so if you could list your plugins or even condense it down to just a few that make it fail, I'd have something to work with and hopefully find the root cause.

Have a nice day :)

Rafalll commented 4 years ago
  1. Tablist: CMI (https://www.spigotmc.org/resources/cmi-270-commands-insane-kits-portals-essentials-economy-mysql-sqlite-much-more.3742/) Scoreboards: AnimatedScoreboard (https://www.spigotmc.org/resources/animatedscoreboard.20848/) I can send you all the plugins I use in private message, preferably if you have a discord :)

  2. This happens with every player joining the server
  3. I didn't check it

You too :)

I-Al-Istannen commented 4 years ago

CMI seems to be a premium plugin and I can not reproduce it with only Animated Scoreboard: image

Can you maybe check if just CMI, AnimatedScoreboard and OCM crash as well? I am not sure I can track this one down without you narrowing it down to a few plugins it clashes with :/

Rafalll commented 4 years ago

I checked it quickly and it looks like after disabling the AnimatedScoreboard plugin the option to disable collisions between players works well. I'll check it more deeply, but I can give you that information for now.

I-Al-Istannen commented 4 years ago

Hm. Maybe there is something interesting in your AnimatedScoreboard config? I can not reproduce it with just AnimatedScoreboard and OCM.

Also, are you behind bungee or a comparable reverse proxy?

Rafalll commented 4 years ago

I use waterfall

I-Al-Istannen commented 4 years ago

I set up waterfall in a docker container and it still works (run via sudo docker run --rm -it --network host waterfall).

FROM openjdk:8

RUN apt update -y && apt install --yes git bash maven

RUN git config --global user.name "Test" && git config --global user.email "my@example.com"
RUN git clone https://github.com/PaperMC/Waterfall /tmp/Waterfall && cd /tmp/Waterfall && ./waterfall b

RUN mkdir /home/Waterfall && cp /tmp/Waterfall/Waterfall-Proxy/bootstrap/target/Waterfall.jar /home/Waterfall

WORKDIR /home/Waterfall

ENTRYPOINT ["java", "-jar", "/home/Waterfall/Waterfall.jar"]

AnimaredScoreboards prints the following message:

[22:11:39] [Server thread/ERROR]: [AnimatedScoreboard] This version of minecraft isn't confirmed working yet and thus the plugin might not work as expected. This means that ASB switched over to the old Bukkit implementation which is incompatible with other scoreboard plugins. You will not get any support when using AnimatedScoreboard on this server!

So I am kinda out of ideas for reproducing the bug, if you can not narrow it down to a few plugins causing the trouble :/ As far as I can tell I am as close to your setup as I can get, based off of the information you provided so far?

Rafalll commented 4 years ago

I've updated all my plugins to the latest versions and checked if it kick players away when joining the server with the option player collisions disabled (enabled: true). Surprisingly, it doesn't kick, but I accidentally discovered that when you turn off the scorebord (command: /animatedscoreboard toggle) with this option on, it kick away player.

Of course, if I set disable-player-collisions to false everything is good.

There is one error on the proxy server: https://pastebin.com/0H5gyxrx

  1. I decided to disconnect the main server survival from the proxy server and see if the error disappears, the error is gone. The option to disable collisions between players worked well, without any problems.

  2. I connect the proxy server to server main again, but I disabled all my proxy plugins, turn on the server proxy and main, joined the server and tried to disable the scoreboard again with command /animatedscoreboard toggle and again kick me out of the server with the same error.

  3. To make sure the problem is only between these two plugins, I disabled all other plugins on the main server except these two: animatedscoreboard and oldcombatmechanics. I turned on the server and the problem is still the same.

  4. I still checked if there is any error in the paper files or if there is no problem with the worlds. So I've create a new server with default configurations and new worlds, I've uploaded two plugins with configurations. Same problem again.

Below I send ready files to download and to check, I checked and with this configuration goes to see this error. (http://www.mediafire.com/file/0l768yn9pqriybi/file)

  1. Turn on the proxy (water)
  2. Turn on the server (test)
  3. Join the server
  4. Give yourself an op
  5. Try to disable the scorebord with the command /animatedscoreboard toggle

I'll add that I was trying to find the reason for throwing out players when a player joins the server, but after a couple of hours of searching I didn't feel like it, it was too tiring.

I-Al-Istannen commented 4 years ago

@Rafalll Thank you so much! I could reproduce the error now (I think it is the same bug also causing 3 or 4 other issues but I wasn't able to reproduce it before).

I spent my last few hours debugging this garbage and came up with a patch you can find on my fork. As you might not want to build this from source yourself, I attached a build to this comment. Just unzip that and you should find the jar inside.

Let me know if that fixes the issue while still disabling player collisions. In my tests I managed to break the collision feature a few times, as minecraft is a bit finicky, but I hope I squashed all of those bugs now.

Rafalll commented 4 years ago

Well, it looks like the bug has been fixed. I tested the plugin and it works perfectly for the moment, thanks a much!

Have a nice day :D