Ultimate World Guard

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:

@DarkIce I know worldguard is sk89q’s plugin. Im not asking for a port of it. Im asking for a plugin that can finally give us security against modded items and blocks. Something that has been lacking and has to be a joint effort between mod authors and plugin makers and server software. I truly think that sponge is the future and would like it to live up to its dreams of finally connecting client and server modding.

1 Like

That is kind of a port because in Bukkit there wasnt ever a need to protect something against modders (truely i know what you mean; this forgebukkit or something like this which allows mods to install in bukkit. However its not official and therefor wasnt supported by sk89q). Sponge includes this feature already and maybe the author has planed already to add the feature to his plugin.

1 Like

forgebukkit aka Cauldron, was supported, but after the bukkit dcma no one wants anything to do with support. But trust me the ultimate goal of an awesome server is to have tons of mods and loads of plugins that offer utilities, economies, player warps. Commands that dont require OP cause you have permission plugins. Its the best of both worlds that we strive for and I am just hoping that forge/client side mod authors will get on board with sponge and figure out a way for us to feel safe on our own servers.

I dont agree with that if you want to have a successful server you need minigames and plots from plotme.
However a highly modded server is only nice if you are playing with few friends which means you can trust them and dont need to protect anything.
If you like it to have both plugins and mods you should first think of these questions.
How you want to pay a server which has ~100 mods and ~100 players(needs at least 64 GB RAM)?
What if someone crashes the server?
What if someone finds a glitch like mining turtles on a other players region (no system is perfect safe) ?

No hate i am often playing with friends modpacks but with FRIENDS !!!

Maybe its not a requirement, but wouldnt it be nice to finally be able to have a public modded server. And as for your system specs I currently have a server with 254 mods and 52 plugins (Cauldron) and I run it with 25 players online @ 18-20 fps with no problem (10GB allocated with an i7 cpu)

If someone crashes the server a simple restart script akes care of that. And having a good staff ensures problems are handled quickly and efficiently.

Not saying that bugs and glitches wont still remain.so the necessity of having a good backup system is still needed.

What has the FPS amount to do with the stabilitiy of a Server ?

He probably misspelled it for TPS.

2 Likes

I wish it was that simple on 1.4.7 servers. Examples of bugs (get ready bro’s):

  1. Players getting their inventory wiped completely.
  2. Player clones when the chunk doesn’t load correctly. So you could end up with 27 clones of thomas15v. What also means that if you kill 1 clone. They all drop stuff. And you lose or duplicate it.
  3. Chunks sometimes like to completely regen. But not using the normal generator. Get ready for a 100% solid stone chunk.
  4. 1.4.7 (repatched 1.6.2 actually) Force-Op exploit: Took me 8 months to figure out how they did it. We had people joining as Hitler and Yew. And ya know what they did… . (hitler killing yew constantly and spamming death messages that way.)
  5. When people set up their pipes wrong the server freezes. It simply forces down the TPS until it goes to 0.1. So no crash. I actually never figured this one out.
1 Like

Forgebukkit is NOT cauldron they are separate projects

1 Like

WG 6+ does block basically everything it doesn’t know about, including every left/right click, but as some people said, not all mod/custom items can be blocked because no events are fired. WG can’t, for example, protect against WorldEdit without changes to WorldEdit because WorldEdit (and most mods) make these changes without telling anything else (in the case of WE though, it was not feasible to send Bukkit events for every block changed).

Another issue has been, even if you wanted to fire events for your mod, there may not actually be suitable events to fire. For example, WorldEdit makes mass changes to the world, but Bukkit and Forge only have (or had? I’ve been away) single-block change events. We fixed this in Sponge though, although there is still difficulty trying to figure out what blocks are being changed ahead of time in some cases (i.e. with /fixwater in WorldEdit, WorldEdit does not know what blocks will be changed before the code has run).

There’s some pretty cool logic in WG 6+ to detect who’s doing what, even if it’s a piston or a sapling that is the source. It’s useless when no events are fired though.

3 Likes

Alright, how you came up with this is clear. But lets say I want to protect my FTB infinity server. It currently uses about 160 mods. Here are only A FEW examples of events you would have to check:

BigReactorsExplosion (comes in future)
QuarryCreation (if land marks are all yours / etc)
QuarryMining
– same for ender quarry –
– same for turtles –
AutonomousClickerPlaceBlockEvent
AutonomousClickerInteractBlockEvent
AutonomousClickerBreakBlockEvent
MythcraftWorldCreation
RFToolsWorldCreation
TinkersConstructAEODamageEvent
DraconicEvolutionAOEDamageEvent
Thaumcraft/WitchcraftSpellDamageEvent
DraconicEvolutionTeleportationEvent
RFToolsTeleportationEvent
IC2ReacotrExplosionEvent
MFRHarvesterEvents
MFRPlanterEvents
MFRFertilizerEvents

and so on…

Do you really think every ModDeveloper will create special events? Even if that would be absolutely amazing, lets say all events are implemented except the MFRHarvesterBreakBlockEvent you would not be able to build on your plot without using stone which SU**S.

I hope you DO understand that this is a great fancy idea but its just near to impossible to do it.