oddlama / vane

Immersive and lore friendly enhancements for vanilla Minecraft
MIT License
272 stars 33 forks source link

unable to interact with the world #20

Closed miermontoto closed 3 years ago

miermontoto commented 3 years ago

hey there, I've run into quite an issue when trying to load up your plugins. ~waterfall straight up doesn't load and~, when in-game, every single player is unable to modify the world in any way (placing, breaking, attacking, interacting). I don't have any permissions plugin loaded as it's a very simple private survival server. I have followed the installation guide step by step and installed the last ProtocolLib build. I'm guessing that the plugin does not like handling with basic server perms (op/not op).

oddlama commented 3 years ago

Regarding your error: The seconds sentence of the installation guide says not to use vane-waterfall as it is a proxy plugin:

In the following, we will explore step by step how to properly install vane on your minecraft server. This section will cover the minecraft plugins and not the proxy plugin vane-waterfall.jar. You most likely won't need a proxy except when you want advanced features like:

So you just shouldn't have used it, as it isn't a papermc plugin.

Also the installation guide clearly states that you need to assign the correct permissions with a plugin of your choice or the default permissions implementation, just op/deop isn't enough. Anyway, you don't need any additional plugins for it to work, just add the correct permissions as described via paper's build-in permissions system (bperms.yml).

But if you really have no dependency on any other plugins on your simple survival server, you will be better off just using vane-permissions, as everything comes pre-configured and it internally just uses the standard permissions system. It's more or less a lightweight wrapper around the built-in permissions system, so there is no reason not to use it if you have no other needs. Just make everyone that you'd OP also an admin.

EDIT: If you still have issues after you have fixed your installation, just post another comment on this issue.

miermontoto commented 3 years ago

I installed waterfall because it's needed (?) for the server to restart on autostop, but that's not a problem right now. after installing the permissions plugin, I'm still unable to modify the world at all. I've added myself to every group, added bukkit.*, vane.*, minecraft.* to the admin group to see if that helped at all, but I'm still unable to interact with the world.

btw, it is indeed nonsense to have to add a permissions plugin when they aren't really needed at all. also, I see that you've been replying to every single issue posted here and that this isn't a support channel for people to post their problems with their servers, so thank you for doing this.

oddlama commented 3 years ago

Autostop itself only stops the server, basically as /stop would. Autostarting is used to start the server when it's offline and a player is connecting. Therefore, waterfall needs to be installed on a proxy server such as waterfall or bungeecord. This allows to catch incoming connections even when the server is offline and therefore do the actual starting (how else would the server be able to detect a connection, when it is stopped).

There is a separate installation guide in the wiki for the proxy server, but to get this running properly, you will need a solid understanding of general (linux) server administration. The setup will be highly dependent on your specific setup, and therefore nobody can really help you with it.

Also, there is no such permission as vane.*. Contrary to popular belief, permissions named * aren't actual wildcards but separate permissions that have a predefined list of child permissions. For vane there is vane.*.commands.* which allows access to all commands, but vane.admin.modify_world still needs to be granted separately.

And I agree with you, a separate permissions plugin is often not needed. The reason why vane-permissions exists is simple: The default permissions system is fine, but the average minecraft plugin has subpar quality, and I don't trust those. I as a server administrator want perfect control over permissions, and don't want to rely on other plugins to change them or set some strange defaults, as is often the case. (e.g. why does the average player need to be able to do /version or /plugins?)

vane-permissions therefore drops all permissions when a player joins, to allow exact specification of the permission list. It also issues warnings when permissions are used that haven't been registered to the server, as this is indicating either a typo when defining permissions (you should get such a warning for using vane.*), or it indicates an issue with a plugin (e.g. when the plugin didn't register the permission to the server but still uses it). There is nothing else it would do, so technically it isn't really a permissions plugin but just a wrapper around bukkit permissions which makes it more pedantic. A real "permissions plugin" historically required other plugins to adopt it's API to use the permissions system. But all of this has been superseded by bukkit permissions.

So it's true that it isn't needed, but its purpose is only to help you. So I don't see how not using this wrapper plugin is better in any way, except when you have a dependency that would interfere with it. It has basically 0 overhead and only helps you maintain your server.

miermontoto commented 3 years ago

regarding the waterfall plugin, I'll look into it later after I've fixed this.

even if vane.\* doesn't exist, it still doesn't explain why I'm unable to interact with anything. I've added myself to user, which should include vane.admin.modify_world.

honestly, I see why you are saying what you're saying, I see why you've coded what you've coded, but in this particular case it's creating a big mess, and maybe someone that doesn't want to go through the hassle of posting their problem just drop your plugins from the list and call it a day. it is true, the average plugin has a "subpar" quality, but there's no need to control every single permission every single time, I just want to boot up my headless server and know that if me or somebody else joins, we can just play.

