Ultimate World Guard

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.

1 Like

I think we still will have that issue. The way many protection plugins are coded is like this.

if block is a chest and player is not owner:
   deny
else 
   go ahead

And I am unsure what it does with fake players. I guess fake players are automatically op?

I am the coder of this plugin (for cauldron/mcpc): GitHub - TheFantasyCraft/Forge-Permittor: Recoded Tekkit Permittor that automatically find blocks that need to be protected.. Idk maybe give the fake player handler a shot :worried:. But I have to tell, I never really got this plugin out of beta, because so many mods find a way around things. Also I would like to know the current protection plugins you are using. Because I have some beta code that needs testing :blush:.

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 :slight_smile:

1 Like

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.

The issue is that most of them where relatively recently introduced and I am sure the mods that rely on hacky solutions doesn’t help either.

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…

Do fake players store info on the player who placed the block that spawned them?

That would indeed be the most ideal solution. But sadly enough … . Also that wouldn’t fix griefing in most cases.
Situation:

  1. Player1 places turtle down in an unprotected area close to its claimed land.
  2. Player2 finds the turtle, and programs it to grief the claimed land
  3. Player1 complains to the server owner.
  4. Server owner facepalms :trollface: and does nothing. Their is no way to know who griefed it and ya know … .

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.

Solution, prevent all the right clicks to a block.

The game has to stay playable tho lol. On my server its simple. I made it that a turtle can’t grief any claimed land.

Well but doing that for every single mod-block that can edit other blocks would be a pain in the ass.

1 Like

It is … . But I accepted the pain. I accepted it!

2 Likes

@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!

2 Likes

I was repling to the people saying it was hard/next to impossible to implant, not to your OP I do agree with it though.

1 Like

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.

  1. 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.
  2. Calling the events. Is extra code. In case of single player. This code is useless. And only hurts the player experience.
  3. 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.
  4. 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… .

Ehm yeah, :neutral_face:. (See I can’t help it xD)

1 Like

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.

1 Like

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 :wink: