Giter Site home page Giter Site logo

akdukaan / gpflags Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lewysdavies/griefpreventionflags

16.0 16.0 17.0 1.1 MB

GriefPreventionFlags is a Minecraft plugin to allow players to customize their GriefPrevention claims with claimflags.

License: GNU General Public License v3.0

Java 100.00%
hacktoberfest

gpflags's People

Contributors

akdukaan avatar artnrg avatar bigscary avatar fakeee14 avatar ginotuch avatar jabbink avatar kxa317 avatar lewysdavies avatar loggits avatar qartho avatar shanebeee avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

gpflags's Issues

Make NoEnterPlayer easier - revamp command structure

Is your feature request related to a problem? Please describe.

  • The number of bannable players in a NoEnterPlayer flag is limited by the number of characters you can send in a message
  • To add another player to the flag, you have to type all the players in the list again.

Describe the solution you'd like
The entire command format has to change maybe?

Important to recognize the three types of flags.

  • Boolean flags are either enabled or disabled and store no other information. For example, NoVehicle.
  • Single-input flags take in 1 input. For example, EnterMessage
  • Multi-input flags can take in 1 or more inputs. For example, NoEnterPlayer.

Biggest issue I’m trying to solve is that flags that are multi-input flags can’t be easily modified.

Also smaller issue: I don’t really like the word unset and I know a lot of people find it unintuitive. Could be replaced with something else. At the moment I’m thinking create and delete. Do provide feedback on the words to use but I want to focus the convo more on how param lists work.

To fix the smaller issue, im thinking to restructure the command so set and unset get pushed to come up later in the command structure.

Examples below. I think Boolean and single-input flags work well but I don’t yet love the way multi-inputs work

For Boolean flags:
/claimflag NoVehicle create
/claimflag NoVehicle delete

For single-input flags:
/claimflag EnterMessage create hello world
/claimflag EnterMessage delete

For multiinput flags:
/claimflag NoEnterPlayer create player1 — controversial removing the earlier ability to set multiple lines at the same time
/claimflag NoEnterPlayer add player2
/claimflag NoEnterPlayer remove 1 — removes line 1
/claimflag NoEnterPlayer info — shows which item is on which line
/claimflag NoEnterPlayer delete

would love some feedback from all GPF users

Entrance to claim when there is noentry flag

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Fly fast with fireworks to claim where you are denied to enter, non stop.
  2. Disconect from server adn rejoin.
  3. You can freely walk in the claim.

Expected behavior
Can't use this bug and You should not able move in claim.

Screenshots or Videos
https://youtu.be/SWwZI3ptB1A

Versions:

  • GriefPrevention version 16.18-RC1-1-g06cc566
  • GPFlags version GriefPreventionFlags version 5.11.2
  • Server version Paper version git-Paper-198 (MC: 1.18.1) (Implementing API version 1.18.1-R0.1-SNAPSHOT) (Git: c50fc3a)

NullPointerException in administrative claims

Describe the bug
When I try to interact with containers (e.g. chest), I got NullPointerException (pastebin).
It's only appears in administrative claims with ViewContainers flag, and it doesn't affect on player claims.

To Reproduce
Open any chest in any administrative claim with ViewContainers flag.

Versions:

  • GriefPrevention 16.18
  • GPFlags 5.11.2
  • Paper version git-Paper-388 (MC: 1.17.1)

New flag: Sculk growth DENY

Is your feature request related to a problem? Please describe.
Players with withers and with sculk_catalyst griefin other players claims and in claim zone growths Sculk blocks and sculk veins.

Describe the solution you'd like
Make a new flag who will denied from that happing.

Additional context
WorldGuard have that flag and working good)
photo example:
https://prnt.sc/M23x66Jq8VwM

setclaimflag inside subdivisionclaim

GPFlagVersion: GPFlags-5.12.5

Plugins: Plugins (57): AntiWorldFly, AutoRestart*, BanFromClaim, BetterRTP, BlockLocker, CMILib, DiscordSRV, Elevator, Essentials, EssentialsChat, EssentialsGeoIP, EssentialsSpawn, F3Name, FastLogin, floodgate, GPFlags, GPTeleport, GriefPrevention, InteractiveChat, JDALibLoaderBukkit, Jobs, KickFromClaim, Leashable, mcMMO, MineableSpawners, MobFarmManager, Multiverse-Core, MVdWPlaceholderAPI*, NBTAPI, Orebfuscator, OtherAnimalTeleport, PermissionsEx*, PEXChat*, PlaceholderAPI, PlayerWarps, PlugMan, PortalBlockerFree, ProtocolLib, QuickShop, RealEstate, ShopGUIPlus, ShopGUIPlus-SellGUI, ShopGUIPlusMineableSpawnersBridge, SimpleClans, Slimefun, TAB, Themis, UltimateChat, UnbreakableLeashes, Vault, ViaBackwards, ViaVersion, VoidSpawn, Vote*, Votifier, WorldEdit, WorldGuard

Version:

> version
[11:28:43 INFO]: Checking version, please wait...
[11:28:43 INFO]: This server is running Paper version git-Paper-364 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: fa42c68)
You are 20 version(s) behind
Download the new version at: https://papermc.io/downloads

Error on console:

[11:25:24 INFO]: comonier issued server command: /setclaimflag OwnerMemberFly true
[11:25:24 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'setclaimflag' in plugin GPFlags v5.12.5
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.19.3-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.19.3-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R2.CraftServer.dispatchCommand(CraftServer.java:929) ~[paper-1.19.3.jar:git-Paper-364]
        at org.bukkit.craftbukkit.v1_19_R2.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.19.3.jar:git-Paper-364]
        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[paper-1.19.3.jar:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:313) ~[?:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:297) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2288) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$20(ServerGamePacketListenerImpl.java:2248) ~[?:?]
        at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1341) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1318) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1311) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1289) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1177) ~[paper-1.19.3.jar:git-Paper-364]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[paper-1.19.3.jar:git-Paper-364]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "me.ryanhamshire.GriefPrevention.Claim.getGreaterBoundaryCorner()" because "claim" is null
        at me.ryanhamshire.GPFlags.util.Util.getPlayersIn(Util.java:499) ~[GPFlags-5.12.5.jar:?]
        at me.ryanhamshire.GPFlags.flags.FlagDef_OwnerMemberFly.onFlagSet(FlagDef_OwnerMemberFly.java:30) ~[GPFlags-5.12.5.jar:?]
        at me.ryanhamshire.GPFlags.FlagManager.setFlag(FlagManager.java:137) ~[GPFlags-5.12.5.jar:?]
        at me.ryanhamshire.GPFlags.commands.CommandSetClaimFlag.onCommand(CommandSetClaimFlag.java:125) ~[GPFlags-5.12.5.jar:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.19.3-R0.1-SNAPSHOT.jar:?]
        ... 23 more