also, you're saying that

the average player need to be able to do /version or /plugins

but the thing is that, in most cases, plugins are ran in a small, private enviroment where there is no need to hide or revoke permissions from players.

oddlama commented 3 years ago

Currently I'm positive that this isn't a problem with vane. So anyway, lets debug it. A lot of people had not trouble installing it, so I'm wondering whats the root issue here. Can you post the output of perm permissions list your_player_name when executed in the console? That would verify that the permission is actually set correctly.

[...] there's no need to control every single permission every single time, I just want to boot up my headless server and know that if me or somebody else joins, we can just play.

That's your use-case, and it's absolutely relatable. It just simply doesn't align with what vane-permissions provides. By default I want the pedantic approach, and I've had multiple cases over at the papermc forum where it helped people find a mistake in their permission configuration with other plugins. Therefore I think it's been the right choice. Anyway, thats also why I made everything modular, so you can opt-out of certain things. If this behavior isn't what you like, you are free to just remove the vane-permissions plugin and use bukkit's permission system. Also, if you want every player to be able to modify the world, and don't want the hassle of giving everyone the modify permission, you can simply disable the world protector completely in vane-admin's config. (But before you do that, please let's debug this, I want to know the source of the problem. ;) )

miermontoto commented 3 years ago

hey man, the last thing I want to seem is ungrateful for what you've created or annoyed at you. really, above all, thank you for your work.

here's the output Screenshot_543

~there are a lot of permissions that I added just to try if I could fix it, I'm aware that a lot of that is wrong, but it didn't even work when the groups where unmodified.~ with untouched groups: Screenshot_544

plugin list: Screenshot_545

running on paper #63 on a headless linux distro

oddlama commented 3 years ago

hey man, the last thing I want to seem is ungrateful for what you've created or annoyed at you. really, above all, thank you for your work.

Oh, I just wanted to clarify why things are the way they are, I didn't intend to sound harsh. Sorry if it seemed that way.

All the warnings about the unregistered permissions are hints that these permissions probably won't affect anything at all, as no plugin is using them (if the plugins are coded correctly). You've definitely got the correct permission to modify the world, so whatever causes you to be unable to modify it, isn't that part of vane. (EDIT: I see you already fixed that).

Because of the way bukkit permissions work, the output might be different when your player is online, so you might want to verify this by running the command again when your player is online. (Other plugins could interfere with the permission)

Do you have spawn protection enabled in vane-admin? To check this you can teleport yourself to 10000 10000 and try to build there. If that works, it's probably some kind of spawn protection.

miermontoto commented 3 years ago

I've just tried tp'ing far away and that didn't fix it (btw, I can't even change my own gamemode or tp myself other than through the console). when online, the command from earlier returns the same output, including the requested player is offline message.

I didn't intend to sound harsh

you didn't, I was trying to clarify to not sound harsh myself

oddlama commented 3 years ago

the command from earlier returns the same output, including the requested player is offline message

That's indeed a problem. This means that the player which your server associates with the player name "Gijon" is not actually online when you are, and therefore also doesn't reflect the permissions your actual player has. Is there maybe a special character in your name, or does your server exist for a long time (uuid <-> name mismatch in world/playerdata)?

Try to tab complete your player's name when using the command.

you didn't, I was trying to clarify to not sound harsh myself

All good :)

miermontoto commented 3 years ago

I can tab complete my name in console, the player name is "Gijon" as such, without any special characters. server is almost brand new, world generated on vanilla 1.17, then spigot 1.17 and finally paper 1.17

the server (and vane) does actually register my login Screenshot_546

oddlama commented 3 years ago

Hmm interesting, can you post the content of plugins/vane-permissions/storage.json ? Your server seems to think that you are offline, but it shouldn't :/

miermontoto commented 3 years ago

converted to txt to be able to upload directly to github at first hand, uuid's don't seem to match...

EDIT: yeah, it isn't adding the correct uuid's to the list, it seems Screenshot_547

oddlama commented 3 years ago

Hmm how could that have happened? Did your server run in offline mode when you added the permission? And is the problem fixed when you replace the uuid?

miermontoto commented 3 years ago

the server is running on online-mode and has been for a while, I'm trying to manually edit the storage now.

EDIT: the storage comes back to the old uuid's after a restart, so I can't manually input them.

oddlama commented 3 years ago

I'm just curious how that could have happened, and the only idea i have is that your player joined for the first time when your server was in offline mode, which would cause another uuid to be generated and used. Its a bukkit problem. To fix it, you can also delete (maybe backup) the corresponding wrong uuid file in world/playerdata/<wronguuid>.dat

miermontoto commented 3 years ago

oh my god, that fixed it. it was getting the wrong uuid's from one time that I started the server in offline mode. thank you so much for your help man.

oddlama commented 3 years ago

Sure! Take care and have fun :)