Giter VIP home page Giter VIP logo

protectionstones's Introduction

ProtectionStones

Maven Central Open issues Closed issues

Spigot | Permissions | Commands | Configuration | Placeholders | Translations | API Information | Javadocs | Dev Builds

Get support for the plugin on the M.O.S.S. Discord! https://discord.gg/cqM96tcJRx

ProtectionStones is a grief prevention and land claiming plugin.

This plugin uses a specified type of minecraft block/blocks as a protection block. When a player placed a block of that type, they are able to protect a region around them. The size of the protected region is configurable in the plugins config file. You can also set which flags players can change and also the default flags to be set when a new region is created.

View the Spigot page (with FAQ and install instructions) here.

Check the wiki for plugin reference information.

Dependencies

  • ProtectionStones 2.10.5
    • Spigot 1.20.6+
    • WorldGuard 7.0.9+
    • WorldEdit 7.2.6+
    • Vault (Optional)
    • PlaceholderAPI (Optional)
    • LuckPerms (Optional)

Building

Make sure you have the Java 21 JDK installed, as well as Maven.

git clone https://github.com/espidev/ProtectionStones.git
cd ProtectionStones
mvn clean install

Compiling ProtectionStones will also produce a jar with JavaDocs, which can be useful if you need documentation for an older version.

Usage Statistics

View full usage statistics here.

This plugin is licensed under the GPLv3, as is required by Bukkit plugins.

protectionstones's People

Contributors

addstar avatar aurorals3 avatar chick4nnn avatar dependabot[bot] avatar dragoboss avatar dylanpdx avatar espidev avatar flutz1 avatar igabytm avatar itaquito avatar jerzean avatar krakenied avatar mikroskeem avatar rinpr avatar seshpenguin avatar vik1395 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

protectionstones's Issues

Nullpointer when teleporting to zone 1

This error happens sometimes, when a player tries to teleport to home 1. The others (I mean home 2, 3, etc) works just fine, but 1 doesn't for some reason. Also interesting that this applies for zones, that were created before I updated the plugin on my server. The old plugin's version was 1.7.1, the new plugin's version is 2.0.4.

java.lang.NullPointerException: null
at me.vik1395.ProtectionStones.commands.ArgTp.lambda$argumentTp$3(ArgTp.java:143) ~[?:?]
at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:82) ~[patched_1.13.2.jar:git-Paper-523]
at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) ~[patched_1.13.2.jar:git-Paper-523]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.13.2.jar:git-Paper-523]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_212]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_212]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]

PS get gui

The idea is, when you type /ps get, it'd display me an inventory gui with the available protection stones, so I only have to click one of the displayed items, the inventory would just close, and I'd get the block. Another option is to show the names of the protection stones in the chat but make it clickable to give the item to the player who clicked.

Imho this update would make getting protection stones more fancy and clear for players.

distance_between_claims does not work

As the title says, distance_between_claims is ignored. Latest version, running on Paper 97..

I have a 16x16 claim block, i set distance_between_claims to 20, but players can still place a 16x16 claim near the border of another 16x16 claim.

Can't get off / on your horse in someone else's region, horse can die

  1. If you want to get off or on your own horse in someone else's region, you can't.
  2. If you get trapped in some deep water while still on your horse, you can't get off the horse because you have no permission. Since horses will try to throw you off them in deep water but can't since the player doesn't have permission, the horse will sink and drown while spamming the chat.

The plugin probably runs on WorldGuard as far as I understood but maybe there's a way you could allow embarking and disembarking your horses, llamas, etc. if they are really tamed by you.

Thanks :)

Add /ps list

Add /ps list for players to list the protected regions a player owns (region - owner/member).

Streamline API

Move more API functions out of ProtectionStones, and into other classes.

Merge multiple protection stones into a single 3D polygon!

Add a toggleable setting to allow to automatically merge multiple protection stones into a single 3D polygon!

This should happen automatically, when two or more areas generated by the same kind of protection stones are overlapping.

Useful for servers using dynmap, and also to perform commands on just a big polygon instead of on multiple same-sized regions.

Unhandled exception executing 'ps view' if not inside ps region

If you do /ps view while not standing in a protection stone region an internal error occours.