Question: How enable by default claim fly on config ?

I am using the plugin, but i not found yet, how let it enabled by default.
It's possible? to dont need to give permissions to player enable it on own claim.

command: /setclaimflag OwnerMemberFly true | permission: gpflags.flag.OwnerMemberFly
command: /setclaimflag OwnerFly true | permission: gpflags.flag.OwnerFly

Not working NoElytra flag

Describe the bug
Not working flag NoElytra.

To Reproduce
Steps to reproduce the behavior:

  1. Create claim and /setclaimflag NoElytra
  2. Try use elytra in claim who should not able fly
  3. Player can fly and you see error in console

Expected behavior
No error and player should not fly with elytra when is this flag set.

Versions:

  • GriefPrevention version 16.18-12-g3d0487d
  • GPFlags version 5.12.0
  • Server version This server is running Paper version git-Paper-40 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT) (Git: 0d79b86)

Additional context
ERROR:

Could not pass event EntityToggleGlideEvent to GriefPreventionFlags v5.12.0
java.lang.NullPointerException: Cannot invoke "java.util.UUID.equals(Object)" because the return value of "me.ryanhamshire.GriefPrevention.Claim.getOwnerID()" is null
at me.ryanhamshire.GPFlags.flags.FlagDef_NoElytra.onToggleElytra(FlagDef_NoElytra.java:41) ~[GriefPreventionFlags-5.12.0.jar:?] at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:git-Paper-40]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:664) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.callToggleGlideEvent(CraftEventFactory.java:1695) ~[paper-1.19.jar:git-Paper-40] at net.minecraft.world.entity.player.Player.startFallFlying(Player.java:1791) ~[?:?]
at net.minecraft.world.entity.player.Player.tryToStartFallFlying(Player.java:1781) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handlePlayerCommand(ServerGamePacketListenerImpl.java:2622) ~[?:?] at net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket.handle(ServerboundPlayerCommandPacket.java:37) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket.handle(ServerboundPlayerCommandPacket.java:13) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1358) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:183) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1335) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1328) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1462) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-40]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
[19:17:08 ERROR]: Could not pass event EntityToggleGlideEvent to GriefPreventionFlags v5.12.0
java.lang.NullPointerException: Cannot invoke "java.util.UUID.equals(Object)" because the return value of "me.ryanhamshire.GriefPrevention.Claim.getOwnerID()" is null
at me.ryanhamshire.GPFlags.flags.FlagDef_NoElytra.onToggleElytra(FlagDef_NoElytra.java:41) ~[GriefPreventionFlags-5.12.0.jar:?] at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:git-Paper-40]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:664) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.callToggleGlideEvent(CraftEventFactory.java:1695) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.world.entity.LivingEntity.travel(LivingEntity.java:2793) ~[?:?]
at net.minecraft.world.entity.player.Player.travel(Player.java:1662) ~[?:?]
at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3347) ~[?:?]
at net.minecraft.world.entity.player.Player.aiStep(Player.java:561) ~[?:?]
at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:2949) ~[?:?]
at net.minecraft.world.entity.player.Player.tick(Player.java:276) ~[?:?]
at net.minecraft.server.level.ServerPlayer.doTick(ServerPlayer.java:675) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.tick(ServerGamePacketListenerImpl.java:340) ~[?:?]
at net.minecraft.network.Connection.tick(Connection.java:568) ~[?:?]
at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:232) ~[?:?]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1581) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1414) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[paper-1.19.jar:git-Paper-40]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-40]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

Disabled / Red AllowBlockExplosions stops working after a restart

Describe the bug
The red AllowBlockExplosions flag which should mean the flag is not set appears to be resetting on server restarting and applying the flag. This is making it so claims that dont have the flag set but is showing the red text version of AllowBlockExplosions do not allow explosions to work on the claim. However, restarting the server will still show these claims with the red AllowBlockExplosions but explosions become enabled in the claim.

To Reproduce
By default a claim is protected from explosions
Player turns on explosions by setting green AllowBlockExplosions and now explosions work in the claim
Player turns off / makes red AllowBlockExplosions and things cant explode in the claim
Restarting the server makes it so the red AllowBlockExplosions doesnt work and allows blocks to explode

Expected behavior
Red AllowBlockExplosions should keep explosions disabled after a restart

Versions:

  • GriefPrevention version: de1e72d
  • GPFlags version: 5.12.8
  • Server version: PurPur 2057

Unsetting NoEnderPearl in sub-claim does not enable them

Describe the bug
The NoEnderPearl flag takes effect if the flag exists at all - the code does not check the "set" state of the flag.

To Reproduce

  1. /setflag NoEnderPearl in main claim
  2. /unsetflag NoEnderPearl in sub-claim
  3. Pearls are still blocked in the sub-claim
  4. (Optional) /unsetflag NoEnderPearl in the main claim removing that flag - pearls are still blocked in the sub-claim

Expected behavior
Pearls should be permitted where the flag is unset

Screenshots or Videos
Screenshots of the /listflags result where pearls are blocked attached

no EP 1
no EP 2

