* Add permission to bypass other's msgtoggle
Also thanks to MD for helping me with the code :)
* Correct comment
* Remove checking for console in favour of the already existing IUser check
* Fix comments, again
* Re add isIgnoreMsg() check
Accidently removed it, sorry
* Combine 2 checks
Adds world specific perms for whether a player may use /back to teleport
back to a given world. Adds logic to default
essentials.back.into.<world> permissions for loaded worlds to true to
maintain backwards compatibility.
Adds the teleport-back-when-freed-from-jail configuration option. When
set to true (default), as with previous versions will teleport the
player which was jailed back to their previous position when freed. When
false, Essentials will not teleport the player anywhere, leaving them
where they are.
Closes#1947
Fixes#1924PaperMC/Paper#884 has been fixed in recent Paper builds (1368+),
which means the workaround is no longer necessary. Disable it when
running a fixed build.
* Replace vanishedPlayers list with set
Not sure if there is any particular reason to keep it ordered, but for now I've used a LinkedHashSet.
* Change return of new method from Set to Collection
Also makes return of old method an unmodifiable list, but this is just as breaking as just changing the method return type as far as I can see
* Implemented separate permissions for seen extras
* Add an extra permission to the whois command too.
IPs are sensitive information that should only be accessible to an as small as possible amount of people
Java 9 runtimes report warnings for reflective access on JRE
classes (in this case Field.modifiers). Future versions of Java
may deny the access completely.
Since we access our own code here, we could just remove the final modifier.
With it's current visibility (of private) it's unlikely that it will be
modified from somewhere else except our Settings class.
* Lombok: Older version resulted in NoSuchFieldEx: pid (fixed since 1.16.8)
* JDK9 no longer has a tools.jar because of it's modular system, but ant is
no longer required. It was introduced in 3e9a2377a8
for GroupManager. Now GM is no longer maintained and removed in
* 5ca02e6596 (calling the build.xml)
* fa0bbde236 (removing the remaining module)
Fixes#1637
/mail stripped colors from the entire message before as reported by the issue. The desired fix was to only strip the color from the sent message rather than from the entire message format (e.g. prefixes coming before the message itself).
Fixed by formatting only the message before passing it to the localization.
Also had a minor issue with FormatUtil in which it failed to strip ampersand (&)-formatted color codes, which was amended by stripping both VANILLA_*_PATTERN as well as REPLACE_*_PATTERN in FormatUtil#formatString(...). It's not necessary to actualy strip any vanilla (i.e. section-prefixed) color codes since that's already done by FormatUtil#stripFormat(String), but I'd like to keep the changes as non-invasive as possible at the current moment.
Demo: git-Spigot-d20369f-7fc5cd8 (MC: 1.9) (Implementing API version 1.9-R0.1-SNAPSHOT)
https://streamable.com/umyi8
This is my first time contributing so please be gentle :)
Still a lot of work to do. One thing to note is that I used LEGACY materials in a few spots where I didn't know what the new ones are as I'm not very familiar with the 1.13 update and what it changes.
* Move kits to kits.yml
We will now use a separate kits.yml file.
Any kits that were defined in the config.yml will be migrated over to the kits.yml file automatically on startup.
Issue was a NullPointerException due to senderUser not being null-checked. I opted to place the couple of lines of code into the sender.isPlayer() check as opposed to null-checking.
Resolves#1725 and provides a less breaking fix for #1722.
----
Revert "Consume everything after lore as lore in MetaItemStack. Fixes #1722."
This reverts commit 5fa2ce7d9e.
Outputs a different message with the expiry included.
Add unlocalised tempbanJoin to locale files
Outputs a different message with the expiry included.
Fixes#1631 properly.
e7ebc94a9e added a workaround to the
SnakeYAML constructor to avoid errors when unknown properties are
used in the storage files. Back then, it was necessary to copy the
method to catch the exception thrown when an unknown property was
encountered.
However, SnakeYAML 1.12 (included in Spigot 1.6.2+) added a method
to ignore missing properties without overriding parts of the
SnakeYAML implementation.
Delete the old workaround and make use of
PropertyUtils.setSkipMissingProperties(true) to achieve the same
effect.
player. The form of the mute is /mute [Player] [Time] [Reason] or /mute
[Player] [Reason] or /mute [Player] [Time] or /mute [Player]. These are
the various forms of the mute command and acts exactly like the old
command just with a reason.
The final adjustments to the MuteReason
* Add spawn-join-listener-priority setting
* Make "none" an option for priority settings
* Register each listener with separate priorities
* Add note to spawn-join-listener priority
Warns about effect on spawn-on-join
This is forcefully placed at the beginning of the formatted currency because of how `currency` message is customisable. Until a better solution arises this shall stay.
* [Fix] Essentials signs validity
Any sign in the format of &1[...] was a valid sign according to essentials, but 3rd party plugins with the same sign format would be treated equally (cancelling nearby explosions, etc)
Valid signs after this fix are:
- In the format of &1[...] as before
- Are essentials signs and enabled in the essentials config
* Revert "[Fix] Essentials signs validity"
This reverts commit 60d95b6585184051124cd32358401653042edd18.
* [Fix - v2] Essentials signs validity
Any sign in the format of &1[...] was a valid sign according to essentials, but 3rd party plugins with the same sign format would be treated equally (cancelling nearby explosions, etc)
* Add UUID to /whois
* Add untranslated English messages
I'm not sure whether "UUID" necessarily needs translating for most languages, but I've put it in all of them so that they can be translated if needed.
* Hi there o/
I'm in the process of writing a permissions plugin, and every time I try to talk it threw an error. The error was caused by this null value that was existing. I removed it and changed it to get the Player's world name. This should fix my error.
Prior to this commit `/condense` would return the first best item to condense an ItemStack into, with no consideration of better forms of condensation.
This commit adds a local variable `bestRecipes` which stores all the valid recipes and sorts through them for the best, then picks out the best. The best recipe is defined by a compare(o2, o1) where o1 and o2 are integers of the SimpleRecipe's input ItemStack amount.
If the signFormatSuccess message is empty an error occurs silently that prevents the sign from being created from Essentials behalf. This commit tackles that issue by creating `getSuccessName(IEssentials)` and invoking it where possible to notify the console when this error occurs.
* Replace mcstats with bStats
Won't show up on the bStats website, until @drtshock or someone else signs up and creates a Bukkit plugin named "EssentialsX" on the bStats website. If you want to test, you can change `pluginName` to `"EssXmdtest"`, or any other value as desired.
* Add missing enable and disable functions to Metrics class
Won't show up on the bStats website, until @drtshock or someone else signs up and creates a Bukkit plugin named "EssentialsX" on the bStats website. If you want to test, you can change `pluginName` to `"EssXmdtest"`, or any other value as desired.
`/tpacancel` allows tp requesters to cancel sent requests before the target client can accept them. This aids in combatting long-lived tp requests in PvP environment.
`/tpacancel <player>` cancels all a tp request sent to <player> only.
This reverts commit 442d97a1b1, fcbd3deb6b, and 6231a25413.
Due to the lack of proper dependency deployment and availability users are unable to build EssentialsX without doing some manual installations. Until issue is resolved Supervisor support is dropped.
EssentialsReportContext provides all online players' userdata files if report level is 400 or higher, as well as config.yml if report level is over 200.
- Dropped usage of deprecated methods for a cleaner future.
- Zombies no longer throw errors in SpawnMob due to setVillager(false).
- Removed MobData where they have been replaced with actual entities.
- Support new enchantments.
- Support new mobs.
- Rename MobData WHITHER_SKELETON to WITHER_SKELETON.
- implement NOOP methods of new API methods for fake classes.
- Amend item dictionary.
This commit adds two new configurable options:
- `add-prefix-in-playerlist`: enable prefix in playerlist
- `add-suffix-in-playerlist`: enable suffix in playerlist
These were added to prevent very long names in the playerlist.
This commit adds a getAfkSince() method to IUser.
This commit adds a whoisAFKSince message which is sent when a player is AFK, it follows the same format as whoisAFK which is still used. whoisAFK remains unchanged but is sent only when the player is not AFK.
Admins can now specify whether all joining players should be teleported to the user's group spawn when joining the server. Players can be assigned the essentials.spawn-on-join.exempt permission to become exempt from this feature.
This commit enables users of different countries around the world to configure currency formatting displayed to users in a familiar manner.
Prior to this commit US formatting (symbols) was forced upon users. This is now configurable via locale values e.g. en-US, de, fr-ch.
This commit adds two new configurations:
- currency-format
- currency-symbol-format-locale
One method ISettings#getCurrencyFormat()
This commit makes it possible for players to set an afk message to detail their reasoning for being away to other players. This can be especially useful for the /msg command; instead of replying the user is afk, it will specify why they are afk so the sender can act further on that information.
Two methods have been added to IUser: getAfkMessage() and setAFKMessage(String).
All locale files have two new messages: userAFKWithReason and userIsAwayWithReason. They all use the messages that do not have the suffix WithReason, i.e. userAFK and userIsAway. Furthermore, the userIsAwayWithReason will not utilise the second parameter, the reason, to prevent spam and unnecessary text in global chat. However, the second parameter ({1}) is available for use in userIsAwayWithReason. userAFKWithReason, which is sent to /msg senders, does use the {1} as it controllable spam by the command sender themselves.
/afk usage is now: /afk [player/message...]