BentoBoxWorld / Limits

Limits blocks and entities on islands - for BentoBox
Eclipse Public License 2.0
8 stars 17 forks source link

Limits not working on AOneBlock #147

Open FrontierPixelmon opened 2 years ago

FrontierPixelmon commented 2 years ago

Expected behavior

We want to have different hopper limits for each rank in our AOneBlock server.

We tried setting the top rank at 400, and the default rank at 10

Top Rank: aoneblock.island.limit.hopper.400 Default Rank: aoneblock.island.limit.hopper.10

When the default player uses "/ob limits" we want the limits to change when they hover over the item in the GUI to the limit that has been assigned. Ex: Default rank should show 0/10 if they have none placed and the top rank should show 0/400 if they have none placed.

Observed/Actual behavior

So far I've tried a few ways to configure.

1st: Set limit in config to the limit I want the default rank to have: hopper:10 Give the first rank a value above that default limit: aoneblock.island.limit.hopper.11 Restart the server Player joins and uses: /ob limits Limits still says 0/10 and the player cannot place more than 10 (they should have perms for a limit of 11)

2nd: Set limit in config to the limit I want the top rank to have: hopper:400 Give the first rank a value above that default limit: aoneblock.island.limit.hopper.10 Restart the server Player joins and uses: /ob limits Limits still says 0/400 and the player can place more than the 10 they were assigned by perms

Seems like the perms are being ignored or this plugin is broken for AOneBlock

Steps/models to reproduce

There are no errors in console, the only way I can suggest this can be reproduced is have a server running:

Paper: git-Paper-301 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: e14aff9) BentoBox: BentoBox-1.17.3.jar AOneBlock Addon: AOneBlock-1.8.1.jar Limits Addon: Limits-1.17.2.jar

BentoBox version

Running PAPER 1.17.1. BentoBox version: 1.17.3 Database: JSON Loaded Game Worlds: oneblock_world (OneBlock): Overworld, Nether* Loaded Addons: AOneBlock 1.8.1 (ENABLED) Bank 1.3.2 (ENABLED) Border 3.2.0 (ENABLED) Challenges 0.8.4 (ENABLED) Chat 1.1.4 (ENABLED) ControlPanel 1.13.0 (ENABLED) Level 2.7.2 (ENABLED) Limits 1.17.2 (ENABLED) Upgrades 0.2.0-SNAPSHOT-b84 (ENABLED) Warps 1.11.1 (ENABLED)

Plugin list

Plugins (53): AdvancedColorAPI, AdvancedDevelopmentLibrary, AdvancedEnchantments, AlonsoTags, AuctionHouse, BankPlus, BentoBox, BuycraftX, Chunky, Citizens, ClearLag, CMI, CMILib, CoreProtect, CustomCommands, DeathPenalties, DeluxeCoinflip, FastAsyncWorldEdit (WorldEdit), floodgate, GCore, GoldenCrates, GuiRedeemMCMMO, HolographicDisplays, JetsMinions, LuckPerms, mcMMO, MoneyPouch, Multiverse-Core, NBTAPI, NexEngine, NightVision*, PinataParty, PlaceholderAPI, PlayerVaults, ProCasino, ProCosmetics, ProtocolLib, ProVotes, QuickShop, RoseStacker, SafariNet, spark, TAB, TempFly, TokenManager, UpgradeableHoppers, Vault, VoidGen, Votifier, Voting, WorldBorderAPI, WorldGuard, WorldGuardExtraFlags

Other

No response

tastybento commented 2 years ago

Is AOneBlock listed as an active game mode in config.yml?

# Game Modes covered by limits
gamemodes:
- AcidIsland
- BSkyBlock
- CaveBlock
FrontierPixelmon commented 2 years ago

Yes, here is my config:

# Game Modes covered by limits
gamemodes:
- AcidIsland
- BSkyBlock
- CaveBlock
- AOneBlock