org.bukkit.command.CommandException: Unhandled exception executing 'ps view' in dev.espi.ProtectionStones.PSCommand(ps)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:169) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchCommand(CraftServer.java:736) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.handleCommand(PlayerConnection.java:1832) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1640) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:127) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:105) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:999) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:992) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:115) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:976) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:909) ~[patched_1.14.2.jar:git-Paper-97]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NullPointerException
at dev.espi.ProtectionStones.commands.ArgView.executeArgument(ArgView.java:61) ~[?:?]
at dev.espi.ProtectionStones.PSCommand.execute(PSCommand.java:64) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.14.2.jar:git-Paper-97]
... 16 more

Suggestions to add

Could you add in config to add flags to work only for owners and members?

Add in config to teleport /ps home in all worlds specified.
Add per block to disable to buy it. (If there is an option, i can't saw)

Rename regions renaming the Protection Stone in an Anvil.

As the title says, allow users to rename the claims renaming the protection stone in an anvil, before placing it. It could be useful for entry ang farewell flags, as well for server using dynmap world guard.

This is a secondary feature, tho. Not as important as others.

Adiacent Protection Stones restriction

Add the ability to allow the placement of a PS only if inside or adiacent to another PS of the same owner, similar to how factions works.. with a limit of X non-adiancent PS that are placeable.. over that limit, you can only place adiacent protection stones. Useful to avoid uneven spreading of regions.

This would help to keep the server very clean.

must-be-adiacent: true/false
max-non-adiacent-protection-stones: 10-20

Add API

Add an API with maven repo for plugin developers.

Water is explosion-proof

I just tested with my friends.
If you place water in the protection block area
TNT will not be able to blow up the area
Is there any way to prevent this from happening?
(This is just a problem, if there is no solution, it doesn't matter)

HELP ME

Prevent_explode = false
Destroy_region_when_explode = true
Setting this way still can't destroy the protection stone!
WHY? HELP ME PLS

Console error when doing /ps admin flag piston null

This error appeared in console when i tried to set to null the piston flag. Then i tried to set it to allow, and it did not work either:

org.bukkit.command.CommandException: Unhandled exception executing 'ps admin flag World piston null' in dev.espi.ProtectionStones.PSCommand(ps)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:169) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchCommand(CraftServer.java:736) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.handleCommand(PlayerConnection.java:1832) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1640) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:127) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:105) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:999) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:992) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:115) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:976) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:909) ~[patched_1.14.2.jar:git-Paper-97]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770) ~[patched_1.14.2.jar:git-Paper-97]
at com.sk89q.worldguard.protection.regions.ProtectedRegion.setFlag(ProtectedRegion.java:432) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgFlag.setFlag(ArgFlag.java:97) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdminFlag.argumentAdminFlag(ArgAdminFlag.java:54) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdmin.executeArgument(ArgAdmin.java:77) ~[?:?]
at dev.espi.ProtectionStones.PSCommand.execute(PSCommand.java:64) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.14.2.jar:git-Paper-97]
... 16 more
[11:10:49 INFO]: <logan_1_eye> Pay what zdavidMeson.
[11:10:51 INFO]: NemesiS_ITA issued server command: /ps admin flag World piston allow
[11:10:51 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing 'ps admin flag World piston allow' in dev.espi.ProtectionStones.PSCommand(ps)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:169) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchCommand(CraftServer.java:736) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.handleCommand(PlayerConnection.java:1832) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1640) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:127) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:105) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:999) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:992) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:115) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:976) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:909) ~[patched_1.14.2.jar:git-Paper-97]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NullPointerException
at dev.espi.ProtectionStones.commands.ArgFlag.setFlag(ArgFlag.java:102) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdminFlag.argumentAdminFlag(ArgAdminFlag.java:54) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdmin.executeArgument(ArgAdmin.java:77) ~[?:?]
at dev.espi.ProtectionStones.PSCommand.execute(PSCommand.java:64) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.14.2.jar:git-Paper-97]
... 16 more

Sponge - Duplication bug

I have changed the protection block to a sponge, but now, one of my players found out an exploit which breaks the economy of the server.
Here is whats happening:

When someone is placing the sponge near water, the area gets protected, but the sponge turns into a wet sponge, and the protection block is "gone". However, when you use /ps unclaim, the original protection block (the sponge) gets returned to the player's inventory, but the wet sponge doesnt get removed. In short words, the player can duplicate unlimited amounts of wet sponge. How do I prevent this, exempt from changing the protection block?

Exception on /ps admin cleanup

I have a new problem for you! When i do /ps admin cleanup remove 30 world i get an error and the cleanup does not work.

