Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #79 from EssentialsX/misc/merge-wiki
Merge wiki content and history
- Loading branch information
Showing
48 changed files
with
1,362 additions
and
4 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
Submodule wiki
deleted from
f55d79
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# BannerMeta | ||
BannerMeta lets you create custom flag designs for banners and shields. Each banner can have unlimited patterns and patterns listed first will show underneath patterns listed later. | ||
|
||
![BannerMeta example](https://user-images.githubusercontent.com/1917406/63939958-5f891000-ca60-11e9-8025-32808f018757.png) | ||
|
||
## Base Color | ||
Base color should be the first thing listed for a banner. It will be displayed as RGB. Base color will show below all patterns. | ||
|
||
Note that on 1.13 and above, you don't need to specify a base color for banners, as banners already have a base color. | ||
|
||
## Patterns | ||
Patterns will be listed after the base color and will include the type with the color listed after a comma. | ||
[PatternTypes can be found here.](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/banner/PatternType.html) | ||
|
||
### Example Syntax | ||
An example banner: | ||
|
||
`- BANNER:13 1 basecolor:11685080 SQUARE_TOP_RIGHT:14188339` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Color Permissions | ||
|
||
<!-- alternative title: Colo_u_r Permissions --> | ||
|
||
EssentialsX includes permissions that let you control the individual formatting codes players can use in some commands. | ||
|
||
This works for the following: | ||
* Sending a PM with `/msg`: `essentials.msg.<suffix>` | ||
* Sending mails with `/mail`: `essentials.mail.<suffix>` | ||
* Setting your own nickname with `/nick`: `essentials.nick.<suffix>` | ||
* Sending chat messages **(requires EssentialsX Chat)**: `essentials.chat.<suffix>` | ||
* Editing a sign with `/editsign`: `essentials.editsign.<suffix>` | ||
* Colors on signs **(requires color signs to be enabled)**: `essentials.signs.<suffix>` | ||
|
||
Below is a list of valid permissions suffixes. Note that some codes are only available on EssentialsX 2.16.1.169 and | ||
above: | ||
|
||
| Suffix | Color codes | EssentialsX version | | ||
|------------------|---------------------------------------------------|---------------------| | ||
| `color` (group) | `&0 &1 &2 &3 &4 &5 &6 &7 &8 &9 &a &b &c &d &e &f` | All versions | | ||
| `format` (group) | `&l &m &n &o &r` | All versions | | ||
| `magic` (group) | `&k` | All versions | | ||
| `rgb` | `&#RRGGBB` | 2.18.0+ | | ||
| `black` | `&0` | 2.16.1.169+ | | ||
| `dark_blue` | `&1` | 2.16.1.169+ | | ||
| `dark_green` | `&2` | 2.16.1.169+ | | ||
| `dark_aqua` | `&3` | 2.16.1.169+ | | ||
| `dark_red` | `&4` | 2.16.1.169+ | | ||
| `dark_purple` | `&5` | 2.16.1.169+ | | ||
| `gold` | `&6` | 2.16.1.169+ | | ||
| `gray` | `&7` | 2.16.1.169+ | | ||
| `dark_gray` | `&8` | 2.16.1.169+ | | ||
| `blue` | `&9` | 2.16.1.169+ | | ||
| `green` | `&a` | 2.16.1.169+ | | ||
| `aqua` | `&b` | 2.16.1.169+ | | ||
| `red` | `&c` | 2.16.1.169+ | | ||
| `light_purple` | `&d` | 2.16.1.169+ | | ||
| `yellow` | `&e` | 2.16.1.169+ | | ||
| `white` | `&f` | 2.16.1.169+ | | ||
| `bold` | `&l` | 2.16.1.169+ | | ||
| `strikethrough` | `&m` | 2.16.1.169+ | | ||
| `underline` | `&n` | 2.16.1.169+ | | ||
| `italic` | `&o` | 2.16.1.169+ | | ||
| `reset` | `&r` | 2.16.1.169+ | | ||
|
||
The individual permissions take priority over the "group" permissions. For example, if you set `essentials.nick.color` | ||
to `true` then set `essentials.nick.black` to `false`, players will be able to set their nicknames to any color | ||
except black. | ||
|
||
## Nicknames | ||
|
||
If you want players to be able to change the color of their nickname but not the text itself, set the permission | ||
`essentials.nick.changecolors` to `true`. This will let them use color codes in their nickname, but the text will still | ||
have to match their own username. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
**This feature was added in [build 369](https://ci.ender.zone/job/EssentialsX) ([09acbcd](https://github.com/drtshock/Essentials/commit/09acbcdb05f34e0043116f1866904b0ff0f03ddd)).** | ||
_Requested in [#110](/drtshock/Essentials/issues/110). PR in [#692](/drtshock/Essentials/pull/692)._ | ||
|
||
This feature introduces the highly demanded ability to apply cooldowns to commands. If you want to limit how often a player can `/feed` or go `/home`, all you have to do is simply add that command to the config: | ||
|
||
```yaml | ||
command-cooldowns: | ||
feed: 10 # 10 seconds | ||
home: 70 # 1 minute 10 seconds | ||
``` | ||
|
||
**Advanced users** are able to apply more control to their command matching by using wildcards. Wildcards are specified using asterisks '*'. For example, to match all commands that include the word `potato`, you would simply wrap the world potato in asterisks: | ||
```yaml | ||
command-cooldowns: | ||
'*potato*': 30 | ||
``` | ||
|
||
**NOTE**: Due to YAML's design, any command starting with * must be wrapped in quotation marks (single or double, ' ") | ||
|
||
For **highly technical users** who understand Regex (Regular Expressions), this feature also supports Regex. In order for EssentialsX to begin interpreting regex, the command must start with a caret '^'. Followed by the explicit regex pattern that EssentialsX should match. | ||
|
||
```yaml | ||
command-cooldowns: | ||
'^^ban([^ip])?( .*)?': 30 # match any ban command that isn't `banip`. | ||
``` | ||
|
||
**NOTE**: The leading caret is not part of the regex and is simply removed when parsing the regex. So `'^ban([^ip])?( .*)?'` actually becomes `'ban([^ip])?( .*)?'`. | ||
|
||
**NOTE 2**: If a plugin command starts with a caret e.g. `^mycommand`, then the caret must be escaped using a blackslash '\' to prevent EssentialsX from interpreting the command as Regex. | ||
|
||
# Persistence | ||
By default, EssentialsX will store all existing cooldowns across server sessions. This means when the server shuts down the player cooldowns will be saved and loaded for the next startup. This is especially useful for cooldowns that last any more than a few minutes. | ||
|
||
However, this feature can be disabled, making EssentialsX store cooldowns only until the server shuts down. Resetting all cooldowns when the server starts up. | ||
|
||
To disable command cooldown persistence simply apply the following change to your config: | ||
```yaml | ||
command-cooldown-persistence: false | ||
``` | ||
|
||
**NOTE:** If the `command-cooldown-persistence` is not present in the config then it can be added anywhere in the config, as long as it is not indented. | ||
|
||
# Bypass | ||
**This feature was added in build 377** | ||
|
||
Users can be set to bypass all command cooldowns by giving them the `essentials.commandcooldowns.bypass` permission. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
# Common issues with EssentialsX | ||
|
||
## Signs don't work | ||
In your `plugins/Essentials/config.yml` file, you need to uncomment the lines under `enabledSigns` for each type of sign by removing the `#` before it: | ||
```yaml | ||
enabledSigns: | ||
#- color | ||
- balance | ||
#- buy | ||
``` | ||
In this example, the `[balance]` sign is enabled but the `[buy]` sign is not. | ||
Note that enabling `color` means that players will be allowed to use color codes in the sign text, but still requires that another sign type is enabled. | ||
|
||
## EssentialsX overrides a command from Spigot or another plugin | ||
**Related issues: [#1458](/EssentialsX/Essentials/issues/1458)** | ||
You can create an alias for commands using Bukkit's `commands.yml` file, which should be in your server root. | ||
|
||
The example below does the following: | ||
* Overrides `/gc` with [spark](https://github.com/lucko/spark)'s `/profiler` command | ||
* Overrides `/tell` with the [vanilla `/tell`](https://minecraft.gamepedia.com/Commands/tell) command | ||
* Forces `/msg` to run EssentialsX's `/msg` command | ||
```yaml | ||
aliases: | ||
gc: | ||
- "spark:profiler $1-" | ||
tell: | ||
- "minecraft:tell $1-" | ||
msg: | ||
- "essentials:msg $1-" | ||
``` | ||
|
||
See the [Bukkit wiki page](https://bukkit.gamepedia.com/Commands.yml#aliases) for more information. | ||
|
||
## Another plugin is overriding an EssentialsX command | ||
Typically, if EssentialsX finds another plugin providing a command with the same name as one of EssentialsX's own commands, it will try and hand over that command to the other plugin. However, you can force EssentialsX to handle commands that are also provided by another plugin using the [`overridden-commands` section](https://github.com/EssentialsX/Essentials/blob/2.x/Essentials/src/main/resources/config.yml#L162) of your `config.yml`. This will tell EssentialsX not to "give up" the command to the other plugin. | ||
|
||
For example, to force EssentialsX to handle the `/msg` command instead of passing it over to another plugin, your section should look like this: | ||
```yaml | ||
overridden-commands: | ||
- msg | ||
``` | ||
|
||
Note that in some cases, you may also need to alias the command to the `essentials:` version of the command. [See above](https://github.com/EssentialsX/Essentials/wiki/Common-Issues#essentialsx-overrides-a-command-from-spigot-or-another-plugin) for details. In addition, if you have a plugin running on your proxy ([BungeeCord](https://www.spigotmc.org/wiki/bungeecord/)/[Waterfall](https://github.com/PaperMC/Waterfall) or [Velocity](https://velocitypowered.com)), the command may not even reach the server. EssentialsX can't do anything about this - you need to fix this on the proxy. | ||
|
||
## Tab completion doesn't work for commands that override an EssentialsX command | ||
**Related issues: [#1384](/EssentialsX/Essentials/issues/1384)** | ||
You can alias the command to the version from the other plugin, which should fix tab complete behaviour - see above. | ||
|
||
## I need help with GroupManager! <br /> Where's the updated GroupManager? | ||
EssentialsX does not support GroupManager as it is an outdated and broken plugin. We recommend you switch to [LuckPerms](https://github.com/lucko/LuckPerms) as it is still an actively maintained and regularly updated plugin. | ||
|
||
## How do I build EssentialsX? | ||
Once you've ensured you have an up-to-date JDK and Maven installed, you need to build a few different Spigot versions using [Spigot BuildTools](https://www.spigotmc.org/wiki/buildtools/): | ||
```bash | ||
java -jar BuildTools.jar --rev 1.8 | ||
java -jar BuildTools.jar --rev 1.8.3 | ||
java -jar BuildTools.jar --rev 1.9 | ||
java -jar BuildTools.jar --rev 1.9.4 | ||
``` | ||
|
||
This is required to allow EssentialsX's compatibility providers can build against older versions of the Spigot server, and only needs to be done once. | ||
|
||
Next, [download or clone EssentialsX](https://github.com/EssentialsX/Essentials), open a terminal in the root of the EssentialsX source and run: | ||
```bash | ||
./gradlew build | ||
``` | ||
|
||
If this completes with no errors, you will be able to find each plugin jar in the `jars/` directory or, in `build/libs/` inside each module's directory. | ||
|
||
## How do I add EssentialsX as a dependency? | ||
### Repositores | ||
Do you want to integrate with EssentialsX in your plugin? You can use the EssentialsX Maven repo to build against EssentialsX's API. | ||
|
||
Releases are hosted on the Maven repo at `https://repo.essentialsx.net/releases/`, while snapshots (including dev builds) are hosted at `https://repo.essentialsx.net/snapshots/`. | ||
|
||
To add EssentialsX to your build system, you should use the following artifacts: | ||
|
||
| Type | Group ID | Artifact ID | Version | | ||
| :-------------- | :-------------- | :---------- | :-------------- | | ||
| Latest release | net.essentialsx | EssentialsX | 2.19.0 | ||
| Snapshots | net.essentialsx | EssentialsX | 2.19.1-SNAPSHOT | | ||
| Older releases | net.ess3 | EssentialsX | 2.18.2 | | ||
|
||
Note: up until 2.18.2, EssentialsX used the net.ess3 group ID, but starting with 2.19.0 snapshots, the group ID is now net.essentialsx. When updating your plugin, make sure you use the correct group ID. | ||
|
||
### Releases | ||
#### Maven | ||
Under `repositories` in your `pom.xml`, you need to add a new `repository` for the EssentialsX CI server: | ||
```xml | ||
<repositories> | ||
... | ||
<repository> | ||
<id>essentials-releases</id> | ||
<url>https://repo.essentialsx.net/releases/</url> | ||
</repository> | ||
<repository> | ||
<id>paper-repo</id> | ||
<url>https://papermc.io/repo/repository/maven-public/</url> | ||
</repository> | ||
</repositories> | ||
``` | ||
|
||
Next, add EssentialsX as a `dependency` under `dependencies`: | ||
```xml | ||
<dependencies> | ||
... | ||
<dependency> | ||
<groupId>net.essentialsx</groupId> | ||
<artifactId>EssentialsX</artifactId> | ||
<version>2.19.0</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
</dependencies> | ||
``` | ||
|
||
Make sure the dependency is `provided` - you don't want to include the whole of EssentialsX inside your plugin. | ||
|
||
You should now be able to build against EssentialsX's API in your IDE - you may need to reimport your project for this to work. | ||
|
||
#### Gradle | ||
First, add the repository to your `build.gradle`: | ||
```groovy | ||
repositories { | ||
maven { | ||
name "essentialsx-releases" | ||
url "https://repo.essentialsx.net/releases/" | ||
} | ||
maven { | ||
name "papermc" | ||
url "https://papermc.io/repo/repository/maven-public/" | ||
} | ||
} | ||
``` | ||
|
||
Next, add the dependency as a `compileOnly` dependency: | ||
```groovy | ||
dependencies { | ||
... | ||
compileOnly 'net.essentialsx:EssentialsX:2.19.0' | ||
} | ||
``` | ||
|
||
You should now be able to build against EssentialsX's API in your IDE. | ||
|
||
### Snapshots | ||
#### Maven | ||
Under `repositories` in your `pom.xml`, you need to add a new `repository` for the EssentialsX CI server: | ||
```xml | ||
<repositories> | ||
... | ||
<repository> | ||
<id>essentials-snapshots</id> | ||
<url>https://repo.essentialsx.net/snapshots/</url> | ||
</repository> | ||
<repository> | ||
<id>paper-repo</id> | ||
<url>https://papermc.io/repo/repository/maven-public/</url> | ||
</repository> | ||
</repositories> | ||
``` | ||
|
||
Next, add EssentialsX as a `dependency` under `dependencies`: | ||
```xml | ||
<dependencies> | ||
... | ||
<dependency> | ||
<groupId>net.essentialsx</groupId> | ||
<artifactId>EssentialsX</artifactId> | ||
<version>2.19.1-SNAPSHOT</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
</dependencies> | ||
``` | ||
|
||
Make sure the dependency is `provided` - you don't want to include the whole of EssentialsX inside your plugin. | ||
|
||
You should now be able to build against EssentialsX's API in your IDE - you may need to reimport your project for this to work. | ||
|
||
#### Gradle | ||
First, add the repository to your `build.gradle`: | ||
```groovy | ||
repositories { | ||
maven { | ||
name "essentialsx-snapshots" | ||
url "https://repo.essentialsx.net/snapshots/" | ||
} | ||
maven { | ||
name "papermc" | ||
url "https://papermc.io/repo/repository/maven-public/" | ||
} | ||
} | ||
``` | ||
|
||
Next, add the dependency as a `compileOnly` dependency: | ||
```groovy | ||
dependencies { | ||
... | ||
compileOnly 'net.essentialsx:EssentialsX:2.19.1-SNAPSHOT' | ||
} | ||
``` | ||
|
||
You should now be able to build against EssentialsX's API in your IDE. |
Oops, something went wrong.