mirror of
https://github.com/CarmJos/UserPrefix.git
synced 2026-06-04 15:28:21 +08:00
2.0.0
1. 修复低版本可能无法读取物品的bug。 2. 分离配置文件,消息配置文件改为`messages.yml`,前缀配置文件改为`prefixes/*.yml`,便于配置和管理。 3. 允许配置GUI中上一页和下一页的物品。 4. 补全帮助文档,在插件首次加载将提供一份英文版的配置,以便使用。
This commit is contained in:
+136
-76
@@ -16,6 +16,8 @@ This plugin is implemented based on Spigot ,**Theoretically** support ALL MineCr
|
||||
The development of this plugin is based on Chinese which purpose is to help Chinese developers learn Bukkit plugin
|
||||
development.
|
||||
|
||||
This plugin has been published on [SpigotMC](https://www.spigotmc.org/resources/userprefix.96277/) .
|
||||
|
||||
本插件已在 [MCBBS](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1261503) 上发布,欢迎中文用户来这里下载。
|
||||
|
||||
## Examples
|
||||
@@ -52,11 +54,11 @@ For development dependencies, please see [Dependencies](https://github.com/Carm
|
||||
|
||||
This plugin theoretically supports all versions.
|
||||
|
||||
If the icon does not load, the sound cannot be played, etc.,
|
||||
please check whether the type of the item and sound in the configuration file exists in the current version.
|
||||
If the icon does not load, the sound cannot be played, etc., please check whether the type of the item and sound in the
|
||||
configuration file exists in the current version.
|
||||
|
||||
Take the SOUND as an example.
|
||||
The sound that the villager said "OK" is "`VILLAGER_YES`" in the lower version, but it becomes "`ENTITY_VILLAGER_YES`" in the higher version.
|
||||
Take the SOUND as an example. The sound that the villager said "OK" is "`VILLAGER_YES`" in the lower version, but it
|
||||
becomes "`ENTITY_VILLAGER_YES`" in the higher version.
|
||||
|
||||
### 2. Scoreboard exception problem
|
||||
|
||||
@@ -66,7 +68,8 @@ Please turn of the `functions.OnNamePrefix` in the configuration if there is a c
|
||||
|
||||
### 3. Item icon configuration problem
|
||||
|
||||
Items are read through the ItemStack serialization method provided by Bukkit. For related configuration methods, please refer to [ItemStack Serialization](https://www.spigotmc.org/wiki/itemstack-serialization/).
|
||||
Items are read through the ItemStack serialization method provided by Bukkit. For related configuration methods, please
|
||||
refer to [ItemStack Serialization](https://www.spigotmc.org/wiki/itemstack-serialization/).
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -98,50 +101,52 @@ type `/papi info UserPrefix` to see all the placeholders.
|
||||
- Determine whether the player has a certain prefix(true/false)
|
||||
```
|
||||
|
||||
## Sample [configuration file](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/config-en.yml)
|
||||
## Configuration files
|
||||
|
||||
Notice: The default configuration is based on Chinese.
|
||||
You can find the [English Version here](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/config-en.yml).
|
||||
### [Plugin Configuration](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/config.yml) (config.yml)
|
||||
|
||||
Notice: The default configuration is based on Chinese. You can find
|
||||
the [English Version here](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/config.yml).
|
||||
|
||||
```yaml
|
||||
version: 1.0.0-SNAPSHOT # DO NOT EDIT IT
|
||||
version: ${project.version} # DO NOT EDIT IT
|
||||
|
||||
debug: false #DEBUG OUT PUT
|
||||
debug: false #DEBUG OUT PUT
|
||||
|
||||
GUI:
|
||||
title: "&f&lMy Prefixes List" # Title of the GUI
|
||||
|
||||
items:
|
||||
next-page: # only show has next page
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: ARROW
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§fNext Page"
|
||||
lore:
|
||||
- ""
|
||||
- "§fRight-Click to the last page"
|
||||
previous-page: # only show has previous page
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: ARROW
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§fPrevious Page"
|
||||
lore:
|
||||
- ""
|
||||
- "§fRight-Click to the first page"
|
||||
|
||||
functions:
|
||||
# Whether to add a prefix to the top of the head,
|
||||
# this method uses the scoreboard above the head,
|
||||
# this method uses the scoreboard above the head,
|
||||
# please turn it off if there is a conflict.
|
||||
OnNamePrefix: true
|
||||
# Automatic prefix select.
|
||||
# When the player does not choose a prefix by himself,
|
||||
# the prefix with the highest weight will be used automatically
|
||||
# the prefix with the highest weight will be used automatically
|
||||
autoUsePrefix: true
|
||||
|
||||
messages:
|
||||
selected:
|
||||
- "&7You have selected the &f%(name) &7as current prefix."
|
||||
expired:
|
||||
- "&7Your prefix &f%(oldName) &7has expired,"
|
||||
- "&7Now the prefix is changed to &f%(newName) &7."
|
||||
reload:
|
||||
- "&a&lReload completed!&7costs &f%(time)ms&7."
|
||||
help:
|
||||
- "&3&lUserPrefixAdmin &fHelp"
|
||||
- "&8#/upa&f list"
|
||||
- "&8- &7Show configured prefixes."
|
||||
- "&8#/upa&f reload"
|
||||
- "&8- &7Reload configuration."
|
||||
list-title:
|
||||
- "&3&lUserPrefixAdmin &fList"
|
||||
list-value:
|
||||
- "&8#%(weight) &f%(identifier)"
|
||||
- "&8- &7Name &r%(name) &7Perm &r%(permission)"
|
||||
- "&8- &7Example&r %(content) %(sender_name)"
|
||||
|
||||
Sounds:
|
||||
# Format is [SOUND_NAME:Volume:Pitch] or [SOUND_NAME:Volume] or [SOUND_NAME]
|
||||
openGUI: "BLOCK_NOTE_BLOCK_PLING:1:1"
|
||||
@@ -173,21 +178,71 @@ defaultPrefix:
|
||||
lore:
|
||||
- ""
|
||||
- "§a✔ Selected"
|
||||
```
|
||||
|
||||
prefixes:
|
||||
VIP:
|
||||
name: "&b&lPro&b" # [Necessary] Name (Using in messages)
|
||||
content: "§b§lPro §b" # [Necessary] What to display before the name
|
||||
# [Necessary] Weight, used for sorting in the GUI
|
||||
# (the larger is displayed at the back) and the automatic prefix display
|
||||
weight: 1
|
||||
# [Necessary] If there is no permission for detection, everyone can use it,
|
||||
# which means there is no need to configure "itemNoPermission"
|
||||
# (because it is impossible to display items without permission at all)
|
||||
permission: "yc.pro"
|
||||
itemHasPermission:
|
||||
# [Necessary] This Item will be displayed when player has permission
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
### [Messages Configuration](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/messages.yml) (messages.yml)
|
||||
|
||||
```yaml
|
||||
selected:
|
||||
- "&7You have selected the &f%(name) &7as current prefix."
|
||||
expired:
|
||||
- "&7Your prefix &f%(oldName) &7has expired,"
|
||||
- "&7Now the prefix is changed to &f%(newName) &7."
|
||||
reload:
|
||||
- "&a&lReload completed!&7costs &f%(time)ms&7."
|
||||
help:
|
||||
- "&3&lUserPrefixAdmin &fHelp"
|
||||
- "&8#/upa&f list"
|
||||
- "&8- &7Show configured prefixes."
|
||||
- "&8#/upa&f reload"
|
||||
- "&8- &7Reload configuration."
|
||||
list-title:
|
||||
- "&3&lUserPrefixAdmin &fList"
|
||||
list-value:
|
||||
- "&8#%(weight) &f%(identifier)"
|
||||
- "&8- &7Name &r%(name) &7Perm &r%(permission)"
|
||||
- "&8- &7Example&r %(content) %(sender_name)"
|
||||
|
||||
```
|
||||
|
||||
### [Prefixes Configuration](https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/example-prefix.yml) (/prefixes/*.yml)
|
||||
|
||||
All prefixes are separate configuration files, stored in the `<Data Folder>/prefixes/` for easy management.
|
||||
|
||||
Some symbols in file name may affect reading, please avoid using them.
|
||||
|
||||
```yaml
|
||||
# identifier [Necessary]
|
||||
# This will be used for data-storage.
|
||||
identifier: "pro"
|
||||
|
||||
# Name [Necessary]
|
||||
# Use in messages.
|
||||
name: "&b&lPro&b"
|
||||
|
||||
# Content [Necessary]
|
||||
# Use in Placeholders
|
||||
content: "§b§lPro §b"
|
||||
|
||||
# Weight [Necessary]
|
||||
# used for sorting in the GUI and TabList
|
||||
# In GUI : the larger is displayed at the back
|
||||
# At TabList : the larger is displayed at the top
|
||||
weight: 1
|
||||
|
||||
# Permission [Unnecessary]
|
||||
# If there is no permission for detection, everyone can use it,
|
||||
# which means there is no need to configure "itemNoPermission"
|
||||
# (because it is impossible to display items without permission at all)
|
||||
permission: "yc.vip"
|
||||
|
||||
# itemHasPermission [Necessary]
|
||||
# This Item will be displayed when player has permission
|
||||
itemHasPermission:
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: DIAMOND
|
||||
meta:
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: DIAMOND
|
||||
meta:
|
||||
==: ItemMeta
|
||||
@@ -196,33 +251,37 @@ prefixes:
|
||||
lore:
|
||||
- ""
|
||||
- "§a➥ Click to use"
|
||||
itemUsing:
|
||||
# [Not Necessary] This Item will be displayed when the prefix is selected.
|
||||
# If there is no such configuration, it will automatically display "itemHasPermission".
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: DIAMOND
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§b§lVIP Prefix"
|
||||
enchants:
|
||||
PROTECTION_ENVIRONMENTAL: 1 #Add an enchantment so it looks like it’s selected
|
||||
lore:
|
||||
- ""
|
||||
- "§a✔ Selected"
|
||||
itemNoPermission:
|
||||
# [Not Necessary] If player doesn't have the permission,this item will be displayed.
|
||||
# If this item is not configured, it will not be displayed in the GUI when the player does not have permission to use it.
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: INK_SACK
|
||||
damage: 8
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§b§lVIP §c(Buy it!)"
|
||||
lore:
|
||||
- ""
|
||||
- "§e✯ Buy the VIP to use it!"
|
||||
|
||||
# itemUsing [Unnecessary]
|
||||
# This Item will be displayed when the prefix is selected.
|
||||
# If there is no such configuration, it will automatically display "itemHasPermission".
|
||||
itemUsing:
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: DIAMOND
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§b§lVIP Prefix"
|
||||
enchants:
|
||||
PROTECTION_ENVIRONMENTAL: 1 #Add an enchantment so it looks like it’s selected
|
||||
lore:
|
||||
- ""
|
||||
- "§a✔ Selected"
|
||||
|
||||
# itemNoPermission [Unnecessary]
|
||||
# If player doesn't have the permission,this item will be displayed.
|
||||
# If this item is not configured, it will not be displayed in the GUI when the player does not have permission to use it.
|
||||
itemNoPermission:
|
||||
==: org.bukkit.inventory.ItemStack
|
||||
type: INK_SACK
|
||||
damage: 8
|
||||
meta:
|
||||
==: ItemMeta
|
||||
meta-type: UNSPECIFIC
|
||||
display-name: "§b§lVIP §c(Buy it!)"
|
||||
lore:
|
||||
- ""
|
||||
- "§e✯ Buy the VIP to use it!"
|
||||
```
|
||||
|
||||
## Support and Donation
|
||||
@@ -232,5 +291,6 @@ This project is support by the [YourCraft(你的世界)](https://www.ycraft.cn)
|
||||
|
||||
## Open source agreement
|
||||
|
||||
The source code of this project uses [GNU General Public License v3.0](https://opensource.org/licenses/GPL-3.0) License.
|
||||
The source code of this project uses [GNU General Public License v3.0](https://opensource.org/licenses/GPL-3.0)
|
||||
License.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user