Commit Graph

2836 Commits

Author SHA1 Message Date
tastybento
c28ecb1c74 Add null check. Not really needed but make Sonar happy. 2023-06-29 17:29:04 -07:00
tastybento
4c0cb9f17c Unregisters worlds with MV on shutdown.
Fixes #2149
2023-06-26 22:08:49 -07:00
tastybento
0038c3f2b7 Remove boolean return for listener. Check event cancelation instead. 2023-06-24 15:22:23 -07:00
tastybento
66d27e7070
Merge pull request #2148 from BentoBoxWorld/sculk_cal
Adds calibrated sculk sensor to protection
2023-06-24 12:55:36 -07:00
tastybento
4b0c5ec894
Merge pull request #2147 from BentoBoxWorld/suspicious_brushing
Protect against brushing
2023-06-24 12:12:00 -07:00
tastybento
1a416d9a23 Fixes #2137 adds calibrated sculk sensor and test class 2023-06-24 12:11:08 -07:00
tastybento
74e053ef8a Protect against brushing
Fixes #2138
2023-06-24 11:31:14 -07:00
tastybento
2ed2492ce3
Merge pull request #2146 from BentoBoxWorld/Ignore_waxed_signs
If sign is waxed (not editable) then no check is required
2023-06-24 11:13:33 -07:00
tastybento
2b4e1dd5eb Update to 1.21.1 to get isWaxed API
Remove 1.20 from server compatibility as a result.
2023-06-24 11:11:51 -07:00
tastybento
b50063685f If sign is waxed (not editable) then no check is required 2023-06-24 10:31:51 -07:00
tastybento
a7ffb79f1d
Merge branch 'develop' into bbox_perms_command 2023-06-24 10:15:34 -07:00
tastybento
4d295068cf Fix onlyConsole usage and added test class 2023-06-24 09:45:40 -07:00
tastybento
bcb4ed28b8
Fixes #2142 (#2144)
Fixes the logic and adds a bunch of tests to prove the logic works.
2023-06-21 08:15:53 +03:00
tastybento
c6a8f7c095 Add API to enable gamemodes to register ownership over additional worlds 2023-06-20 21:03:47 -07:00
tastybento
372f3f14c6 Rename getter to be more generic 2023-06-19 09:45:09 -07:00
tastybento
393a0131f9 Improved IslandInfoEvent to include the calling addon.
This makes it easier for listeners to determine if they should react or
not.
2023-06-19 09:38:49 -07:00
tastybento
c0beba7467 Formatting 2023-06-19 09:38:00 -07:00
tastybento
5c2166fc93 Add some NPE protection for variable substitutions 2023-06-19 09:37:14 -07:00
tastybento
09c60f24cf Add IslandInfoEvent to allow addons to add to the island info command 2023-06-18 20:58:52 -07:00
tastybento
e9067cfb28 Add bbox admin perms command and adjust perms for commands
Made some admin commands have their own perm so that they can be
controlled  individually by permissions.
2023-06-18 13:55:21 -07:00
tastybento
b64015e3b6
Update ServerCompatibility.java
Added 1.21.1
2023-06-15 18:43:17 -07:00
tastybento
2672ee5d1b Handle Boats and other Materials for 1.20. Uses Tags a lot.
May break compatibility with older server versions.
2023-06-10 21:31:39 -07:00
tastybento
d25d1713f8 Adds protection for sign editing for 1.20
Fixes #2135
2023-06-10 15:49:10 -07:00
tastybento
6932ce3759 Added support for 1.20 2023-06-10 10:03:17 -07:00
tastybento
e4a3891590 Add new IslandNameEvent and test class for command 2023-06-06 20:38:59 -07:00
tastybento
8f954090e7 Fixes VisitorKeepInventory to disregard coops and trusted
#2126
Also fixes some tests.
2023-05-13 09:20:47 -07:00
steve4744
e991f09921
replace hardcoded file separator (#2121) 2023-04-21 13:05:00 +03:00
tastybento
577e476796 Remove console spamming debug. 2023-04-18 16:18:09 -07:00
tastybento
84e6523b9d Only disable Addons, not Pladdons
Plugin disabling is done by the server.

Fixes #2117
2023-04-08 16:20:35 +01:00
BONNe
c235abbfa6
Disable chunk generation on rengeneration (#2114)
The SimpleWorldRegenerator generated world new chunks that were not generated before. 
It is not necessary, as regeneration should happen only on used chunks.
2023-04-07 14:39:27 -07:00
tastybento
b4737f104c Implements HARVEST and CROP_PLANTING protection flags
Requested by #2113
2023-04-07 20:51:59 +01:00
tastybento
073f3a49d5
Adds API to enable translations to be set and specific API for flags (#2109)
This was a request on Discord so that plugins can set flags and set the
name and lore for them too.
2023-03-26 10:06:38 -07:00
tastybento
1a293a6936
Implements NMS for pasting and supports older versions of server (#2110)
* Implements NMS for pasting and supports older versions of server

* Remove trial code that shouldn't have been committed.

* Remove trial code that shouldn't have been committed.

* Remove 1.19.3 support.

* Use 1.19.4 in POM
2023-03-26 10:05:54 -07:00
tastybento
85a7375004 Remove warnings on loading addons (not Pladdons) 2023-03-25 15:50:39 -07:00
tastybento
25e601b26c Now with proper commit... 2023-03-25 09:08:34 -07:00
tastybento
907268c2f4 Use Bukkit loadPlugin for loading Pladdons
Provides compatibility with Paper. Ensured bytecode rewriting is done
when code is loaded.
2023-03-25 09:08:18 -07:00
tastybento
5d67dbe5e3 Javadoc clarification 2023-03-18 17:46:56 -04:00
tastybento
2cb561b943
Update to 1.19.3 for NMS (#2107)
* Update to 1.19.3 for NMS

Clean up some imports and deprecation notifications.

* Added 1.19.4 to compatible servers
2023-03-18 10:28:19 -07:00
tastybento
ca604f893c
Relates to #2104. Adds user.displayName() as a placeholder option (#2108)
* Relates to #2104. Adds user.displayName() as a placeholder option

* Fix test
2023-03-18 10:27:50 -07:00
tastybento
3285ef1ad2 Fix and enhancement for #2105 2023-03-17 20:45:15 -07:00
tastybento
2940d2e492 Add cheat flag to prevent Endermen from teleporting
Fixes #2105
2023-03-13 20:17:03 -07:00
tastybento
c31458f8e6 Remove offending blueprint original particle shower which doesn't work
Never did anything useful anyway. Fixes #2100
2023-03-04 23:36:32 -08:00
tastybento
2c283ae3a9
Javadoc and other cleanup from code analysis (#2099) 2023-02-26 17:48:37 -08:00
tastybento
6925a788f3 Put back the deprecated way to delete and adds a GameModeAddon API
to declare which type to use. AcidIsland will need updating to use this
API.
2023-02-24 17:33:53 -08:00
tastybento
1b81e74f4c Evaluates banned commands with spaces
Addresses #2092
2023-02-20 09:59:26 -08:00
tastybento
999ca242d7 Use Eclipse NonNull annotation instead of JetBrains NotNull 2023-02-19 08:41:21 -08:00
tastybento
7d0eb3586d Make events public so they can be instantiated in 3rd party JUnit tests
I need to create "fake" events to test addons but unless they are public
I cannot. All Bukkit events are public, so this should be fine.
2023-02-15 16:01:52 -08:00
tastybento
45f2dca414 Fixes max team size checks.
Fixes #2034
2023-02-12 12:08:38 -08:00
tastybento
8276406f9f Fix runCommands method
Note to future self, don't remove Util methods because someone might be
using them!
2023-02-12 08:22:22 -08:00
tastybento
79d56a5cef Added test class for AdminBlueprintSaveCommand 2023-02-11 12:03:16 -08:00
tastybento
0f0b5aacc2 Merge branch 'develop' of https://github.com/BentoBoxWorld/BentoBox.git into develop 2023-02-11 09:09:36 -08:00
tastybento
e978b29d85 Bug fix: Use same seed for seed world as main world. 2023-02-11 09:09:25 -08:00
tastybento
6c1bcdec05 Added test class for IslandChunkDeletionManager 2023-02-08 20:23:19 -08:00
tastybento
1783bb7058 Fixes bug where pasting was happening twice 2023-02-08 19:21:50 -08:00
tastybento
224be307a0 Fix JavaDoc errors 2023-02-08 18:40:03 -08:00
tastybento
f1eaa0fcde Refactor to reduce complexity 2023-02-05 16:23:23 -08:00
tastybento
9ccdcceaba Refactor to reduce complexity 2023-02-05 16:19:05 -08:00
tastybento
35ece03e5b Refactor to reduce complexity. 2023-02-05 16:08:23 -08:00
tastybento
760bc2e086 Define a constant instead of duplicating literals 2023-02-05 16:03:43 -08:00
tastybento
caf994738e Defined a constant instead of duplicating "CHEST" 7 times 2023-02-05 16:00:06 -08:00
tastybento
f00320095d Added since and forRemoval to Deprecated annotations. 2023-02-05 15:55:51 -08:00
tastybento
46d20f34ff Remove statements that are always true 2023-02-05 15:50:04 -08:00
tastybento
df910e96d3 Refactor to reduce complexity. 2023-02-05 15:46:32 -08:00
tastybento
f29e78557a Change location of seed world data.
Fixes #2087
2023-02-05 14:11:59 -08:00
tastybento
2d8b3074a9 Minor refactor to remove continue from for loop 2023-02-05 10:39:10 -08:00
tastybento
ad2541963e Minor instanceof casting change 2023-02-05 10:38:09 -08:00
tastybento
2c1a018071 Clarify nonnull on Location 2023-02-05 10:37:43 -08:00
tastybento
c6fc42846a Remove unused imports 2023-02-05 10:15:34 -08:00
tastybento
0e253f3ba5 Clarify that parameter is non-null 2023-02-05 10:10:25 -08:00
tastybento
a68436fde1 Remove Optional from parameter. 2023-02-05 10:05:57 -08:00
tastybento
1d28979d5c Refactor to reduce complexity 2023-02-04 19:08:09 -08:00
tastybento
187132bc1d Refactor to reduce complixty. Added comments. 2023-02-04 19:00:18 -08:00
tastybento
3331ffac4e Refactor to reduce complexity. 2023-02-04 18:49:13 -08:00
tastybento
f9e57898ab Refactor to reduce complexity. 2023-02-04 18:45:05 -08:00
tastybento
0c29d0b5dd
Uses seed worlds for deletion purposes (#2084)
* Uses seed worlds for deletion purposes

* Use Flat type

* Implement the superflat saver

* Fix nullable issue

* Fix tests.

* Fix code smells
2023-02-04 18:37:06 -08:00
tastybento
7040047fcb Fix broken test for IslandRespawnListener 2023-02-04 10:37:02 -08:00
BONNe
ea6ca3d26b
Add variable parsing on reference text (#2073)
This solves the issue in customizable GUI's where variables are defined directly into the panel button name and description instead of providing the link to the locale. 

Not all users want to specify all text into a locale, and they would not get parsed variables just because of that.
This change fixes it and it does not give any bad situations even if the reference is just missing text in the locale, as there will be nothing for parsing.
2023-01-31 18:03:37 +02:00
tastybento
a604d5cf82
Add [owner] in command placeholders #2080 (#2081) 2023-01-31 07:13:01 -08:00
tastybento
bbb8207cf0 Teleportation was processed for entities even if it was switched off
Addresses #2078

Added test class to cover some of the logic in the teleportation class.
More tests can be written to cover the various outcomes.
2023-01-28 16:04:52 -08:00
BONNe
e89970b49b
Remove 1.18.2 from supported version list. (#2074)
* Remove 1.18.2 from supported version list.

1.18.2 support was removed with changes in commit 056cff4b6f

Also, mark 1.19, 1.19.1 and 1.19.2 as incompatible. It happens because of GSon library changes that prevents bentobox compiled with Spigot 1.19.3 to run on older versions.

* Fixes GSON crashes introduced by migrating to 1.19.3 api.
2023-01-06 18:29:37 +02:00
tastybento
0de2c3a7b6 Update JavaDoc to indicate return value is immutable 2023-01-05 21:30:19 -08:00
tastybento
0f89de6c2a Make list mutable. 2023-01-05 21:16:50 -08:00
tastybento
8e40bf9dcf Added more validation for addon.yml and test class 2023-01-02 09:31:16 -08:00
tastybento
10a73e66b4 Added explicit @since annotation 2023-01-01 09:25:09 -08:00
tastybento
3746349e22 The protected modifier for constructor should be enough.
Constructors of abstract classes can only be called in constructors of
their subclasses. So there is no point in making them public.
2023-01-01 09:22:41 -08:00
tastybento
1262a08a22 Removed deprecated method isPlayer(User) 2023-01-01 08:43:31 -08:00
tastybento
6b88d31762 Bug fix for particle validation 2023-01-01 00:02:59 -08:00
tastybento
93ca9fb0e6 Correct nullable tags 2022-12-31 18:33:49 -08:00
tastybento
872940011a Loads of minor code smell fixes
Mostly replacing instanceof check and cast with e.g. 'instanceof Player
player'
Replaced some "switch" statements by "if" statements to increase
readability.
Used the primitive boolean check to avoid potential NPEs.
Reordered field modifiers to comply with the Java Language
Specification. Mainly @NonNull position.
2022-12-31 18:19:25 -08:00
tastybento
056cff4b6f
Code clean up from Sonar Cloud analysis (#2068)
* Code clean up from Sonar Cloud analysis

* Fix tests

* Remove code smell

* Rename "island" which hides the field declared at line 25.

* Removed code smells.

* Rename variable record to rec

Renamed "record" variable to not match a restricted identifier.
Restricted Identifiers should not be used as identifiers. "record" is
using in Java 16.

* Added private constructor to prevent instantiation of static class

Changed variable name to rec instead of restricted "record".

* Remove Blueprint code smells.

* Use a record for database settings constructor

Code smell: Methods should not have too many parameters. I'm not sure
what methods are using this class though.

* Update MyWorlds version

The POM for MyWorlds is invalid and causes a warning, but this still
persists with this version.

* Extracted nested try block into a separate method.

Makes it clear when reading the code what might be caught

* Extracted nested try block into a separate method.

* Fixed JavaDoc /** instead of just /*

* Extracted nested try block into a separate method.

* Refactored to not assign loop counter from within the loop body.

* Better delete option. With results.

That said, this is legacy code to handle an issue that occurred a long
time ago and this whole set of code can probably be removed.

* Catch Exceptions not Throwable

* Log error with BentoBox logError

* Use computeIfAbsent

Using these instead leads to cleaner and more readable code.

* User can no longer be null

* Added the missing @Deprecated annotation and @since ref

* Added @since reference

* Merge if statements

* Use BentoBox error logging.

* Added JavaDoc @since

* Remove deprecated class and move used class

* Remove deprecated WoodType and use Type.

* Remove unused import

* Extracted nested try block into a separate method.

* Comment empty default statement

* Clean up logic; avoid switch

* Use Java instead of Guava

* private constructor to hide the implicit public one.

* Private constructor to hide the implicit public one.

Merged if statement.

* Add comment

* if merge

* Make variable constant

* Remove unused imports

* Remove deprecated and unused method

* Remove unused import

* Typo

* Remove instanceof and cast

* Remove superfluous null check

* Put constant at bottom of file because @BONNe likes it there.

* Simplify particle validation code
2022-12-31 16:41:17 -08:00
tastybento
36ae34da5d
2049 trees growing outside range (#2050)
* Fixes #2046. Handles null players for placeholders.

* Remove unused import

* Fixes #2049 for adjacent island spaces

This also deletes blocks in the event rather than setting them to AIR as
was done previously.
2022-12-30 09:37:18 -08:00
tastybento
18983e5570
Code cleanup (#2065)
* Cast operands to (double)

* Code clean up from static analysis

* Revert the GitHubAPI version change because it didn't work.
2022-12-29 10:01:25 -08:00
tastybento
bde294e0e6 Updated some dependency versions
https://github.com/BentoBoxWorld/BentoBox/issues/2064
2022-12-28 12:37:33 -08:00
tastybento
e7f1269443
Support for 1.19.3 (#2060) 2022-12-11 17:51:52 -08:00
tastybento
e2b5545f3f Expand remove mobs world setting to include respawning protection
Addresses #2058

We already have a option to protect against hostile mobs when logging in
or teleporting, but not respawn. This adds protection to that. Admin can
turn off the option if they want it more hard core.
2022-12-04 21:06:14 -08:00
tastybento
69fa951907 Handles null player world better on joining server
In theory, this should not be required, but it seems that a player's
world might be null in some edge cases. Alternatively, the Util.getWorld
function can return a null if the player was in a nether or end but that
does not have a corresponding overworld.
Addresses #2057
2022-12-04 20:36:41 -08:00
tastybento
7aa1e2da89 Fix to handle kelp and bamboo spread.
Addresses #2053. This is actually due to a server bug
https://hub.spigotmc.org/jira/browse/SPIGOT-5312. This change uses the
BlockSpreadEvent to trap kelp and bamboo and bamboo sapling.
2022-11-26 17:36:19 -08:00
tastybento
2629e940c7
2046 null player placeholder support (#2048)
* Fixes #2046. Handles null players for placeholders.

* Remove unused import
2022-11-13 08:49:22 +02:00
tastybento
1c4fb76828
Fixes #2045. Hides invisible team members from the count. (#2047) 2022-11-12 02:28:09 +02:00
BONNe
acb984ee90
Fixes super-flat clearing
Superflat was not working properly. It was always clearing just 1 (first) chunk because it referenced the chunk from the first event that created the clearing task.
The issue should be fixed.
2022-11-01 23:04:59 +02:00