ProtectionStones [Updated for 1.13 - 1.16 + WG7] 2.7.5

The easiest grief prevention method that players will enjoy!

  1. EspiDev
    Native Minecraft Version:
    1.13
    Tested Minecraft Versions:
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    https://github.com/espidev/ProtectionStones
    Contributors:
    AxelDios (Original), Vik1395 (2015-2016), Dragoboss (2016-2017), Jerzean (2018)
    Talk to me directly on the M.O.S.S. Discord! https://discord.gg/TQXWtf8

    NOTE: There were some initial issues with 1.16.1 spigot builds that came out on the first day, but they have since been fixed. PLEASE REBUILD SPIGOT FROM BUILDTOOLS OR USE PAPER (https://papermc.io/downloads) before reporting 1.16 related issues!

    Ever needed an easy, yet powerful way to prevent grief, and protect a certain area?


    This plugin allows players to protect land using a block that they place down. It creates a WorldGuard region at a set radius (configurable) around where the block is placed. The plugin also allows players to add and remove people to the region, as well as set flags (defined in the config).

    Requirements:
    • WorldGuard 7+
    • WorldEdit 7+
    • Vault (Optional)
    • PlaceholderAPI (Optional)
    • Spigot 1.13.2+
    Appreciate my work?
    Donations are appreciated! :)
    https://paypal.me/espidev

    Installation:

    To install ProtectionStones, make sure you have the requirements above already installed. You can simply just add the plugin to the plugins folder, and it will generate the default configuration.

    Adding new blocks:
    To add new protection blocks, go into plugins/ProtectionStones/blocks, and copy and paste the default block1.toml file and rename it (ex. block2.toml). Then, you have to change the "type" and "alias" fields in the new block config, since there cannot be duplicates.

    Configuring flags:
    Flags allow for customisation of region behaviour. ProtectionStones uses WorldGuard flags, meaning that WorldGuard is actually doing the protecting, not ProtectionStones. You can view the list of WorldGuard flags here.

    It is also possible to use other plugins that add flags to WorldGuard, such as WorldGuard Extra Flags and use them in ProtectionStones.

    Permissions:
    The permission list is on the wiki: https://github.com/espidev/ProtectionStones/wiki/Permissions. By default, no permissions are given to players, so you have to add them explicitly. You can also view the recommended permissions to give for commands here.

    Other Recommendations:
    WorldGuard by default prevents hoppers from going between regions. I recommend setting "ignore-hopper-item-move-events" in WorldGuard's config to false to fix this.

    If you want to protect against water and lava flow, you can set "high-frequency-flags" and "protect-against-liquid-flow" to true in WorldGuard's config.

    WorldGuard config: https://worldguard.readthedocs.io/en/latest/config/

    Default Config Files:
    Wiki: https://github.com/espidev/ProtectionStones/wiki/Configuration

    Translated Versions of messages.yml:
    Interested in having the plugin messages in a different language? Users have contributed translated versions of the messages.yml file. Contact me if you want to supply a messages.yml file in a different language!
    https://github.com/espidev/ProtectionStones/wiki/Translated-messages.yml

    Usage

    Commands:
    Wiki: https://github.com/espidev/ProtectionStones/wiki/Commands

    Placeholders:
    ProtectionStones has support for PlaceholderAPI! View them here.

    FAQ

    When I add a new block config, an error occurs!
    Read the error. Most likely you made a configuration mistake, you can read the TOML spec here, or ask me. Another known issue is that configs made in Notepad (Windows) cause issues with the plugin. Please use a better text editor (ex. Notepad++) for the time being, while I investigate ways to mitigate this.

    When I get the protection block from the creative inventory, it doesn't work (nothing happens when I place it)!
    Since v2.0.0, the config options "restrict-obtaining" is enabled by default. This restricts obtaining the protectionstones to just /ps get and /ps give (and plugins that use the API), since they attach NBT data to the block. That means that when the block is obtained through natural means, it won't work as a protection block. You can set "restrict-obtaining to false to negate this behaviour.

    How can I add protection blocks in a kit?
    Since v2.0.0, the config options "restrict-obtaining" is enabled by default. This restricts obtaining the protectionstones to just /ps get and /ps give (and plugins that use the API), since they attach NBT data to the block. You need to add a command (/ps give) to give the block to the player in the kit. For EssentialsX, check the kit section here.

    How can I sell protection blocks in a shop?
    There are many ways to sell protection blocks, with the easiest being setting a price on /ps get (requires Vault, configured in the block config). You can also use external plugins to sell the protection block, either through running a command (/ps give) or giving an item that was obtained through /ps get or /ps give. Known plugins to work are: ShopChest, ChestCommands.

    Why don't players see the region merge menu?
    Be sure to give players the protectionstones.merge permission.

    Why do some flags apply to members of the region as well? (ex. block-break deny)
    By default flags apply to everyone, including members of the region. You have to use region groups (using -g) to change this (ex. set the group to apply to only nonmembers). You can read about this here.

    How do I change the block type of a region after players have already created regions with it?

    You can use the command /ps admin changeblock [world] [fromblock] [toblock] to do this. Create a new config (block.toml file) in the blocks folder with the changed block type, while keeping the old one still loaded. Do /ps reload, and run the command to do the conversion. After it completes, you can remove the block config with the old type.

    Why does [x] flag not work?

    Flags are handled by WorldGuard, and some of their behaviours may not be what you expect. You can read more about WorldGuard flags here: https://worldguard.enginehub.org/en/latest/regions/flags/

    I found a bug! How do I get it fixed?
    Please file this issue on either GitHub, or post it on the discussion page.

    I want a new feature!
    Please file this issue on either GitHub, or post it on the discussion page. The feature may not be aligned with the goals of the plugin, so it might also be worth making another plugin that uses the developer API instead.

    Is there a developer API?
    Yes there is! It still is in a beta stage though right now, so methods are bound to change. You can see the WIP wiki page here: https://github.com/espidev/ProtectionStones/wiki/API

    ~~~~~

    This plugin is based off of the original ProtectionStones.

    Migrating from older versions of ProtectionStones (<2.x.x)

    The transition from older versions should be seamless, so just drag the plugin in to the plugins folder and enjoy! The plugin will automatically update your configs and regions.

    You can find the original plugin here:
    https://www.spigotmc.org/resources/protectionstones.10096/

    https://dev.bukkit.org/projects/protectionstones
    Diclo, Flak, TheFoXi and 7 others like this.

