* fix: Standardize projectile permissions
- Let all projectiles (not just splash potions) have a permissions check on throwing
- Fixes snowballs, eggs, etc. being able to be thrown when not added to the plot, etc.
- Fixes#2986 (splash potions only able being to be thrown when also added to the plot)
- Remove the specialized code for egg hatching as now eggs are cancelled entirely
- Remove the non-standard plots.projectile.unowned and plots.projectile.other permissions in favor of the standard admin ones
* docs: Add back deprecated projectile permissions
* docs: Update Core/src/main/java/com/plotsquared/core/permissions/Permission.java
Co-authored-by: Alex <mc.cache@web.de>
Co-authored-by: Alex <mc.cache@web.de>
* Add border bypass permission
- Fixes#3297
* Add permission to plots.admin permpack
* Implement messages on leaving/entering border area
* Rename to border.denied and make border msg red
* change too le/ge as tthey are likely to be equal to border when hit.
- Since we check for being across the border beforehand, it will hopefully not be spammed too much?
- If it's spammed then either we use meta to set if a player's left the border, or we just remove the come-back-in altogether because it's a little looong
- Add quicker method for getting chunks (not requiring a slow stream done by CB) but comment it out for now because we shouldn't need to do our own GC for loaded chunks; they're "handled much better by minecraft as of 1.14" (not really) meaning the required methods for testing if a chunk is allowed to be unloaded is not present. We instead must now rely on the ChunkUnloadEvent for setting if a chunk should be saved.
- Optimise the shouldSave method by not requiring access to injected classes frequently. Location#getPlot methods are not optimised for frequent usage in the same task.
* Fix sponge absorbing water across plot borders
* Shorten for-loops by using removeIf
* Use 'Location' instead of 'var'
Co-authored-by: NotMyFault <mc.cache@web.de>
* Minor work for 1.17
* Address TODOs
Introduce `entity-change-block` flag covering blocks affected by `onPeskyMobsChangeTheWorldLikeWTFEvent`. Previously this was covered by the mob-place flag, however, changing the tilt state of big drip leafs and a series of other blocks call `EntityChangeBlockEvent` so this shouldn't be covered by mob flags only.
* Address other TODOs
* Compile against paper 1.17
This will only work if you built paper locally and deployed it to your local maven repo.
* Updated linked javadoc links
* Handle sculk sensor events in a more controllable way
* Update issue forms for 1.17
- Ditch slf4j in favor of log4j. slf4j is (unfortunately) very much unmaintained at this time and future versions of MC (1.17+) will use log4j version 2.14.1 onwards over some ancient sfl4j version.
- Using log4j reduces our jar size as well, because we don't need to bridge it as the game provides it natively.
* Replaced economy supported (Vault) check within cost condition with a pre-eliminating if-guard
* Negate mob-place flag debug message
* Actually prevent purchase of plots if they can't afford it (whoops)
Co-authored-by: NotMyFault <mc.cache@web.de>
* Added check for burning players using non-trusted plots cauldrons to extinguish themselves, causing the cauldron level to decrease
* Cancelling burning of players without downscaling water instead of ignoring their burn status
* Using Java 14 JEP 305 enhanced instanceOf
Co-authored-by: NotMyFault <mc.cache@web.de>
* Players without permissions may not wash banners or armor now either. Rain modification is now permitted.
* Extinguishing is now explicitly handled so that event handling for other plugins has the actual information of the new cauldron water level
* Un-nestified the if-condition :)
* Properly cancelled the event (since it is semantically cancelled)
* (Actually) properly cancelled the event (since it is semantically cancelled)
Co-authored-by: NotMyFault <mc.cache@web.de>
- Addressing a few command deprecations during the major release superseded by toggles
- Don't swallow SQL warnings in loggers behind debug, as it's often set to false
- Deleted JavaVersionCheck, it's part of ServerLib.
- PlotId#toString() already stringifies IDs, no need to call String.valueOf()
- Add tab completion to `/plot debugroadregen`
- Add `plots.flag.notify-leave.bypass` permission separating from notify-enter
- Add message notifying the player if the attempt to enter a plot they are denied from