[14:55:06 WARN]: Failed to load player data for bb16812c-d8c9-42f4-bbed-3c5ffad95c84
[14:55:07 WARN]: Failed to load player data for bb16812c-d8c9-42f4-bbed-3c5ffad95c84
[14:55:07 WARN]: [ProtectionStones] Plugin ProtectionStones v2.1.3 generated an exception while executing task 123709
java.lang.NullPointerException: null
at com.sk89q.worldguard.domains.PlayerDomain.contains(PlayerDomain.java:148) ~[?:?]
at com.sk89q.worldguard.domains.DefaultDomain.contains(DefaultDomain.java:245) ~[?:?]
at com.sk89q.worldguard.protection.regions.ProtectedRegion.isOwner(ProtectedRegion.java:281) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdminCleanup.lambda$argumentAdminCleanup$1(ArgAdminCleanup.java:90) ~[?:?]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:84) ~[patched_1.14.2.jar:git-Paper-107]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[patched_1.14.2.jar:git-Paper-107]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.14.2.jar:git-Paper-107]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]

Just updated WG to WorldGuard 7.0.1-SNAPSHOT

This server is running Paper version git-Paper-107 (MC: 1.14.2)

Support custom player heads as Protection Stones!

This would be a really cool one.

Add support for using player heads with a specific skull owner tag as protection stones.

Right now PLAYER_HEAD is supported, but there is no way to specify the skin of the skull.

This should be supported by shop plugins such as shopkeepers because you don't need any additional special tag to add to the item..

... and, to replace old protection stones with the new ones, a command like /ps admin convert OldStone NewStone that replaces all the existing claim blocks with the new ones. But this is getting pretty hard to do. Only if it is possible to do in an easy way. The main concern here is player head support.

Console error when doing /ps admin flag

Im running Paper 97.. This server is running Paper version git-Paper-97 (MC: 1.14.2) (Implementing API version 1.14.2-R0.1-SNAPSHOT)

I tested right now the latest version, and there are some problems. When i do /ps admin flag, it does not works and in console appears this message:

[14:01:40 INFO]: NemesiS_ITA issued server command: /ps admin flag World ride allow
[14:01:40 WARN]: [ProtectionStones] Plugin ProtectionStones v2.1.2 generated an exception while executing task 2387
java.lang.IllegalStateException: FlagContextCreateEvent may only be triggered synchronously.
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:524) ~[patched_1.14.2.jar:git-Paper-97]
at com.sk89q.worldguard.bukkit.BukkitWorldGuardPlatform.notifyFlagContextCreate(BukkitWorldGuardPlatform.java:75) ~[?:?]
at com.sk89q.worldguard.protection.flags.FlagContext$FlagContextBuilder.build(FlagContext.java:166) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgFlag.setFlag(ArgFlag.java:101) ~[?:?]
at dev.espi.ProtectionStones.commands.ArgAdminFlag.lambda$argumentAdminFlag$0(ArgAdminFlag.java:52) ~[?:?]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:84) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[patched_1.14.2.jar:git-Paper-97]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.14.2.jar:git-Paper-97]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]

If i do the same command from console i get another error.

And when i do just "ps" from console, it spams this message too...

[14:11:16 WARN]: Unexpected exception while parsing console command "ps"
org.bukkit.command.CommandException: Unhandled exception executing 'ps' in dev.espi.ProtectionStones.PSCommand(ps)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:169) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchCommand(CraftServer.java:736) ~[patched_1.14.2.jar:git-Paper-97]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchServerCommand(CraftServer.java:698) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:457) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:419) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1061) ~[patched_1.14.2.jar:git-Paper-97]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:905) ~[patched_1.14.2.jar:git-Paper-97]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.ClassCastException: class com.destroystokyo.paper.console.TerminalConsoleCommandSender cannot be cast to class org.bukkit.entity.Player (com.destroystokyo.paper.console.TerminalConsoleCommandSender and org.bukkit.entity.Player are in unnamed module of loader 'app')
at dev.espi.ProtectionStones.commands.ArgHelp.executeArgument(ArgHelp.java:43) ~[?:?]
at dev.espi.ProtectionStones.PSCommand.execute(PSCommand.java:58) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.14.2.jar:git-Paper-97]
... 7 more

Don't deny placing protection stones in blacklisted worlds

The title pretty much explains my idea. As of right now when I place a protection block in a blacklisted world, the plugin removes it and tells me, that I cannot create any zones in that world. However, I see a lot of my players struggling to figure out what to do (even though the displayed message tells them to type /ps toggle). So maybe it'd be better for everyone to just have ps toggle turned off in these worlds by default.