Additional context
FlagDef_NoEnderPearl.java in public void onPlayerTeleport twice checks the existence of the flag, eg:
Flag flag = this.getFlagInstanceAtLocation(event.getFrom(), event.getPlayer());
if (flag != null) {
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(event.getFrom(), false, null);
// etc
}
Lines 36 and 52 should presumably read:
if (flag != null && flag.getSet()) {

OwnerFly: Will remain on users when they change world's with Multiverse

Describe the bug
OwnerFly enabled, user flies within their claim, but if they /warp resource (which in our case is a seperate world manged via multiverse), will allow the user to retain and fly around.

To Reproduce
Steps to reproduce the behavior:

  1. With OwnerFly enabled on a claim.
  2. Create a seperate world with Multiverse.
  3. Create a warp /resource to that world.
  4. You can fly indefinitely.

Expected behavior
A user can fly indefinitely when outside of their claim.

Regarding the HealthRegen flag.

This is a quick suggestion as i cant find any info or any option in the config.

Regarding the HealthRegen flag.

Is it possible to only allow players to do "/setflag HealthRegen 1" instead of "/setflag HealthRegen 10" or "/setflag HealthRegen 50" etc

I dont want players to set it higher than 1 as its becomes to powerfull

I hope this option can be added

Thank you

Flag triggering outside of claim

Describe the bug
Grief prevention flag triggering outside of a claim, causing an error

To Reproduce
Steps to reproduce the behavior:
Unknown, ProtectNamed mobs was at one point server wide, however unsetting the flag did not stop the errors

Expected behavior
No errors in console

Screenshots or Videos
Could not pass event EntityDamageByEntityEvent to GriefPreventionFlags v5.12.0
java.lang.NullPointerException: Cannot invoke "me.ryanhamshire.GriefPrevention.Claim.getPermission(String)" because "claim" is null
at me.ryanhamshire.GPFlags.flags.FlagDef_ProtectNamedMobs.onEntityDamage(FlagDef_ProtectNamedMobs.java:44) ~[GriefPreventionFlags-5.12.0.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor489.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:git-Paper-30]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:664) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:248) ~[paper-1.19.jar:git-Paper-30]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:1151) ~[paper-1.19.jar:git-Paper-30]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:1010) ~[paper-1.19.jar:git-Paper-30]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:962) ~[paper-1.19.jar:git-Paper-30]
at org.bukkit.craftbukkit.v1_19_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:1185) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.world.entity.LivingEntity.damageEntity0(LivingEntity.java:2097) ~[?:?]
at net.minecraft.world.entity.LivingEntity.hurt(LivingEntity.java:1369) ~[?:?]
at net.minecraft.world.entity.player.Player.attack(Player.java:1321) ~[?:?]
at net.minecraft.server.level.ServerPlayer.attack(ServerPlayer.java:2072) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl$5.a(ServerGamePacketListenerImpl.java:2727) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket$1.dispatch(ServerboundInteractPacket.java:24) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.dispatch(ServerboundInteractPacket.java:80) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleInteract(ServerGamePacketListenerImpl.java:2654) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:67) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:12) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1358) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:183) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1335) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1328) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1406) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[paper-1.19.jar:git-Paper-30]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-30]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

Configs:

GriefPrevention:
SeaLevelOverrides:
world: -1
world_nether: -1
world_the_end: -1
TARDIS_WORLD_Nicklebobble: -1
TARDIS_WORLD_Famous_Longwing: -1
TARDIS_WORLD_:
Famous_Longwing: -1
earth: -1
TARDIS_Zero_Room: -1
eamap: -1
TARDIS_WORLD_WytchyChick: -1
sitem1: -1
sitewords: -1
Claims:
Mode:
world_the_end: Survival
world_nether: Survival
earth: Survival
TARDIS_WORLD_Nicklebobble: Disabled
TARDIS_WORLD_Famous_Longwing: Disabled
world: Survival
TARDIS_WORLD_:
Famous_Longwing: Disabled
TARDIS_Zero_Room: Disabled
eamap: Disabled
TARDIS_WORLD_WytchyChick: Disabled
sitem1: Survival
sitewords: Disabled
PreventGlobalMonsterEggs: true
PreventTheft: true
ProtectCreatures: true
PreventButtonsSwitches: true
LockWoodenDoors: false
LockTrapDoors: false
LockFenceGates: true
EnderPearlsRequireAccessTrust: true
RaidTriggersRequireBuildTrust: false
ProtectHorses: true
ProtectDonkeys: true
ProtectLlamas: true
InitialBlocks: 1000000
Claim Blocks Accrued Per Hour:
Default: 100000000
Max Accrued Claim Blocks:
Default: 80000
Accrued Idle Threshold: 0
AccruedIdlePercent: 0
AbandonReturnRatio: 1.0
AutomaticNewPlayerClaimsRadius: 4
AutomaticNewPlayerClaimsRadiusMinimum: 0
ExtendIntoGroundDistance: 5
MinimumWidth: 5
MinimumArea: 100
MaximumDepth: -2147483648
InvestigationTool: STICK
ModificationTool: GOLDEN_SHOVEL
Expiration:
ChestClaimDays: 1280523264
UnusedClaimDays: -1593384960
AllClaims:
DaysInactive: 1705032704
ExceptWhenOwnerHasTotalClaimBlocks: 10000
ExceptWhenOwnerHasBonusClaimBlocks: 5000
AutomaticNatureRestoration:
SurvivalWorlds: false
AllowTrappedInAdminClaims: false
MaximumNumberOfClaimsPerPlayer: 0
CreationRequiresWorldGuardBuildPermission: true
VillagerTradingRequiresPermission: true
CommandsRequiringAccessTrust: /sethome
DeliverManuals: true
ManualDeliveryDelaySeconds: 30
RavagersBreakBlocks: true
FireSpreadsInClaims: false
FireDamagesInClaims: false
LecternReadingRequiresAccessTrust: true
Spam:
Enabled: true
LoginCooldownSeconds: 60
LoginLogoutNotificationsPerMinute: 5
ChatSlashCommands: /me;/global;/local
WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
WarningMessage: Please reduce your noise level. Spammers will be banned.
BanOffenders: true
BanMessage: Banned for spam.
AllowedIpAddresses: 1.2.3.4; 5.6.7.8
DeathMessageCooldownSeconds: 120
Logout Message Delay In Seconds: 0
PvP:
RulesEnabledInWorld:
world: true
world_nether: true
world_the_end: true
TARDIS_WORLD_Nicklebobble: false
TARDIS_WORLD_Famous_Longwing: false
TARDIS_WORLD_:
Famous_Longwing: false
earth: false
TARDIS_Zero_Room: false
eamap: false
TARDIS_WORLD_WytchyChick: false
sitem1: false
sitewords: false
ProtectFreshSpawns: true
PunishLogout: true
CombatTimeoutSeconds: 15
AllowCombatItemDrop: false
BlockedSlashCommands: /home;/vanish;/spawn;/tpa
ProtectPlayersInLandClaims:
PlayerOwnedClaims: true
AdministrativeClaims: true
AdministrativeSubdivisions: true
AllowLavaDumpingNearOtherPlayers:
PvPWorlds: true
NonPvPWorlds: false
AllowFlintAndSteelNearOtherPlayers:
PvPWorlds: true
NonPvPWorlds: false
ProtectPetsOutsideLandClaims: false
Economy:
ClaimBlocksMaxBonus: 0
ClaimBlocksPurchaseCost: 0.0
ClaimBlocksSellValue: 0.0
ProtectItemsDroppedOnDeath:
PvPWorlds: false
NonPvPWorlds: true
BlockLandClaimExplosions: true
BlockSurfaceCreeperExplosions: true
BlockSurfaceOtherExplosions: true
LimitSkyTrees: true
LimitTreeGrowth: false
PistonMovement: CLAIMS_ONLY
PistonExplosionSound: true
FireSpreads: false
FireDestroys: false
AdminsGetWhispers: true
AdminsGetSignNotifications: true
VisualizationAntiCheatCompatMode: false
SmartBan: true
Mute New Players Using Banned Words: true
MaxPlayersPerIpAddress: 3
SilenceBans: true
Siege:
Worlds: []
BreakableBlocks:
- GRASS_BLOCK
- DIRT
- COBBLESTONE
- OAK_PLANKS
- SPRUCE_PLANKS
- BIRCH_PLANKS
- JUNGLE_PLANKS
- ACACIA_PLANKS
- DARK_OAK_PLANKS
- SAND
- GRAVEL
- GLASS
- GRASS
- FERN
- DEAD_BUSH
- WHITE_WOOL
- ORANGE_WOOL
- MAGENTA_WOOL
- LIGHT_BLUE_WOOL
- YELLOW_WOOL
- LIME_WOOL
- PINK_WOOL
- GRAY_WOOL
- LIGHT_GRAY_WOOL
- CYAN_WOOL
- PURPLE_WOOL
- BLUE_WOOL
- BROWN_WOOL
- GREEN_WOOL
- RED_WOOL
- BLACK_WOOL
- SNOW
- GLASS_PANE
DoorsOpenDelayInSeconds: 300
CooldownEndInMinutes: 60
EndermenMoveBlocks: false
SilverfishBreakBlocks: false
CreaturesTrampleCrops: false
RabbitsEatCrops: true
HardModeZombiesBreakDoors: false
Database:
URL: ''
UserName: ''
Password: ''
UseBanCommand: false
BanCommandPattern: ban %name% %reason%
Advanced:
fixNegativeClaimblockAmounts: true
ClaimExpirationCheckRate: 60
OfflinePlayer_cache_days: 90
Abridged Logs:
Days To Keep: 7
Included Entry Types:
Social Activity: true
Suspicious Activity: true
Administrative Activity: false
Debug: false
Muted Chat Messages: false
ConfigVersion: 1

  • GPFlags config
    (cannot find)