# Permissions
# Island owners can be given permissions that override all general settings
# Format is GAME-MODE-NAME.island.limit.MATERIAL.LIMIT
# example: bskyblock.island.limit.hopper.10
# permission activates when player logs in.
#
# Cooldown for player recount command in seconds
cooldown: 120

# Use async checks for snowmen and iron golums. Set to false if you see problems.
async-golums: true

# General block limiting
# Use this section to limit how many blocks can be added to an island.
# 0 means the item will be blocked from placement completely.
# These limits apply to every game mode world
blocklimits:
  HOPPER: 10
# This section is for world-specific limits and overrides the general limit
# Specify each world you want to limit individually (including nether and end worlds)
# If these worlds are not covered by the game modes above, nothing will happen
worlds:
  oneblock_world:
    HOPPER: 11

# Default entity limits within a player's island space (protected area and to island limit).
# A limit of 5 will allow up to 5 entities in over world, 5 in nether and 5 in the end.
# Affects all types of creature spawning. Also includes entities like MINECARTS.
# Note: Only the first 49 limited blocks and entities are shown in the limits GUI.
entitylimits:
  ENDERMAN: 5
  CHICKEN: 10
FrontierPixelmon commented 2 years ago

I also noticed in the source code that AOneBlock is not listed as a soft dependency? Would that be an issue?

tastybento commented 2 years ago

I'll have to try and replicate it - bit busy right now, but I'll have a try on the weekend.

tastybento commented 2 years ago

Hmm, I can't replicate this. I set AOneBlock to be used by Limits. Then I used LuckPerms and gave myself the permission aoneblock.island.limit.hopper.400 and it correctly shows I have a limit of 400. I also gave myself the perm aoneblock.island.limit.hopper.10 and my limit remains at 400, which is correct (it should be the maximum if there are more than 1 identical perm limits).

How are you doing ranks? Maybe that's the issue.

> lp user tastybento permission clear
[09:25:59 INFO]: [LP] tastybento's permissions were cleared in context global. (2 nodes were removed.)
[09:26:06 INFO]: UUID of player tastybento is 5988eecd-1dcd-4080-a843-785b62419abb
[09:26:06 INFO]: tastybento joined the game
[09:26:06 INFO]: tastybento[/127.0.0.1:62169] logged in with entity id 265 at ([oneblock_world]0.5, 81.0, 800.5)
[09:26:10 INFO]: tastybento issued server command: /ob limits
[09:26:17 INFO]: tastybento lost connection: Disconnected
[09:26:17 INFO]: tastybento left the game
> lp user tastybento permission set aoneblock.island.limit.hopper.400
[09:26:41 INFO]: [LP] Set aoneblock.island.limit.hopper.400 to true for tastybento in context global.
[09:26:49 INFO]: UUID of player tastybento is 5988eecd-1dcd-4080-a843-785b62419abb
[09:26:49 INFO]: tastybento joined the game
[09:26:49 INFO]: tastybento[/127.0.0.1:62178] logged in with entity id 268 at ([oneblock_world]0.5, 81.0, 800.5)
[09:26:54 INFO]: tastybento issued server command: /ob limits
[09:27:26 INFO]: tastybento lost connection: Disconnected
[09:27:26 INFO]: tastybento left the game
Screen Shot 2021-10-09 at 9 27 00 AM 1
FrontierPixelmon commented 2 years ago

So I have 5 ranks, each rank inherits the permissions below it, the first rank inherits the default rank. Here is how my ranks inherit one another.

Netherite Rank --> Emerald Rank Emerald Rank --> Diamond Rank Diamond Rank --> Gold Rank Gold Rank --> Redstone Rank Redstone Rank --> Copper Rank Copper Rank --> Default

The netherite rank has: aoneblock.island.limit.hopper.400

The default rank has: aoneblock.island.limit.hopper.150

My config has the limit of 150 for the block: hoppers

When I take away all my admin perms and * and only set myself yo rank netherite and logout of the server then log in to update my perms and use the command: /ob limits

The hopper limit stays at 150

