BentoBoxWorld / Level

Add on for BentoBox to calculate island levels for BSkyBlock and AcidIsland. Please read the Wiki!
Eclipse Public License 2.0
25 stars 32 forks source link

Level fluctations #170

Closed wellnesscookie closed 4 years ago

wellnesscookie commented 4 years ago

Description

Describe the bug

Greetings,

We have been experiencing this bug for long time. The island level fluctates for (at the moment) for no reason I have to believe in anymore. If I remember correct, I investigated this months ago, and learned that some automated farms wait for crops to grow before harvesting them automatically. So if the farm had 4 cactuses grown to a size of 2, the level would not be the same as if the /island level command was run a few minutes earlier/later.

Players have been complaining to this for a long time, so I tried seeking the problem again today, but without success. I calculated his level repeatedly in intervals of a few seconds, and you can see that the points change up and down for no reason, even tho I think most of the members were even offline at the moment. Screenshot_1

You can see the points changing 12, 5, 6, 12, 7. Sometimes it even changes a level if it fluctates more than expected.

Steps to reproduce the behavior

SCHEMATIC: wellnesscookie208.zip

NOTE: The island is 100x100. The schematic is made at the Y: 208 and max-X and max-Z coordinates of island corner.

Expected behavior

Environment

Output of /bbox version (Mandatory)
[15:01:30] [main/INFO]: [CHAT] Running PAPER 1.15.2.
[15:01:30] [main/INFO]: [CHAT] BentoBox version: 1.13.1
[15:01:30] [main/INFO]: [CHAT] Database: MYSQL
[15:01:30] [main/INFO]: [CHAT] Loaded Game Worlds:
[15:01:30] [main/INFO]: [CHAT] skyblock (skyblock): Overworld, [nether_color]Nether, [end_color]End
[15:01:30] [main/INFO]: [CHAT] Loaded Addons:
[15:01:30] [main/INFO]: [CHAT] BentoBox-InvSwitcher 0.0.4 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Biomes 1.7.0 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] BSkyBlock 1.13.1 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Challenges 0.8.2 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Chat 1.0.3-SNAPSHOT-LOCAL (ENABLED)
[15:01:30] [main/INFO]: [CHAT] ControlPanel 1.7.0 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] DimensionalTrees 1.6.0 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] IslandUpgrade 1.0 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Level 2.0.0 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Limits 1.12.2 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] SerbCraftAddon 2.5 (ENABLED)
[15:01:30] [main/INFO]: [CHAT] Warps 1.9.3 (ENABLED)

Plugins (Optional)

[15:04:14] [main/INFO]: [CHAT] Plugins (56): AnimatedNames*, AreaShop, ArmorStandTools, BentoBox, BookDuplicationFix*, BungeeTabListPlus, ChatControl, ChestCommands, ChestCommandsLogger, ChestShop, Citizens, CitizensDaily*, ClaimSystem*, ClearLag*, CrateReloaded, EditableSign, Essentials, EssentialsChat, EssentialsSpawn, ExecuteEverywhere*, FeatherBoard*, HeadDatabase*, HolographicDisplays, HungerKeeperPlus*, IllegalStack, IPWhitelist*, IslandBorder, LibsDisguises, LuckPerms, Multiverse-Core*, MVdWPlaceholderAPI*, MythicMobs, NickRemover*, NoSleepCMDs*, OpenInv, PlayerPoints*, ProtocolLib, PvPManager, PvPManagerBossBar*, RedstoneClockDetector*, Relative_Coordculator, SCElytraFix*, SilkSpawners, SkinsRestorer, TradePlus, TrophyHeads*, UnbreakingAnvils*, Vault, ViaBackwards, ViaVersion, VoidGenerator, WorldEdit, WorldGuard, WorldGuardPistonFix, WorldGuardSBevent, Yamler*
Poslovitch commented 4 years ago

Please note that there were around 100 animals on it (counting horses, donkeys, sheeps, etc) and a working iron golem farm, turned on redstone clock for cobblestone generator, etc. (if it helps in reproducing)

What about the items in chests / hoppers ? I've heard they can now be counted into the island level.

wellnesscookie commented 4 years ago

I have no idea, is there a list of those items somewhere? If so, I'd need to check them. But as I've said, the problem is here for long time, since 1.13.2 for sure.

EDIT: Though the extreme complaining began since 1.15.2 migration of ours. Maybe it indeed is a problem of that.

tastybento commented 4 years ago

I recommend you try Level 2.3.0 which goes with BentoBox 1.14.0. I did a rewrite of the code and it is much more stable and better. It can also scan chests. I tried your schematic and I ran level in the console 5 times. Twice I did it when I was online and on the island. Twice I did it when I was offline and finally I rebooted and tried it with me offline. All of the results were the same. Here is the report:

Level Log for island in BSkyBlock at 0,120,800
--
Island owner UUID = 36b2293a-ac0a-4f73-bc35-b12af97bee2b
Total block value count = 77,823
Formula to calculate island level: blocks / level_cost
Level cost = 100
Deaths handicap = 0
Initial island level = -3
Level calculated = 775
[13:57:39 INFO]: [BentoBox] ==================================
[13:57:39 INFO]: [BentoBox] Regular block count
[13:57:39 INFO]: [BentoBox] Total number of blocks = 1,203,628
[13:57:39 INFO]: [BentoBox] AIR:1,158,359 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] STONE_BRICKS:20,205 blocks x 2 = 40410
[13:57:39 INFO]: [BentoBox] STONE:19,722 blocks x 1 = 19722
[13:57:39 INFO]: [BentoBox] TORCH:1,073 blocks x 1 = 1073
[13:57:39 INFO]: [BentoBox] GRASS_BLOCK:980 blocks x 4 = 3920
[13:57:39 INFO]: [BentoBox] GLOWSTONE:817 blocks x 1 = 817
[13:57:39 INFO]: [BentoBox] OAK_LEAVES:714 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] LIME_STAINED_GLASS:399 blocks x 2 = 798
[13:57:39 INFO]: [BentoBox] WATER:135 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] BIRCH_LEAVES:111 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] ACACIA_LEAVES:98 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] VINE:96 blocks x 1 = 96
[13:57:39 INFO]: [BentoBox] GLASS:88 blocks x 2 = 176
[13:57:39 INFO]: [BentoBox] IRON_BLOCK:74 blocks x 10 = 740
[13:57:39 INFO]: [BentoBox] SPRUCE_LOG:70 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] CHEST:62 blocks x 8 = 496
[13:57:39 INFO]: [BentoBox] LAPIS_BLOCK:51 blocks x 10 = 510
[13:57:39 INFO]: [BentoBox] MYCELIUM:51 blocks x 5 = 255
[13:57:39 INFO]: [BentoBox] OAK_LOG:44 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] STONE_SLAB:40 blocks x 1 = 40
[13:57:39 INFO]: [BentoBox] COCOA:35 blocks x 1 = 35
[13:57:39 INFO]: [BentoBox] REDSTONE_WIRE:27 blocks x 1 = 27
[13:57:39 INFO]: [BentoBox] COBBLESTONE_WALL:26 blocks x 1 = 26
[13:57:39 INFO]: [BentoBox] EMERALD_BLOCK:26 blocks x 150 = 3900
[13:57:39 INFO]: [BentoBox] REPEATER:24 blocks x 6 = 144
[13:57:39 INFO]: [BentoBox] FURNACE:23 blocks x 8 = 184
[13:57:39 INFO]: [BentoBox] STONE_BRICK_STAIRS:22 blocks x 2 = 44
[13:57:39 INFO]: [BentoBox] SPRUCE_LEAVES:16 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] REDSTONE_BLOCK:15 blocks x 10 = 150
[13:57:39 INFO]: [BentoBox] GOLD_BLOCK:15 blocks x 150 = 2250
[13:57:39 INFO]: [BentoBox] LAVA:12 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] STRIPPED_OAK_LOG:12 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] SPRUCE_PLANKS:12 blocks x 1 = 12
[13:57:39 INFO]: [BentoBox] PISTON:12 blocks x 2 = 24
[13:57:39 INFO]: [BentoBox] WHITE_BED:12 blocks x 6 = 72
[13:57:39 INFO]: [BentoBox] OAK_WALL_SIGN:11 blocks x 6 = 66
[13:57:39 INFO]: [BentoBox] COBBLESTONE:11 blocks x 1 = 11
[13:57:39 INFO]: [BentoBox] OBSIDIAN:10 blocks x 10 = 100
[13:57:39 INFO]: [BentoBox] DIRT:9 blocks x 3 = 27
[13:57:39 INFO]: [BentoBox] JUNGLE_LOG:9 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] COARSE_DIRT:9 blocks x 2 = 18
[13:57:39 INFO]: [BentoBox] SLIME_BLOCK:8 blocks x 10 = 80
[13:57:39 INFO]: [BentoBox] JACK_O_LANTERN:8 blocks x 2 = 16
[13:57:39 INFO]: [BentoBox] STRIPPED_BIRCH_LOG:7 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] CRAFTING_TABLE:7 blocks x 1 = 7
[13:57:39 INFO]: [BentoBox] BIRCH_LOG:6 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] NETHER_PORTAL:6 blocks x 1 = 6
[13:57:39 INFO]: [BentoBox] DIAMOND_BLOCK:5 blocks x 300 = 1500
[13:57:39 INFO]: [BentoBox] WALL_TORCH:5 blocks x 1 = 5
[13:57:39 INFO]: [BentoBox] STRIPPED_ACACIA_LOG:5 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] HOPPER:4 blocks x -10 = -40
[13:57:39 INFO]: [BentoBox] STICKY_PISTON:3 blocks x 1 = 3
[13:57:39 INFO]: [BentoBox] STONE_BRICK_SLAB:3 blocks x 1 = 3
[13:57:39 INFO]: [BentoBox] REDSTONE_TORCH:2 blocks x 5 = 10
[13:57:39 INFO]: [BentoBox] STONE_BUTTON:2 blocks x 1 = 2
[13:57:39 INFO]: [BentoBox] COMPOSTER:2 blocks x 9 = 18
[13:57:39 INFO]: [BentoBox] IRON_ORE:2 blocks x 1 = 2
[13:57:39 INFO]: [BentoBox] OAK_TRAPDOOR:2 blocks x 3 = 6
[13:57:39 INFO]: [BentoBox] ACACIA_LOG:2 blocks x 0 = 0
[13:57:39 INFO]: [BentoBox] LEVER:1 blocks x 1 = 1
[13:57:39 INFO]: [BentoBox] SMOOTH_STONE:1 blocks x 1 = 1
[13:57:39 INFO]: [BentoBox] BREWING_STAND:1 blocks x 20 = 20
[13:57:39 INFO]: [BentoBox] LECTERN:1 blocks x 8 = 8
[13:57:39 INFO]: [BentoBox] IRON_TRAPDOOR:1 blocks x 4 = 4
[13:57:39 INFO]: [BentoBox] NOTE_BLOCK:1 blocks x 10 = 10
[13:57:39 INFO]: [BentoBox] SPRUCE_FENCE:1 blocks x 2 = 2
[13:57:39 INFO]: [BentoBox] CHIPPED_ANVIL:1 blocks x 9 = 9
[13:57:39 INFO]: [BentoBox] SPRUCE_TRAPDOOR:1 blocks x 3 = 3
[13:57:39 INFO]: [BentoBox] BEDROCK:1 blocks x 1 = 1
[13:57:39 INFO]: [BentoBox] HEAVY_WEIGHTED_PRESSURE_PLATE:1 blocks x 2 = 2
[13:57:39 INFO]: [BentoBox] WHITE_CARPET:1 blocks x 1 = 1
[13:57:39 INFO]: [BentoBox] Subtotal = 77823
[13:57:39 INFO]: [BentoBox] ==================================
[13:57:39 INFO]: [BentoBox] Blocks not counted because they exceeded limits: 0
[13:57:39 INFO]: [BentoBox] ==================================
[13:57:39 INFO]: [BentoBox] Blocks on island that are not in config.yml
[13:57:39 INFO]: [BentoBox] Total number = 1,158,496
[13:57:39 INFO]: [BentoBox] WATER: 136 blocks
[13:57:39 INFO]: [BentoBox] AIR: 1,158,360 blocks
[13:57:39 INFO]: [BentoBox] ==================================

