Adds an `allow-selling-named-items` config option, which allows server admins to enable/disable the ability to sell named items with `/sell`.
Closes#1988.
Closes#908.
Closes#2196.
Fixes#2986Closes#3050Closes#3191
Refactors the clearinventory command code in such a way that fixes the problem of not being able to clear all of a specific item on newer server versions. Also re-adds data value support for older server versions that support it, which seemed to have been inadvertently removed in 79bc340.
Checked against 1.8.8, 1.12.2, 1.13.2, 1.15.2.
Implements a specific permission node to restrict access to extinguishing other players, so Extinguish command will match other commands with similar functionality (i.e. /feed)
Fixes#2796
Implements a rest command based on @mart-r's suggestion in #2299. Resetting the time since rest statistic prevents phantoms from coming after you for an hour (real time). The statistic is also set to zero when using a bed. This command cannot be used pre-1.13 because the statistic does not exist (nor would it matter since there are no phantoms).
Closes#2299
This would only become a problem if a server owner decided to delete a bunch of their userdata. Nonetheless, it doesn't hurt to have the check.
I promise this is the last pull request regarding this 😄
Fixes#2305
Not looking for hidden players within the command, yet looking for offline players.
Only matching a hidden player if the name match was exact (i.e not matching nicknames).
Fixes#1337😎
This PR fixes tab completions for all of the home commands in Essentials. Prior to this PR, the behavior is approximately as follows:
- `/sethome` has no implementation for completions, and so it provides player names, which isn't very useful, and in my opinion can cause more harm than good by confusing users.
- `/home` and `/delhome` fail to provide valid completions when a user has the `essentials.home.others` permission. The argument syntax is `[player:]<name>` but it tries to complete it as `<player> <name>`. Not only does it not show you suggestions for your own homes, but it proceeds to show you invalid suggestions!
This PR provides completions that accurately reflect the syntax and real behavior of the command, including suggesting homes for player names that are partially matched. It will provide suggestions for all of your own homes, as well as providing suggestions based on how far along you are in the command (players if you haven't specified `:` yet, otherwise a specific player's homes).
Co-Authored-By: md678685 <1917406+md678685@users.noreply.github.com>
Adds getTimestamp and getReason methods to MuteStatusChangeEvent with the apropriate JavaDocs explaining them.
Closes#2459.
This aims to reduce the unintended consequences of granting all Essentials permissions or giving a player op, by defaulting permissions some more permissions to false, including `essentials.hat.prevent-type.<type>`. There's also a new essentials.exempt metapermission to have one parent that controls exemption from kick/ban/mute/etc. This will change behaviour for ops to some extent.
As a result of #2780 (oops) the self-AFK messages can no longer exactly match the regular AFK messages as the placeholder for the player's displayname was left out for the self messages.
This PR adds those placeholders so that those who would prefer that these messages are the same can simply copy their messages from the normal `userIs*Away*` keys to the new `userIs*AwaySelf*` keys.
(description from #2608)
So... I've implemented a system for toggling whether or not AFK messages are broadcasted to the entire server and also changed a few things along the way:
1. I added a config toggle broadcast-afk-message that will change whether AFK messages are broadcast globally or not.
2. In both cases the AFK target now recieves a "self-oriented" message instead of the global default. Basically just says "You are now/no longer AFK". This would be a change from the default behaviour.
3. I created a way to exclude certain IUsers from broadcastMessage messages using an IUser... varargs parameter. I wasn't too sure how to implement the exclusion, but this seemed like a fairly good option.
I'm not too sure if what I've come up with is an optimal solution, but it's been tested and confirmed to work as intended.
closes#2116, closes#959
---
* implement toggle for broadcasting afk message
* add "self-private" AFK messages, implement exclusion system for broadcastMessage
* remove rogue import, clarify config comment
* move excluded collection creation out of loop, use set instead
* use set instead of varargs
* ok but actually use the set this time
* address requested changes
* update missed message section
* move from Collection to Predicate for broadcast exclusion
* update Predicate variable name
* use identity comparison (cleanup)
* clean up unnecessary imports, remove extra spacing
* implement /offlinetp command, teleports to a player's last known logout location
* send a message to /tp user when they try teleporting to an offline player
* getHidden is now false, you are no longer able to teleport to offline players using offline tp
* change /offlinetp to /tpoffline to match essentialsx conventions
Basically, I just needed this for one of my plugins; otherwise, this could be useful for people using this event who want to see where the user's balance is being updated from.
---
* Add UserBalanceUpdateEvent.Cause
* Add special cause enum
* Add API Cause