Versions:

  • GriefPrevention version - 5.12.0
  • GPFlags version -v16.18-9-gd75b3cd
  • Server version - git-Paper-20 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT) (Git: 2dcfb2b)

Additional context

make gpflags.bypass.fly checked less

Making this issue as a reminder to me to investigate
Is your feature request related to a problem? Please describe.
Since GPF 5.13, gpflags.bypass.fly gets checked even when exiting a claim without fly. Can be annoying to players on servers that don’t use it. The fix is simple, just give the perm to the same players who have it. But it still feels yucky to have to give this permission if not using the flag

Describe the solution you'd like
I’ll need to investigate but I wonder how difficult it would be to check the players previous ability to fly from flags.

Also bring back that GPFlags prefix for this so people know what plugin is causing it

create a bypass flag

Is your feature request related to a problem? Please describe.
a few of the flags have "unless they have the bypass permission" in their description, but players themselves cannot choose who have those perm and those perm works for the entire server and not specified claims

Describe the solution you'd like
by creating a bypass flag, you could list players names, or trust levels that are not affected by the restricting claim flags

like, for example, the noelytra and noflight are applied to your town claim, but you would like for your builders to still be able to fly in order to have an easier time building: with /setflag bypass trust, everyone with the build level of access to your claim aren't flight restricted; or if you want a specific person instead /setflag bypass name

this can work well with all restrictive flags, like the noenter, instead of listing all the people who cannot enter the claim with noenterplayer, just noenter and use bypass on the people who are allowed in

NoEnter Claim Flag Suggestion

If you’re flying with an elytra and run into a claim with the noenter flag enabled you just kinda get stuck and can’t move
If possible could you make it so you like fall to the ground or get turned around instead?

[Suggestion] Locale for enter-leave message prefix

Currently players can write literally whatever they want as an enter-leave flag. This can confuse anyone walking into a claim, which could get to read a message expected in some other context, such as, for example: "You have been detected for hacking" (which may actually be a common message from an antihack plugin).

Having a configurable locale prefix would fix this, making it clear that the message in question is an enter or leave message written by a claim owner.


PD: I may PR of these reports myself, but I currently barely understand how the plugin is structured.

Flag NoEnterPlayer not working with /accesstrust public

Describe the bug
When claim has setting: /accesstrust public and /setclaimflag NoEnterPlayer playerName, playerName stil can enter the claim. With no /accesstrust public and with only NoEnterPlayer everythings works fine.

To Reproduce
Steps to reproduce the behavior:

  1. Set in claim /accesstrust public.
  2. Set /setclaimflag NoEnterPlayer playerName.
  3. Try go in with playerName to claim
  4. You can, sad.

Expected behavior
When the flag set is NoEnterPlayer denies the player to enter the claim regardless of other settings.

Versions:

  • GriefPrevention version 16.18-12-g3d0487d
  • GPFlags version 5.12.1
  • Server version Paper version git-Paper-52 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT) (Git: 6ea73e7)

"f" is null bug

Describe the bug
Upon hitting a mob inside of an adminclaim the below error appears.

To Reproduce
Steps to reproduce the behavior:

  1. create adminstrative claims
  2. use latest mcmmo, gp and gpflags
  3. hit hostile mobs
  4. See error

Expected behavior
well i expect the error to not be thrown.

Screenshots or Videos