Can you please paste your config for limits? As well as tell me what versions you are running? Also are you running spigot or paper?

FrontierPixelmon commented 2 years ago

Something that we do is we also set context for every permission for our servers. For example when we set aoneblock.island.limit.hopper.400 we set the context to server=oneblock

FrontierPixelmon commented 2 years ago

image

FrontierPixelmon commented 2 years ago

Here is what I mean by the contexts. But that wouldnt be an issue because every other permission works even the permission to use the command /ob limits

FrontierPixelmon commented 2 years ago

Could it also possibly have an issue with being on a bungee coord network?

tastybento commented 2 years ago

The Limits config I'm using is just out-of-the-box but with AOneBlock added to the list:

# Game Modes covered by limits
gamemodes:
- AcidIsland
- BSkyBlock
- CaveBlock
- AOneBlock

# Permissions
# Island owners can be given permissions that override all general settings
# Format is GAME-MODE-NAME.island.limit.MATERIAL.LIMIT
# example: bskyblock.island.limit.hopper.10
# permission activates when player logs in.
#
# Cooldown for player recount command in seconds
cooldown: 120

# Use async checks for snowmen and iron golums. Set to false if you see problems.
async-golums: true

# General block limiting
# Use this section to limit how many blocks can be added to an island.
# 0 means the item will be blocked from placement completely.
# These limits apply to every game mode world
blocklimits:
  HOPPER: 10
# This section is for world-specific limits and overrides the general limit
# Specify each world you want to limit individually (including nether and end worlds)
# If these worlds are not covered by the game modes above, nothing will happen
worlds:
  oneblock_world:
    HOPPER: 11

# Default entity limits within a player's island space (protected area and to island limit).
# A limit of 5 will allow up to 5 entities in over world, 5 in nether and 5 in the end.
# Affects all types of creature spawning. Also includes entities like MINECARTS.
# Note: Only the first 49 limited blocks and entities are shown in the limits GUI.
entitylimits:
  ENDERMAN: 5
  CHICKEN: 10

I'm running the latest build of Paper.

I'm sure it's nothing to do with bungee cord. Also, I assume that this is not actually specific to AOneBlock - I expect if you had BSkyBlock running it'd do the same. I do suspect it is something to do with permissions and how they are setup.

Could you start with a test server with BentoBox and LP perms but no perms and then just confirm that it all works? Then I suggest to try adding your ranks and see what happens.

FrontierPixelmon commented 2 years ago

Ok so I created a test server with only paper, bentobox with the addons we have in our server for it: AOneBlock, Bank, Border, Challenges, Chat, ControlPanel, Level, Limits, Upgrades, Warps

Every addon has the default config, I copied the config you sent above to the Limits config and saved then restarted the server.

When I have no perms it says 0/11 which is correct because of this in the config: worlds: oneblock_world: HOPPER: 11

Then i use the command in console: lp user mrdefined permission set aoneblock.island.limit.hopper.400

I then restart the server and make sure I have that permission by using: lp user mrdefined permission check aoneblock.island.limit.hopper.400 and I in fact do have permission.

Here is my lp editor for proof: image

Then when I use /ob limits it still says: 0/11

Can you please try with the version of paper I am using?

version [20:42:41 INFO]: Checking version, please wait... [20:42:41 INFO]: This server is running Paper version git-Paper-301 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: e14aff9)

FrontierPixelmon commented 2 years ago

I also made sure to download the latest paper version "paper-1.17.1-325" and try with that but the same issue. I am using the latest version of LuckPerms for spigot "LuckPerms-Bukkit-5.3.69"

FrontierPixelmon commented 2 years ago

Ahhhh, so I found something! I took out every other addon I had and it worked... Looks like it is clashing with one of your other addons!

FrontierPixelmon commented 2 years ago

So I found out after removing all of the other addons 1 by 1 this addon made Limits not work: Upgrades-0.2.0-SNAPSHOT-b84

Something in upgrades is causing the limits to act up :) Hopefully you find what it is because we need upgrades 😭