Recent Reviews

  1. SliderKP
    SliderKP
    5/5,
    Version: 2.7.5
    today i updated to latest version, thanks for this amazing works.

    consider to add /ps kick command to repel bad users!
  2. IAreKyleW00t
    IAreKyleW00t
    5/5,
    Version: 2.7.5
    Such a simple plugin that does so much - really helps improve survival gameplay and adds some uses to items. The customization is incredible!
  3. 6085kevin
    6085kevin
    5/5,
    Version: 2.7.5
    ------------------------------------------------
    THX FOR UPDATE 1.16, GUY! <3
    -----------------------------------------------
    1. EspiDev
      Author's Response
      !! no problem
  4. augesrob.com
    augesrob.com
    5/5,
    Version: 2.7.5
    Great Plugin, Can you update the dynmap plugin aswell. No issues what so ever! 1.16.1
    1. EspiDev
      Author's Response
      Dynmap is actively updated? I'm not really involved in that project.
      Thanks for the review.
  5. bmw8754
    bmw8754
    4/5,
    Version: 2.7.5
    hi, i have a problem: i have a spigot server 1.16.1 and when i entered / plugins the plugin was green, but when i wanted to enter / ps the plugin didn't work. The plugin folder has not been created
    1. EspiDev
      Author's Response
      Please do not ask for support in the reviews section. Go on to the discord or discussion page for support.
  6. MarkVR
    MarkVR
    5/5,
    Version: 2.7.5
    niceeeeeeeeeeeeeeeeeeee 100000000000000000000000000000000000000000000000000000000000000000% :DDDDDDD
    1. EspiDev
  7. SoyJorge09
    SoyJorge09
    5/5,
    Version: 2.7.4
    This plugin works in 1.16.1 because I put / ps I get red and the commands do not appear??


    [14:45:44] [Server thread/ERROR]: Error occurred while enabling ProtectionStones v2.7.4 (Is it up to date?)
    java.lang.AbstractMethodError: Method net/minecraft/server/v1_16_R1/RecipeSmithing.toBukkitRecipe()Lorg/bukkit/inventory/Recipe; is abstract
    at net.minecraft.server.v1_16_R1.RecipeSmithing.toBukkitRecipe(SourceFile) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.craftbukkit.v1_16_R1.inventory.RecipeIterator.next(RecipeIterator.java:31) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.craftbukkit.v1_16_R1.inventory.RecipeIterator.next(RecipeIterator.java:1) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at dev.espi.protectionstones.PSConfig.removePSRecipes(PSConfig.java:232) ~[?:?]
    at dev.espi.protectionstones.ProtectionStones.loadConfig(ProtectionStones.java:402) ~[?:?]
    at dev.espi.protectionstones.ProtectionStones.onEnable(ProtectionStones.java:493) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugin(CraftServer.java:488) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugins(CraftServer.java:402) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.loadWorld(MinecraftServer.java:436) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.DedicatedServer.init(DedicatedServer.java:219) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:808) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.1.jar:git-Spigot-758abbe-2b00831]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
    1. EspiDev
      Author's Response
      Please read the red text on the front page.
  8. komcsierik
    komcsierik
    3/5,
    Version: 2.7.4
    Hey this not work whit 1.16.1
    ------------------------------------------------------
    If i write /pl is green but, im try to write /ps is red and not work
    1. EspiDev
      Author's Response
      This is a known issue with the initial builds of 1.16.1 that came out on the first day. It has since been fixed, please rebuild spigot with BuildTools.
  9. tuxten
    tuxten
    3/5,
    Version: 2.7.4
    hey friend i love your plugin but i am having problems with version 1.16 this is the error that appears in the console

    [23:22:09] [User Authenticator #1/INFO]: UUID of player tuxten1 is 0e4e1bb4-99e3-3274-91b4-6e26c40270f7
    [23:22:12] [Server thread/ERROR]: **** THIS IS NOT AN ISSUE TO DO WITH PER WORLD PLUGINS ****
    Could not pass event PlayerJoinEvent to ProtectionStones v2.7.4
    org.bukkit.event.EventException: null
    at me.incomprehendable.dev.pwp.transparentlisteners.PerWorldPluginLoader$1.execute(PerWorldPluginLoader.java:118) ~[?:?]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[server.jar:git-Spigot-758abbe-2b00831]
    at me.incomprehendable.dev.pwp.transparentlisteners.PWPRegisteredListener.callEvent(PWPRegisteredListener.java:28) ~[?:?]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[server.jar:git-Spigot-758abbe-2b00831]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.PlayerList.a(PlayerList.java:199) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.LoginListener.c(LoginListener.java:153) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.LoginListener.tick(LoginListener.java:52) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.NetworkManager.a(NetworkManager.java:219) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.ServerConnection.c(ServerConnection.java:128) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.b(MinecraftServer.java:1126) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.DedicatedServer.b(DedicatedServer.java:354) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.a(MinecraftServer.java:1007) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:846) ~[server.jar:git-Spigot-758abbe-2b00831]
    at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[server.jar:git-Spigot-758abbe-2b00831]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    Caused by: java.lang.NullPointerException
    at dev.espi.protectionstones.ListenerClass.onPlayerJoin(ListenerClass.java:62) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_231]
    at me.incomprehendable.dev.pwp.transparentlisteners.PerWorldPluginLoader$1.execute(PerWorldPluginLoader.java:116) ~[?:?]
    1. EspiDev
      Author's Response
      This is a known issue with the initial builds of 1.16.1 that came out on the first day. It has since been fixed, please rebuild spigot with BuildTools.
  10. JJoyce798
    JJoyce798
    4/5,
    Version: 2.7.4
    I love this plugin.
    I am using this plugin on my server and I love it. It has no mistakes.
    Do you know where I can find this plugin to use it in version 1.12.2?
    1. EspiDev
      Author's Response