Now, even with this there are some gotchas - one is for example with farming - if you give points for say, melons then that will not include melon_stems or attached_melon_stems, all of which are different. Also, I've noticed that when I started counting stuff in chests, it counted differently, for example, beds are two blocks in the world, but only one in the chest. I have an open bug on these small differences #167 .

Do you count the nether too on your server? There was a bug previously where the island zeroing was not including the generated nether ceiling. So you could really jack up your island level by going to the nether and moving around.

wellnesscookie commented 4 years ago

Hello again,

Sorry for waiting, it takes time for us to find the best hours to move 90+ of our players and announce the maintenance mode for our production SkyBlock server to update. We have done it in the early hours and so far, the level calculations seem to be very stable. It fluctated +- 1 point of 100 (per level), but it might even be due to the players online on the islands, placing and removing something.

As for the question you asked: - We did not include nether & end in the calculations.

If you don't mind, I hope you can leave the task for a day or two more, so I can see how it goes and check if there are some any odd reports from our players. I will let you know what and if something happens. Thanks!

wellnesscookie commented 4 years ago

Seems fine for now, even tho https://github.com/BentoBoxWorld/Level/issues/172 is the one we are issuing at the moment. I believe this one you can close.

EDIT: We can update our addon to the latest jenkins build if it's recommandable.