Skript can remove commands from other plugins

Created on 15 Jan 2020  路  8Comments  路  Source: SkriptLang/Skript

Description

I created a /dynmap command for my players, forgetting that /dynmap was already used by... well, the plugin dynmap. After removing the command, only leaving /map for the players, the command /dynmap was "unregistered" in a weird way. A server restart fixes this. See steps to reproduce

Steps to Reproduce

  1. Create a custom command overwriting an existing one like:
command /dynmap:
    trigger:
        send "fuck"
  1. Reload scripts.
  2. Remove the script again
  3. Reload scripts
  4. Plugin's original /dynmap command no longer works properly
  5. Restart server to fix

Server Information

  • Server version/platform: paper 1.14
  • Skript version: 2.4
needs-testing

All 8 comments

Honestly I wouldn't really call this a bug.
You register a command, which if said command already exists it has to be removed from the command map, and yours put in its place.
If you remove your command, and reload your script, your command is removed from that map, but theres no way to force the other command to re-add their command back to the command map.

When a plugin loads a command, it also registers listeners, permissions, etc, so the only way to bring their command back would be to reload said plugin, ie: /reload or /restart.

Have you tried increasing the plugin priority of Dynmap and or lowering the plugin priority of Skript to see what will happen?

Skript doesn't write to global command map, so it shouldn't be overwriting commands. Then again, dynamic command loading is not fully supported by Spigot...

Have you tried increasing the plugin priority of Dynmap and or lowering the plugin priority of Skript to see what will happen?

I never mess with plugin priorities, but i have Skript set to high via the config.sk.

I mean i noticed that any commands you add via your scripts are "in reality" commands that go like: /skript:yourcommand. Not sure i wanna call this a bug either, but i reckon it shouldn't have messed with dynamp in this case, because the command i created would've been /skript:dynmap, while dymaps is /dynmap:dynmap

Have you tried increasing the plugin priority of Dynmap and or lowering the plugin priority of Skript to see what will happen?

I never mess with plugin priorities, but i have Skript set to high via the config.sk.

I mean i noticed that any commands you add via your scripts are "in reality" commands that go like: /skript:yourcommand. Not sure i wanna call this a bug either, but i reckon it shouldn't have messed with dynamp in this case, because the command i created would've been /skript:dynmap, while dymaps is /dynmap:dynmap

The thing is Skript overrides /dynmap (no namespace included) as well, which was previously occupied by Dynmap. Like I said, if you tried configuring the plugin priority of Skript/Dynmap (perhaps change Skript to lowest to test?) you should see that Skript will add /skript:dynmap, but not override /dynmap, as it will still be "owned" by Dynmap due to plugin priority. In theory, at least.

6 months and 6 days. Still no anewer. Might time to close and make the Skript's github clear and easy without issues?

6 months and 6 days. Still no anewer. Might time to close and make the Skript's github clear and easy without issues?

If you want to see the GitHub clear of issues, you are more than welcome to do some PRs to fix/resolve the 336 issues we currently have.

If that is not an option for you, you dont need to worry about if/when issues are closed. Leave that up to the team behind Skript. Contrary to what you may think, we actually DO know how to do our jobs!

I've asked you in the past and I will say it again, please stay on topic of the thread at hand. If you have nothing to say that contributes to this issues, I welcome you to not reply.

We should probably do a proper test on this issue to see if plugin priority can mitigate this issue, if it does, then we can just add some documentation for it somewhere. From past experience, I've seen people using Skript to make custom commands to override plugin commands, so it's a bit iffy if we "fix" the issue and break their scripts, even if it's not an intended piece of functionality.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

TheClassic36 picture TheClassic36  路  3Comments

LeotomasMC picture LeotomasMC  路  3Comments

MrScopes picture MrScopes  路  3Comments

GiraffeCubed picture GiraffeCubed  路  3Comments

Anoniempje1234 picture Anoniempje1234  路  3Comments