Suggestion Ps Inventory + /ps

At the time of writing / ps, a GUI appears, with configurable slot's, the first one that shows you the option to buy the protections, the second so that you see the protections that you have already bought in this option, the protections that you have bought in the first option will appear, and the third one that uses the / ps help command, would be very friendly

crafting issue

When there are 2 or more blocks, you can craft only one with custom crafting. The second/third can't be crafted.

Uuid cache idea

I think that the uuid cache creation should be done asynchronously as now it freezes the server thread on startup for like 20 seconds (yeah, I have many registered players - many of them are bots lol). This update would speed up the starting process in my opinion.

flag groups

when i set default flag use deny it denied the owner of the pstone and if you set it to allow everyone can use them. so i googled how to allow worldguard use flags for members and it said "/region flag spawn -g nonmembers use deny" and i tried "/ps flag -g nonmembers use deny" but it doesnt work

Won't start on load.

I have never ran the plugin before on the server.

I'm running:
WE 7.0.1
WG 7.0.1
PS 2.2.1
Spigot 1.14.4

I'm getting this error in console:
Server thread/ERROR 08/01/2019 07:45:08 07:45:08 Error occurred while enabling ProtectionStones v2.2.1 (Is it up to date?) Console 08/01/2019 07:45:08 07:45:08 com.electronwill.nightconfig.core.io.ParsingException: Unexpected character in array: '"' - Expected end of array because of the leading comma. at com.electronwill.nightconfig.toml.ArrayParser.parse(ArrayParser.java:26) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.ValueParser.parse(ValueParser.java:32) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.ValueParser.parse(ValueParser.java:68) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:57) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:101) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:88) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[ProtectionStones-2.2.1.jar:?] at com.electronwill.nightconfig.core.file.SimpleCommentedFileConfig.load(SimpleCommentedFileConfig.java:38) ~[ProtectionStones-2.2.1.jar:?] at dev.espi.protectionstones.PSConfig.initConfig(PSConfig.java:139) ~[ProtectionStones-2.2.1.jar:?] at dev.espi.protectionstones.ProtectionStones.loadConfig(ProtectionStones.java:391) ~[ProtectionStones-2.2.1.jar:?] at dev.espi.protectionstones.ProtectionStones.onEnable(ProtectionStones.java:461) ~[ProtectionStones-2.2.1.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugin(CraftServer.java:461) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugins(CraftServer.java:375) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:449) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:258) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:774) [spigot-1.14.4.jar:git-Spigot-1981d55-3e7b386] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]

Full PlaceholdersAPI support and

It would be nice to make full support for this plugin "".

  • This would help to display inscriptions on the exit and entry into the player’s region. Derivation of the number of regions and more.

Add command to update all the existing regions sizes

An important feature would be allowing admins to update claim blocks sizes.. maybe if you change your mind a nd you want to make regions taller for example. It would be neat to have something like a /ps admin recreateregions command or something like that to update all regions based on config changes!

Thanks

Players can Sell / Buy / Rent Regions

Add the ability to sell or rent regions! Or ability to specify taxes! Similar to how towny works. This would be awesome.. maybe with the ability to use external economy systems or choose to just use a simple one integrated in the plugin, based on a specific item that should be placed inside a chest..

This would open up a lot of possibilities.

/ps setforrent price days
/ps removefromrent
/ps rent
/ps unrent

No action if inventory is full and /ps unclaim is executed

If a player has a full inventory and the user tries to use /ps unclaim, the protected area and the block gets removed but doesnt return to inventory or falls on ground even if no_drop is set to false.

"You don't have enough room in your inventory."

PS FLAG'S GUI

Could you add a GUI for the flag's and add all the flag's available on the server? Open close doors, disable lava movement, entry and exit of people, use of enderpearl's, among other things, it would be super great, in advance thank you very much.

Unified Menu Pages

Since there are a lot of new GUIs, and the help menu is now overflowing, it would be good to create a clickable next page text GUI with command (/ps [id] :num)

Offset the Protection Stone location relative to the WG area

A cool feature would be the ability to decenter the position of the claim block..
The Protection Stone could have an offset on each axys, with the most important being the Y.

Example: If you want the WG region to appear ABOVE the block, and not in the middle, to avoid wasting claim area underground!

The other suggested feature (/ps admin recreateregions) should take in consideration also this offset..

