So for as long as I have been running minecraft servers (5 years) there has always been an issue running public, non-whitelist, modded servers. Mainly due to the fact that no plugin or mod blocked modded items from editing the protected regions. Ive tried messing with the whole fake-players thing but never seemed to stop the items or blocks completely. Or the player would have to allow the fake player access to his/her territory. And although Im very grateful for the worldguard and worldedit plugins, I always wondered why worldguard didnt protect against world edit seeing as both plugins come from the great sk89q (seriously, I love that guy and all of his works!)
So I guess what I am requesting here is somewhat monumental in project size. However I am willing to commission/donate to any devs who would like to finally make a protection plugin/mod with these features:
Standard region selected protection that has permissions (so normal players can have limited sized areas they can define themselves (think GriefPrevention)
A faction style claiming system for the pvp types. Including a feature to challenge the claimed areas to prevent players from hiding in impenetrable bases
The ability to prevent block changes from any source other than the owners of the regions
All other normal features of worldguard
I guess all in all the most important thing that all servers owners need that no one has truly tackled is the ability to prevent such things as ender quarries. Ive tried everything out there and nothing could stop them from mining out any protected area. If you code and you are interested please pm me and I would love to go over more detailed ideas of the features Ive outlined.
The main issue was that many of the mods did not make use of the events present in forge. Basically what you have asked for is impossible(at least without a lot of ASM). What you should be doing is asking for modders who do don’t use these events to change it so they do
Well I understand them actually. Calling the events slows single player (and the server) down. But hey we have mixins now. Their only has to be somebody that stands up and says. Hey lets fix this.
Thank you for all of the positive and contructive replies. I do somewhat understand that a lot of these mods arent firing forge events. Maybe there is some kind of lighter event in the sponge api they could trigger. Maybe just maybe I could begin a campaign requesting the mod authors use it But that would make their mods sponge dependent. Hrmmm, would be a good thing for sponge to get more publicity if modders start incorporating it into their forge mods.
It’d be helpful if Forge would throw an event if a block is attempted to be edited/interacted with. That way Sponge and further Sponge plugins could react to it.
Then again if a mod doesn’t use the Forge method that’d throw the event and instead edits blocks directly, the mod would bypass that…
This could be fixed by checking if the player who spawned the item is using it or not.
If not the item is unusable or all changes are instantly reverted.
@Skeptical_Tech: Tracking fake players wouldnt do anything, I mean bases and claimed land still contain lots of blocks that are just nature blocks so to speak. Unedited by anyone.
@Tzk I dont see how keeping track of whos items are whose would help unless we keep a lot of extra nbt on blocks and tiles.
@The_Doctors_Life Seriously, keep this constructive ALL IN ALL WE HAVE TO BASICALLY DO WHAT YOU SUGGESTED TO RUN A NON WHITELISTED MODDED SERVER!! That is why we need to FINALLY have a better protection system!
@5tingr4y Yes I understand that this will not be an easy task, but honestly there have not been any real systems of protections like this before and I feel that the community seriously needs this to run a server without banning half of their items or without a whitelist.
@thomas15v Thank you for your work so far on this. I plan on getting you a small donation shortly. I feel you understand exactly why and how we need this to work!
Off course I do. I am hosting tekkit lite servers for 3 years now. But see Sponge isn’t bukkit and also has its main core build on forge. I am pretty sure plugins will run better on forge modded servers now. But if it comes to protection from fake players. Its something the mod maker has to implement. And most of them don’t do that. I may think I know why.
Most of forge modders, are just good java coders. They don’t have any knowledge about protection plugins. They just want to make a good mod to play.
Calling the events. Is extra code. In case of single player. This code is useless. And only hurts the player experience.
If you code in forge. Ehm you kinda get lost with all the features and possibilities. If you have been able to keep your mod from crashing. Most devs are already happy.
If you would report these bugs to them. They will mostly say that it’s the fault of bukkit. And I can’t blame them about that.
So when sponge + mods (buildcraft, IC2,Turtles, … ) will get out. I am pretty sure we will end up with the same problems again. I can’t promise anything. But I also have interest in running a modded server. And I am not sutcha d*ck to keep fixes for myself. Ya know, I don’t “own” TheFantasyCraft. And the owner of the server actually didn’t agreed with sharing these fixes. So yeah… .
It actually is helpful because if you know who is responsible for the fake player being in the world you can control a) who has access to the entity and b) what the entity has access to.
For example, a turtle was placed by PlayerX. The turtle tries to move into PlayerY’s territory and break a block. PlayerY’s territory is protected. This plugin would first check and see who owns the turtle before allowing it to break a block (or better yet, to even move into their territory), and, because PlayerX cannot break a block there, the plugin does not let the turtle break it either. The ideal way to do this would be to make the turtle crash somehow, but that is up to the mod author. If the mod author doesn’t do anything about it, it should just let the turtle repeatedly try and fail to break a block, maybe fool the entity into thinking that the block is actually bedrock.
Conversely, if PlayerX’s turtle is happily working away in his owned territory and PlayerY tries to access it, the plugin checks who owns the turtle. Because PlayerY does not own the turtle, the plugin denies him/her access.
However, if PlayerY has permissions (say they are on OP), they can access anybody’s turtle.
This should be the default handling of fake player entities, and, if more control is needed, the mod creators will have to implement that.
The basic idea is that a fake player should have the exact same level of access as the player who is responsible for the existence of the fake player, erring on the side of less access. If a finer degree of control is needed, the mod author will have to handle that.
I dont know if it is a good idea to post a request for a world guard plugin. Before asking @sk89q for his opinion. Because its his plugin and he maybe has some special ideas how he port it. I think everyone would like to Start working in a world guard port but lets first wait for @sk89q answer.
I’ll elaborate this a bit:
If items that implement fake player features store the uuid of the player who spawned them, they are worthless to all other players. At least if the plugin dev has a isowner check implemented.
My post was a response to thomas15v and skeptical_tech