[17:20:04 ERROR]: Could not pass event McMMOPlayerXpGainEvent to GriefPreventionFlags v5.12.4-SNAPSHOT
java.lang.NullPointerException: Cannot invoke "me.ryanhamshire.GPFlags.Flag.getFlagDefinition()" because "f" is null
	at me.ryanhamshire.GPFlags.util.Util.shouldBypass(Util.java:469) ~[GriefPreventionFlags-5.12.4-SNAPSHOT.jar:?]
	at me.ryanhamshire.GPFlags.flags.FlagDef_NoMcMMOXP.handleEvent(FlagDef_NoMcMMOXP.java:34) ~[GriefPreventionFlags-5.12.4-SNAPSHOT.jar:?]
	at me.ryanhamshire.GPFlags.flags.FlagDef_NoMcMMOXP.onPlayerGainXP(FlagDef_NoMcMMOXP.java:28) ~[GriefPreventionFlags-5.12.4-SNAPSHOT.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1384.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:git-Paper-130]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:670) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at com.gmail.nossr50.util.EventUtils.handleXpGainEvent(EventUtils.java:386) ~[mcMMO.jar:?]
	at com.gmail.nossr50.datatypes.player.McMMOPlayer.applyXpGain(McMMOPlayer.java:679) ~[mcMMO.jar:?]
	at com.gmail.nossr50.datatypes.player.McMMOPlayer.beginUnsharedXpGain(McMMOPlayer.java:643) ~[mcMMO.jar:?]
	at com.gmail.nossr50.datatypes.player.McMMOPlayer.beginXpGain(McMMOPlayer.java:630) ~[mcMMO.jar:?]
	at com.gmail.nossr50.runnables.skills.AwardCombatXpTask.run(AwardCombatXpTask.java:48) ~[mcMMO.jar:?]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.2.jar:git-Paper-130]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1492) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1416) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1192) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-130]
	at java.lang.Thread.run(Unknown Source) ~[?:?]

Configs:

Versions:

  • GriefPrevention version 16.18-RC1-15-gd75b3cd
  • GPFlags version 5.12.4-SNAPSHOT
  • Server version git-Paper-130 (MC: 1.19.2)

On setting NoEnter flag, players who DO have access are ejected, not those without access.

Describe the bug
The selection of players to eject when setting NoEnter is inverted, ejecting players WITH access. (NoEnterPlayer also fails to eject a player newly added to the list, so may have a similar problem)

To Reproduce
(1) /setclaimflag NoEnter
And the player is ejected from their own claim. All untrusted players will NOT be ejected, and can remain in the claim, but cannot re-enter once they leave.

Expected behavior
Untrusted players should be ejected.

Versions:

  • GPFlags version 5.12.8

Additional context
Appears to be an error in FlagDef_NoEnter.java, with missing ! before Util.canAccess(claim, p):

@OverRide
public void onFlagSet(Claim claim, String string) {
World world = claim.getLesserBoundaryCorner().getWorld();
for (Player p : world.getPlayers()) {
if (claim.contains(Util.getInBoundsLocation(p), false, false)) {
if (Util.canAccess(claim, p) && !p.hasPermission("gpflags.bypass.noenter")) {
GriefPrevention.instance.ejectPlayer(p);
}
}
}
}

Plugin halting startup.

Describe the bug
This log basically shows what the issue is.
GPFlags starts enabling at: [06:30:52] [Server thread/INFO]: [GPFlags] Enabling GPFlags v5.12.9
GPFlags finishes enabling at [06:46:44] [Server thread/INFO]: [GPFlags] Successfully loaded in 952.78 seconds
So basically an every now and then, the plugin halts the server increases startup time by ~950 seconds due to some network stuff happening.

Versions:

  • GriefPrevention version: 16.18.1
  • GPFlags version: 5.12.9
  • Server version: 1.20.1

Additional context
Add any other context about the problem here.

Riding a pet (from SimplePets or other plugins) allows you to bypass the NoEnter flag

Describe the bug
Riding a pet (from SimplePets or other plugins) allows you to bypass the NoEnter flag

To Reproduce
Steps to reproduce the behavior:

  1. Install SimplePets (https://ci.pluginwiki.us/job/SimplePets_v5/)
  2. Set a claim with NoEnter
  3. Summon a pet on an alt account, and ride the pet into the claim

Expected behavior
Ideally it should kick the player off the pet, similar to how it works with boats

Versions:

  • GriefPrevention version b05805a
  • GPFlags version 5.12.1
  • Server version 1.19.3

Mythic Mobs Support

If you use the ProtectNamedMobs flag, in combination with Mythic Mobs, if a Mythic Mob wonders into or spawns in your claim, they're invincible.

Hopefully Mythic Mob support can get added in the future to allow them to be damaged.

NoMobSpawns flag doesn't prevent passive mobs spawning

Describe the bug
With the NoMobSpawns flag set, passive mobs still spawn

To Reproduce
Steps to reproduce the behavior:

  1. Set no mob spawns
  2. Passive mobs spawn

Expected behavior
No passive mobs spawn

Screenshots or Videos
N/A

Configs:
N/A

Versions:

  • GriefPrevention version - 16.18
  • GPFlags version - 5.12.4
  • Server version - 1.19.1

Additional context
Add any other context about the problem here.

New Flag: NoMapMaking

Is your feature request related to a problem? Please describe.
Players on my SMP server get annoyed when they work so hard on creating a map-art that they intend on selling, only for other players to stumble across it and make their own maps from it, causing their map-arts to become essentially worthless. The issue stems from people being able to create unauthorized map-arts in someone else's claim.

Describe the solution you'd like
I just want a simple flag that stops people who aren't authorized in the claim from making maps in it. Something like "NoMapMaking" would make sense. On top of that it can't possibly be too hard to just cancel the "Make Map" event or whatever.

Describe alternatives you've considered
I've told the players that they can also cover their maparts if they dont want them stolen, but apparently that's too much hassle.

/setDefaultClaimFlag with PlayerMovementFlagDefinitions

When using /setDefaultClaimFlag with flags that extend PlayerMovementFlagDefinitions, the flag doesn't get triggered when it should.

Reproduction:

  1. Make a claim
  2. /gpflags setdefaultclaimflag entercommand bcast you entered a claim
  3. /restart
  4. Log in. If you're in the claim, walk out.
  5. When you walk back in, you'll notice that the bcast doesn't trigger.

More info:

[Feature Request] Add claim-flag to disable potion effects.

Is your feature request related to a problem? Please describe.
[Players build competitions, builds that should be viewed without night vision, etc. and other players can use potions in there to either gain an unfair advantage, or get a unintended view of the area.]

Describe the solution you'd like
A claim-flag to disable specific effects, but also a wildcard to disable all effects, all negative effects, and all positive effects

Describe alternatives you've considered

Additional context

ReadLecterns flag two issues (signed book only and chat message)

Describe the bug
Two observations:

  1. When ReadLecterns setflag is turned on, it only allows players to read signed books on lecterns, not book and quill.
  2. When ReadLecterns setflag is turned on, players get the "You don't have [player name]'s permission to use that." error message in chat, even if the book opens to be read.

To Reproduce
Steps to reproduce the behavior:
Issue 1 (Only signed books readable)

  1. Place a lectern in a claim
  2. Place a book and quill with contents written inside on the lectern
  3. Ensure that /setflag ReadLecterns is true.
  4. Have a non-trusted account attempt to access the book
  5. RESULT It gives the error message and the book isn't presented to read

Issue 2 (Chat message appears even if flag is true)

  1. Place a lectern in a claim
  2. Place a signed book on the lectern
  3. Ensure that /setflag ReadLecterns is true.
  4. Have a non-trusted account attempt to access the book
  5. RESULT It gives the error message in chat and the book is presented to read

Expected behavior

  1. Both signed books and book & quill should be readable when the flag is set.
  2. If the flag is true and the book can be read, the "You don't have [player name]'s permission to use that." error shouldn't be sent in chat.

Versions:

  • GriefPrevention version 16.18
  • GPFlags version 5.12.4
  • Server version This server is running Pufferfish version git-Pufferfish-11 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT) (Git: a593bf6 on HEAD)