Thanks again! I've more requests for the future, and im planning to support you more with bigger donations for all the work you are doing for us! Something like custom requests but that would be helpful for everyone :)

ps admin cleanup still bugged

Just tested latest version of the plugin on my local LAN test server. I ran /ps admin cleanup remove 30 World, and It printed lots of "Failed to load player data for.." but sometimes it also printed "Removed region XX due to inactive members". My world is actually called World. With the capital W. Here is my latest log and the player data folder, just in case..

Tested on paper 107 (could not update to 1.14.4, there is still something in my plugins that causes map corruption on that version!).

https://drive.google.com/open?id=18p9c2GdixsezV92nVu-TkZ1RxQZuf7vv

https://drive.google.com/open?id=1C3lH4MzhT9UltxxzrpWnAFyirZR32lEv

console error in start server

> [14:22:48] [Server thread/INFO]: [ProtectionStones] Enabling ProtectionStones v2.2.1
> [14:22:48] [Server thread/INFO]: Protection Stone Blocks:
> [14:22:48] [Server thread/INFO]: - DIAMOND_BLOCK (DIAMOND_BLOCK)
> [14:22:48] [Server thread/INFO]: Error parsing flag: use
Error:
> [14:22:48] [Server thread/WARN]: com.sk89q.worldguard.protection.flags.InvalidFlagFormat: Expected none/allow/deny but got 'false'
> [14:22:48] [Server thread/WARN]: at com.sk89q.worldguard.protection.flags.StateFlag.parseInput(StateFlag.java:91)
> [14:22:48] [Server thread/WARN]: at com.sk89q.worldguard.protection.flags.StateFlag.parseInput(StateFlag.java:28)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.FlagHandler.initDefaultFlagsForBlock(FlagHandler.java:89)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.PSConfig.initConfig(PSConfig.java:182)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.ProtectionStones.loadConfig(ProtectionStones.java:391)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.ProtectionStones.onEnable(ProtectionStones.java:461)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417)
> [14:22:48] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugin(CraftServer.java:461)
> [14:22:48] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugins(CraftServer.java:375)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:449)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:266)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:775)
> [14:22:48] [Server thread/WARN]: at java.lang.Thread.run(Thread.java:748)
> [14:22:48] [Server thread/INFO]: - GOLD_BLOCK (GOLD_BLOCK)
> [14:22:48] [Server thread/INFO]: Error parsing flag: use
Error:
> [14:22:48] [Server thread/WARN]: com.sk89q.worldguard.protection.flags.InvalidFlagFormat: Expected none/allow/deny but got 'false'
> [14:22:48] [Server thread/WARN]: at com.sk89q.worldguard.protection.flags.StateFlag.parseInput(StateFlag.java:91)
> [14:22:48] [Server thread/WARN]: at com.sk89q.worldguard.protection.flags.StateFlag.parseInput(StateFlag.java:28)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.FlagHandler.initDefaultFlagsForBlock(FlagHandler.java:89)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.PSConfig.initConfig(PSConfig.java:182)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.ProtectionStones.loadConfig(ProtectionStones.java:391)
> [14:22:48] [Server thread/WARN]: at dev.espi.protectionstones.ProtectionStones.onEnable(ProtectionStones.java:461)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352)
> [14:22:48] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417)
> [14:22:48] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugin(CraftServer.java:461)
> [14:22:48] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugins(CraftServer.java:375)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:449)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:266)
> [14:22:48] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:775)
> [14:22:48] [Server thread/WARN]: at java.lang.Thread.run(Thread.java:748)

The contact of the regions

It would be nice to introduce this feature. (it can be turned on and off in the plugin.

The essence of the function.

Can the regions that you set the blocks touch and enter into each other or not.

Placeholders?

Was wondering about placeholders if they're a thing or not and if they're not would be interesting to see what placeholders could be put in place. For example:

Players Regions Count
Players Regions Broken
Protection Blocks Crafted
Protection Blocks given via /ps get

This is all I can think of as of now but I think this would be a cool feature to add if not in already.

Add tab autocomplete

Add tab completion for all arguments; find some string matching algorithm to do

ps view suggestion

The ps view command is really handy if I want to visalize my zones actual size, however there's only one problem. I can spam it (I know, it's really dumb to do such a thing, but my players do it anyway), and then I'll lag and the server as well. In my opinion a cooldown would be nice. I mean, when I type /ps view I have to wait for 20-30 seconds before using this command again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.