[Plugin]WorldProtection (Auto area protection script)

    We've posted a status update with some first screenshots of the new terrain generation. There is also a new update available for the Java version!

    • bugway wrote:

      Will there be support for MySQL in the Auto area protection plug-in? Will the source code be opened?
      What do you meanby MySQL support? do you want the plugin to use a MySQL database to save the areas or you want the plugin to be usable on a server running on a MySQL World database?

      The latter should already be possible.
      Admin on Artisan's Realm
      Rising World Projects:
      Blueprint Texture Editor
      MailingSystem
      ServerTools
      Portals
    • i second Scruffy's input, also, an auto-decay feature would be nice, where you set either in-game hours or RL hours (i think the latter might make more sense, but both would work) of players being offline, their AP would automatically be deleted - this would prevent people to come on, AP a bunch of stuff and then call it quits, with those areas lingering around for no good reason. i'd recommend default decay hours of 7 days = 24 * 7 = 168 hours.
    • max2go wrote:

      i second Scruffy's input, also, an auto-decay feature would be nice, where you set either in-game hours or RL hours (i think the latter might make more sense, but both would work) of players being offline, their AP would automatically be deleted - this would prevent people to come on, AP a bunch of stuff and then call it quits, with those areas lingering around for no good reason. i'd recommend default decay hours of 7 days = 24 * 7 = 168 hours.
      I think you'll find 7 days is a bit short. You will catch out legitimate players who don't log in every day.

      To the developer:

      But some sort of warning system would be a good idea. Perhaps allow admin to enable/disable auto-decay such that it will either:
      • Auto-remove protected areas for players who have not logged in for X days or
      • Alert Admin in game when player has not been on for X days, and write it to a log along with all the areas they own. (Admin can then choose to remove the areas)
      Perhaps you could extend this decay feature to work per 'group' of protected areas. This would ensures players are only protecting the areas they USE. Random little areas they forget about will be removed, without removing the active areas. The system may work like this:
      1. Record the 'last used' date of all protected areas
      2. Updated the last used date when owner or any 'friend' enters the area
        • which then updates all 'connected' areas, such that the group of areas connected by a side all have same last used date.
      3. Whenever an area reaches the admin defined decay period since 'last used', the area is flagged or deleted (depending on how admin have this enabled).
      You could then extend this to give players a warning a day or two before an area will be removed.
      • Plugin checks areas when player logs in, or runs the command to list areas.
      • Areas X days from being removed are highlighted red with a warning beside them when listing areas
      • Player gets a warning when they log in "You have protected areas that will be removed in X days. You must use an area to stop it being removed." or some such.
    • Where do i report bugs?

      I noticed that trying to use a protected area from outside the protected area, or over the border of another protected area, the game would not let do the action.

      EG. I have 2 protected areas touching each other. I stand inside one protected area, and try to place a sapling inside the other protected area, the game doesn't let me. Same thing for trying to mine terrain, place plants, or open a crafting table. I found this is most evident with vertically touching areas. <- I own all the protected areas, both the one i'm in, and the one i'm trying to do an action in.
    • I need some help with this. I downloaded the file in the first post of this thread and it is only a jar file. I have tried the plugin but it does not respond. Should there be other folders / files in that download? I am adding it into the plugin folder but not sure if that is the right place or not.
    • So I have been having issues with the server crashing the past few days. After discussing things with players it seems to be related to this plugin. What I found is that a player is / was using a /wpp command to teleport to areas around the playfield. The resulting errors are what I am linking in a pastebin attachment. Once he stopped using this command the errors also stopped. I am not sure if it is a conflict with the /gps plugin but it might be related. If this is the case, can I disable the teleport option in this plugin as we don't need two options or is there something else I should be looking for?

      pastebin.com/hSpKgzYZ



      Source Code

      1. Rising World - 0.9.5.7 - Dedicated Server
      2. Windows Server 2012 R2 6.3 Java 1.8.0_201 (amd64) Memory: 3817 MB
      3. 2019/05/13 07:25 AM
      4. ____________________________________________________
      5. RW SERVER: Fatal error occurred!
      6. java.lang.NullPointerException
      7. at worldprotection.WorldProtection.onPlayerCommand(WorldProtection.java:3667)
      8. at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
      9. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      10. at java.lang.reflect.Method.invoke(Unknown Source)
      11. at pluginapi.PluginEventHandler.triggerEvent(SourceFile:245)
      12. at G.d.a(SourceFile:219)
      13. at G.d.messageReceived(SourceFile:166)
      14. at de.jiw.network.server.core.ServerTcpChannel.onMessageReceived(ServerTcpChannel.java:99)
      15. at de.jiw.network.server.core.AbstractServerChannel.dispatchTCP(AbstractServerChannel.java:62)
      16. at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:79)
      17. at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:15)
      18. at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
      19. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      20. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      21. at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      22. at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      23. at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      24. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      25. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      26. at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      27. at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      28. at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297)
      29. at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413)
      30. at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
      31. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      32. at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
      33. at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
      34. at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
      35. at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
      36. at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
      37. at java.lang.Thread.run(Unknown Source)
      Display All
      I also wanted to ask regarding this... Is there a way to protect the serverspawn from land claims. I am having to go to that location daily to remove landclaims accidentally set but new players. I would just like that area available to all players but unable to set their own claims in the "unprotected" server spawn.

      The post was edited 1 time, last by BB_Drifter: Additional information. ().

    • Dear @yahgiggle,

      First of all, thanks for creating this plugin! It is very handy!

      I have some small things to report. It is possible that these things have already been reported.

      1. A red text appears on the World at location: X:0 Y:0 Z:0. It would be handy if it were removed.

      2. The 'M' button for the Map seems to be bugging, gets stuck and makes it impossible to close the Map.

      3. Suggestion: It would be handy if options such as 'Main Panel On' and 'Auto Areas On' were saved after leaving the server.

      I hope that you make some time to look at these things. Thanks in advance! :thumbsup:

      With kind regards,

      Maarten.