Add ClaimExplosions Flag

Is your feature request related to a problem? Please describe.
/ClaimExplosions is not persistent in grief prevention

Describe the solution you'd like
Add a ClaimExplosions flag so users have the option to add persistence to toggling on or off claim explosions

[Feature Request] Add flag to disable McMMO passive skills

Is your feature request related to a problem? Please describe.
Players are attempting to create PvP arenas/events where their McMMO skills don't impact the fights. The flag currently available - ''NoMcMMOSkills'' doesn't impact impactful passive skills included in McMMO (Axe Mastery, info: https://mcmmo.fandom.com/wiki/Axes_(Combat)#Axe_Mastery) meaning that fights are still majorly decided by a players' McMMO skills,

Describe the solution you'd like
I'd like an extra flag to be added to GriefPreventionFlags that includes all McMMO benefits, including these passive skills.

Describe alternatives you've considered
Using the McMMO-included WorldGuard flags to disable McMMO, though this would be too much work to maintain properly.

Additional context
None

/claimflag noenterplayer <player> issue

Describe the bug
There is a malfunction with the noenterplayer flag.

To Reproduce
Steps to reproduce the behavior:
When using the command once towards a targeted player, the player is indeed blocked from entering the claim:
Eg: /claimflag noenterplayer __Mithrandir__

When using the command again, but inputing something else instead of a valid player name:
Eg: /claimflag noenterplayer yyyyyy
the command seems to recognize the word yyyyyyas a valid playername and unlocks the previously locked player from entring the claim.

Expected behavior
Invalid player names should not mess up the list of locked players (I am asuming the flag does ineed add to a list, and does not only lock one player).

Versions:

  • GriefPrevention version 16.18-RC1-2-g0e3a2e9
  • GPFlags version 5.11.2
  • Server version Paper 1.18.1

[Feature Request] PAPI integration

Is your feature request related to a problem? Please describe.
When using external plugins like DeluxeMenus or MyCommand, there's no way to tell whether or not a flag is set/unset inside of someone's claim, nor is it possible to view the status of any flag.

Describe the solution you'd like
A PlaceholderAPI integration to be added to GPFlags with placeholders to view whether or not a flag is set, what the value of a flag is (for instance, with the claimweather flag) and whether or not the player has permission to set flags.

Examples;
%gpflags_status_{flag}%
%gpflags_value_{flag}%
%gpflags_canset%

Describe alternatives you've considered
Getting one commissioned, though I think this is useful enough for everyone! ^_^

Additional context
Having these placeholders implemented means GUIs can be made for GPFlags externally, without the need for any Java knowledge
I already have one implemented, though the expansion is not working properly anymore, log onto thespotsmp.org to check them out (/claimflags) ^_^

Breaking no entry flag

When a player that isn't allowed in a claim tries to fly (with an Elytra) into the claim, they get stuck in the air.
Then, when they leave/rejoin, they are put inside of the claim, bypassing the no entry flag.

GriefPreventionFlags using a event that is deprecated

[GriefPreventionFlags] Enabling GriefPreventionFlags v5.11.2
[18:21:01 WARN]: [GriefPreventionFlags] "GriefPreventionFlags v5.11.2" has registered a listener for me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent on method "private void me.ryanhamshire.GPFlags.listener.PlayerListener.onChangeClaim(me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [Big_Scary, ShaneBee, DmitryRendov, DrBot].

Versions:

  • GriefPrevention version: v16.18-RC1-13-gdbbd276
  • GPFlags version: v5.11.2
  • Server version : Paper 1.18.1

ChangeBiome flag does not change the biome in negative Y level

Describe the bug
Using the claim flag ChangeBiome only changes the biome above Y: 0 and does not change the biome below Y: 0.

To Reproduce
Steps to reproduce the behavior:

  1. Stand in a claim with biome A
  2. Use the command /claimflag ChangeBiome B where B is another biome
  3. Relog
  4. Observe that biome at negative Y level stays as A

Expected behavior
The biome of the whole world height from top to bottom should change

Screenshots or Videos
2024-04-14_07 45 19

Versions:

  • GriefPrevention : 16.18.2
  • GPFlags : 5.12.11
  • Server : 1.20.4

Bought Subclaims Can Still Be Bought

Bought Subclaims Can Still Be Bought
Players have bought subclaims on my server but the message still shows up when I enter them (not when the person who bought them enters), and I can still buy the subclaims. This results in multiple managers in the trustlist.

To Reproduce
Steps to reproduce the behavior:

  1. Player buys subclaim with /buysubclaim
  2. Enter plot as another player
  3. Buy subclaim with /buysubclam
  4. Check /trustlist and find that there are multiple managers now

Expected behavior
The subclaim that a player has bought should not be available for other players to buy, nor should the message appear for them when they enter the plot.

Configs:

  • GriefPrevention config
# Default values are perfect for most servers.  If you want to customize and have a question, look for the answer here first: http://dev.bukkit.org/bukkit-plugins/grief-prevention/pages/setup-and-configuration/

GriefPrevention:
 SeaLevelOverrides:
   world: -1
   world_nether: -1
   world_the_end: -1
 Claims:
   Mode:
     world: Survival
     world_nether: Disabled
     world_the_end: Disabled
   PreventGlobalMonsterEggs: true
   PreventTheft: true
   ProtectCreatures: true
   PreventButtonsSwitches: true
   LockWoodenDoors: false
   LockTrapDoors: false
   LockFenceGates: true
   EnderPearlsRequireAccessTrust: true
   RaidTriggersRequireBuildTrust: true
   ProtectHorses: true
   ProtectDonkeys: true
   ProtectLlamas: true
   InitialBlocks: 500
   Claim Blocks Accrued Per Hour:
     Default: 100
   Max Accrued Claim Blocks:
     Default: 80000
   Accrued Idle Threshold: 0
   AccruedIdlePercent: 0
   AbandonReturnRatio: 1.0
   AutomaticNewPlayerClaimsRadius: 4
   AutomaticNewPlayerClaimsRadiusMinimum: 0
   ExtendIntoGroundDistance: 99999
   MinimumWidth: 5
   MinimumArea: 20
   MaximumDepth: -2147483648
   InvestigationTool: STICK
   ModificationTool: GOLDEN_SHOVEL
   Expiration:
     ChestClaimDays: 7
     UnusedClaimDays: 30
     AllClaims:
       DaysInactive: 60
       ExceptWhenOwnerHasTotalClaimBlocks: 10000
       ExceptWhenOwnerHasBonusClaimBlocks: 10000
     AutomaticNatureRestoration:
       SurvivalWorlds: false
   AllowTrappedInAdminClaims: false
   MaximumNumberOfClaimsPerPlayer: 0
   CreationRequiresWorldGuardBuildPermission: true
   VillagerTradingRequiresPermission: true
   CommandsRequiringAccessTrust: /sethome
   DeliverManuals: true
   ManualDeliveryDelaySeconds: 30
   RavagersBreakBlocks: true
   FireSpreadsInClaims: false
   FireDamagesInClaims: false
   LecternReadingRequiresAccessTrust: true
 Spam:
   Enabled: true
   LoginCooldownSeconds: 60
   LoginLogoutNotificationsPerMinute: 5
   ChatSlashCommands: /me;/global;/local
   WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
   WarningMessage: Please reduce your noise level.
   BanOffenders: false
   BanMessage: Banned for spam.
   AllowedIpAddresses: 1.2.3.4; 5.6.7.8
   DeathMessageCooldownSeconds: 120
   Logout Message Delay In Seconds: 0
 PvP:
   RulesEnabledInWorld:
     world: false
     world_nether: false
     world_the_end: false
   ProtectFreshSpawns: true
   PunishLogout: true
   CombatTimeoutSeconds: 15
   AllowCombatItemDrop: false
   BlockedSlashCommands: /home;/vanish;/spawn;/tpa
   ProtectPlayersInLandClaims:
     PlayerOwnedClaims: true
     AdministrativeClaims: false
     AdministrativeSubdivisions: true
   AllowLavaDumpingNearOtherPlayers:
     PvPWorlds: true
     NonPvPWorlds: false
   AllowFlintAndSteelNearOtherPlayers:
     PvPWorlds: true
     NonPvPWorlds: false
   ProtectPetsOutsideLandClaims: false
 Economy:
   ClaimBlocksMaxBonus: 80000
   ClaimBlocksPurchaseCost: 2.0
   ClaimBlocksSellValue: 1.0
 ProtectItemsDroppedOnDeath:
   PvPWorlds: false
   NonPvPWorlds: true
 BlockLandClaimExplosions: false
 BlockSurfaceCreeperExplosions: false
 BlockSurfaceOtherExplosions: false
 LimitSkyTrees: false
 LimitTreeGrowth: false
 PistonMovement: EVERYWHERE
 PistonExplosionSound: true
 FireSpreads: true
 FireDestroys: true
 AdminsGetWhispers: true
 AdminsGetSignNotifications: true
 VisualizationAntiCheatCompatMode: false
 SmartBan: true
 Mute New Players Using Banned Words: true
 MaxPlayersPerIpAddress: 3
 SilenceBans: true
 Siege:
   Worlds: []
   BreakableBlocks:
   - GRASS_BLOCK
   - DIRT
   - COBBLESTONE
   - OAK_PLANKS
   - SPRUCE_PLANKS
   - BIRCH_PLANKS
   - JUNGLE_PLANKS
   - ACACIA_PLANKS
   - DARK_OAK_PLANKS
   - SAND
   - GRAVEL
   - GLASS
   - GRASS
   - FERN
   - DEAD_BUSH
   - WHITE_WOOL
   - ORANGE_WOOL
   - MAGENTA_WOOL
   - LIGHT_BLUE_WOOL
   - YELLOW_WOOL
   - LIME_WOOL
   - PINK_WOOL
   - GRAY_WOOL
   - LIGHT_GRAY_WOOL
   - CYAN_WOOL
   - PURPLE_WOOL
   - BLUE_WOOL
   - BROWN_WOOL
   - GREEN_WOOL
   - RED_WOOL
   - BLACK_WOOL
   - SNOW
   - GLASS_PANE
   DoorsOpenDelayInSeconds: 300
   CooldownEndInMinutes: 60
 EndermenMoveBlocks: false
 SilverfishBreakBlocks: false
 CreaturesTrampleCrops: false
 RabbitsEatCrops: true
 HardModeZombiesBreakDoors: false
 Database:
   URL: ''
   UserName: ''
   Password: ''
 UseBanCommand: false
 BanCommandPattern: ban %name% %reason%
 Advanced:
   fixNegativeClaimblockAmounts: true
   ClaimExpirationCheckRate: 60
   OfflinePlayer_cache_days: 90
 Abridged Logs:
   Days To Keep: 7
   Included Entry Types:
     Social Activity: true
     Suspicious Activity: true
     Administrative Activity: false
     Debug: false
     Muted Chat Messages: false
 ConfigVersion: 1
  • GPFlags config
 # GriefPrevention Flags
# Plugin Version: 5.12.9
# Server Version: git-Paper-132 (MC: 1.20.1)

Settings:
  Log Enter/Exit Messages To Console: true
World Flags:
  world:
    Default Gamemode: survival
    PvP Only In PvP-Flagged Claims: false
    Message To Send When PvP Is Denied: Player vs. player combat is restricted to
      designated areas.
    Send Message On Enter PvP Enabled Claim: false
    Message: PvP is enabled in this claim, be careful
    Send Message On Exit PvP Enabled Claim: false
    ExitMessage: PvP is disabled in this area, you are now safe
    NoMonsterSpawn Flag Ignores Spawners and Eggs: true
    NoMobSpawn Flag Ignores Spawners and Eggs: true
  world_nether:
    Default Gamemode: survival
    PvP Only In PvP-Flagged Claims: false
    Message To Send When PvP Is Denied: Player vs. player combat is restricted to
      designated areas.
    Send Message On Enter PvP Enabled Claim: false
    Message: PvP is enabled in this claim, be careful
    Send Message On Exit PvP Enabled Claim: false
    ExitMessage: PvP is disabled in this area, you are now safe
    NoMonsterSpawn Flag Ignores Spawners and Eggs: true
    NoMobSpawn Flag Ignores Spawners and Eggs: true
  world_the_end:
    Default Gamemode: survival
    PvP Only In PvP-Flagged Claims: false
    Message To Send When PvP Is Denied: Player vs. player combat is restricted to
      designated areas.
    Send Message On Enter PvP Enabled Claim: false
    Message: PvP is enabled in this claim, be careful
    Send Message On Exit PvP Enabled Claim: false
    ExitMessage: PvP is disabled in this area, you are now safe
    NoMonsterSpawn Flag Ignores Spawners and Eggs: true
    NoMobSpawn Flag Ignores Spawners and Eggs: true
  • Example for a flag with the issue (same for all other flags)
'13':
  buysubclaim:
    params: '20000'
    value: true

Versions:

  • GriefPrevention version: 16.18.1
  • GPFlags version: 5.12.9
  • Server version: 1.20.1 (Paper)

Additional context
One of the players has bought a plot and the money was taken from them but manager trust was not given to them, as if they hadn't bought the plot. This has only happened once so far but I thought I'd mention.

Unset a claim flag for every claim from console

Hello DrBot.

Please please can we get an update to allow us to remove certain claim flags from every claim that a player has.

I want to add the "Owner Fly" flag to a Rank as a perk, and when that rank expires the console will them run a command to remove the owner fly flag from all of that players claims.

For example. "/unsetclaimflagplayer OwnerFly all"
gggggggggg

Allowpvp doesn't work

When pvp protection is disabled in GriefPrevention config when allowpvp value is set to false, people still can fight.
When pvp protection is enabled in GriefPrevention config when allowpvp value is set to true, people still can't fight.
Either way I think it's a bug
GriefPrevention 16.17.1-33-g6debf36
GriefPreventionFlags 5.11.2
Paper 1.18-22

Blocked Flag Combinations Configuration

I'd really like flight flags to be incompatible with having pvp allowed flags in claims. Can I currently achieve this? Or could there be an option for both flags to cancel out?

Would also be nice if flight mode got optionally disabled when receiving potion, projectile or melee damage. Any kind of damage would also do if lazy.

I think these two optional measures together should be enough to fix pvp abuse with flying.

exiting claim with portal problem

hi
Describe the bug
when you in a claim that have a exitcommand or exitcommandplayer enabled and leave the claim via portal(end or nehter) that it's in the same claim, is count as leaving the claim like leaving from the border of the claim

To Reproduce
Steps to reproduce the behavior:

  1. create a claim
  2. set a exitcommand or exitcommandflag
  3. create a portal end portal in the claim
  4. enter the portal to enter the end

Expected behavior
player leave the claim without executing the command.

Versions:

  • GriefPrevention version= 16.18 build9 (16.18-9-gd75b3cd)
  • GPFlags version= 5.12.1
  • Server version= paper 1.19 build 58

OwnerFly and OwnerMemberFly still toggling fly on/off when flag is removed

Describe the bug
The OwnerFly and OwnerMemberFly flags both cause the same issue; When deactivating one of these flags after having one of them active, flight gets toggled off for anyone (except for people with the bypass permission). The only way to resolve this issue is to restart the server entirely. The NoFlight flag however doesn't have this issue.

To Reproduce
Steps to reproduce the behavior:

  1. Create a claim and set the OwnerFly or OwnerMemberFly flag
  2. Remove the flag from the claim
  3. When you enter/exit the claim fly will get toggled off for anyone (except for the people that have bypass permissions)

Expected behavior
If the flag is removed from the claim flight doesn't get toggled on/off

Screenshots or Videos
If applicable, add screenshots to help explain your problem.

Configs:

Versions:

  • GriefPrevention version: latest available version
  • GPFlags version: latest available version
  • Server version: purpur 1.19.4 latest available version

Improve the handling of players using legacy formatting codes

When attempting to create an enter or exit message post MiniMessage compatibility, using a legacy code (eg. "&6") will result in a successful command execution, but the message will not be seen upon entering or exiting the claim.

This can be confusing to players who are unaware of the transition to MiniMessage formatting, and reported as a bug. (which it is, sort of)
Can also clog up console, seeing that every time one of these dissapeared messages is triggered, the server with throw a large error.

Instead of the message dissapearing, the exit or enter message should either

  • (Ideally) Show up as expected, with the legacy color codes visible in the message to indicate they have not worked (eg. "&6Welcome!")
  • (Less ideally) Fail to format the message, but dissapear, leaving the message intact (eg. "Wecome!"
  • (Worst case scenario) Fail to execute, sending an error to the user asking for the use of MiniMessage) (Not good, what if people want to use an & in their message?)
  • (Impossibly Ideal) Work anyway, like older versions

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.