mirror of
https://github.com/CarmJos/UserPrefix.git
synced 2026-06-14 03:41:10 +08:00
Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f738ff1ae | |||
| f23fa03f7a | |||
| cf749bf5c0 | |||
| 01e321686f | |||
| deba26c713 | |||
| 5b4d49f6ed | |||
| 2e5250dd36 | |||
| 88730c98f2 | |||
| e003a543f5 | |||
| 07edaeb401 | |||
| 2357699324 | |||
| c2fa1a1e95 | |||
| 3b03ec4616 | |||
| 1a2644210b | |||
| 83b9ced6f5 | |||
| dd96c6d6da | |||
| ba7d4b90c3 | |||
| ab984acc73 | |||
| 32df1de83d | |||
| dfe447393e | |||
| 26ce6d7e66 | |||
| 2e4d1122d9 | |||
| b5a2199e1e | |||
| 3678a201c7 | |||
| f08a5e84d3 | |||
| 7743bbb3ff | |||
| 1942c50078 | |||
| 2b701510bc | |||
| 0d17e7f1b6 | |||
| 3a41560972 | |||
| 313aa77d72 | |||
| dab774a389 | |||
| 5469c3101f | |||
| dbf826cec8 | |||
| 87c87127b9 | |||
| 50c35488ef | |||
| 29539ddb6f | |||
| cab2b60abf | |||
| 693ff4a4af | |||
| 7c90b8ff99 | |||
| e5ba217873 | |||
| 33e0e64b7d | |||
| 6eb60d83d8 | |||
| 875655bc60 | |||
| 9ca289e4ba | |||
| 41a9582d03 |
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
name: 问题提交
|
||||||
|
about: 提交并描述问题,帮助我们对其进行检查与修复。
|
||||||
|
title: ''
|
||||||
|
labels: bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**问题简述**
|
||||||
|
用简短的话语描述一下大概问题。
|
||||||
|
|
||||||
|
**问题来源**
|
||||||
|
描述一下通过哪些操作才发现的问题,如:
|
||||||
|
1. 打开 '...'
|
||||||
|
2. 点击了 '....'
|
||||||
|
3. 出现了报错 '....'
|
||||||
|
|
||||||
|
**预期结果**(可选)
|
||||||
|
如果问题不发生,应该是什么情况
|
||||||
|
|
||||||
|
**问题截图/问题报错**
|
||||||
|
如果有报错或输出,请提供截图。
|
||||||
|
|
||||||
|
**操作环境**
|
||||||
|
请在后台输入 `version` 并复制相关输出。
|
||||||
|
|
||||||
|
|
||||||
|
**其他补充**
|
||||||
|
如有其他补充,可以在这里描述。
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: 功能需求
|
||||||
|
about: 希望我们提供更多的功能。
|
||||||
|
title: ''
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**功能简述**
|
||||||
|
简单的描述一下你想要的功能
|
||||||
|
|
||||||
|
**需求来源**
|
||||||
|
简单的描述一下为什么需要这个功能。
|
||||||
|
|
||||||
|
**功能参考**(可选)
|
||||||
|
如果有相关功能的参考,如文本、截图,请提供给我们。
|
||||||
|
|
||||||
|
**附加内容**
|
||||||
|
如果有什么小细节需要重点注意,请在这里告诉我们。
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '44 6 * * 4'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'java' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
|
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||||
|
|
||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
# 支持手动触发构建
|
||||||
|
workflow_dispatch:
|
||||||
|
release:
|
||||||
|
# 创建release的时候触发
|
||||||
|
types: [ published ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: "Set up JDK"
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
java-version: '11'
|
||||||
|
distribution: 'adopt'
|
||||||
|
cache: maven
|
||||||
|
server-id: github
|
||||||
|
server-username: MAVEN_USERNAME
|
||||||
|
server-password: MAVEN_TOKEN
|
||||||
|
- name: "Deploy"
|
||||||
|
run: mvn -B deploy --file pom.xml -DskipTests
|
||||||
|
env:
|
||||||
|
MAVEN_USERNAME: ${{ github.repository_owner }}
|
||||||
|
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||||
|
|
||||||
name: Java CI with Maven
|
name: Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
# 支持手动触发构建
|
||||||
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ master ]
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -16,16 +15,24 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up JDK 11
|
- name: "Set up JDK"
|
||||||
uses: actions/setup-java@v2
|
uses: actions/setup-java@v2
|
||||||
with:
|
with:
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
cache: maven
|
cache: maven
|
||||||
- name: Build with Maven
|
server-id: github
|
||||||
|
server-username: MAVEN_USERNAME
|
||||||
|
server-password: MAVEN_TOKEN
|
||||||
|
- name: "Package"
|
||||||
run: mvn -B package --file pom.xml
|
run: mvn -B package --file pom.xml
|
||||||
- run: mkdir staging && cp target/*.jar staging
|
env:
|
||||||
- uses: actions/upload-artifact@v2
|
MAVEN_USERNAME: ${{ github.repository_owner }}
|
||||||
|
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
- name: "Target Stage"
|
||||||
|
run: mkdir staging && cp target/*.jar staging
|
||||||
|
- name: "Upload artifact"
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: Package
|
name: Artifact
|
||||||
path: staging
|
path: staging
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
/.idea/
|
/.idea/
|
||||||
/target/
|
/target/
|
||||||
./*.iml
|
./*.iml
|
||||||
|
*.iml
|
||||||
|
|||||||
+15
-7
@@ -16,9 +16,9 @@ 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
|
The development of this plugin is based on Chinese which purpose is to help Chinese developers learn Bukkit plugin
|
||||||
development.
|
development.
|
||||||
|
|
||||||
This plugin has been published on [SpigotMC](https://www.spigotmc.org/resources/userprefix.96277/) .
|
> 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) 上发布,欢迎中文用户来这里下载。
|
> 本插件已在 [MCBBS](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1261503) 上发布,欢迎中文用户来这里下载。
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
@@ -37,15 +37,16 @@ For development dependencies, please see [Dependencies](https://github.com/Carm
|
|||||||
|
|
||||||
- **Theoretically** support ALL MineCraft Versions.
|
- **Theoretically** support ALL MineCraft Versions.
|
||||||
- Reloading the configuration will automatically refresh the prefix of all players.
|
- Reloading the configuration will automatically refresh the prefix of all players.
|
||||||
- Real-time judgment and feedback to the player when permissions are changed.
|
- Real-time judgment and feedback to the player when permissions are changed. [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java)
|
||||||
- Configurable sounds and messages.
|
- Configurable sounds and messages.
|
||||||
- The prefix icon can be configured as "Selected", "Has Permission" and “No Permission”.
|
- The prefix icon can be configured as "Selected", "Has Permission" and “No Permission”.
|
||||||
- Item configuration is natively configured through ItemStack, which supports all MC settings!
|
- Item configuration is natively configured through ItemStack, which supports all MC settings!
|
||||||
- TabList is automatically sorted according to the weight of the prefix (if there is a conflict, it can be turned off)
|
- TabList is automatically sorted according to the weight of the prefix (if there is a conflict, it can be turned off)
|
||||||
- The prefix display on the player name (can be turned off if there is a conflict)
|
- The prefix display on the player name (can be turned off if there is a conflict) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/nametag/UserNameTag.java)
|
||||||
- GUI with automatic sorting and page turning!
|
- Simple Chat Format Placeholder support. (Not Recommended) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/ChatListener.java)
|
||||||
- Support PlaceholderAPI variables!
|
- GUI with automatic sorting and page turning! [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/ui/PrefixSelectGUI.java)
|
||||||
- Support Hex color! (Version 1.16 and above) `&(#Color)`
|
- Support PlaceholderAPI variables! [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/hooker/UserPrefixExpansion.java)
|
||||||
|
- Support [Hex Color](https://www.hexcolortool.com/)! (Version 1.16 and above) `&(#Color)` [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/util/ColorParser.java)
|
||||||
- Example: LightSlateBlue `&(#8470FF)` 、 DarkSlateBlue `&(#483D8B)`
|
- Example: LightSlateBlue `&(#8470FF)` 、 DarkSlateBlue `&(#483D8B)`
|
||||||
|
|
||||||
## Notice
|
## Notice
|
||||||
@@ -113,6 +114,13 @@ version: ${project.version} # DO NOT EDIT IT
|
|||||||
|
|
||||||
debug: false #DEBUG OUT PUT
|
debug: false #DEBUG OUT PUT
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# Custom storage location
|
||||||
|
# default location is "./prefixes"
|
||||||
|
# Support absolute file path , such as "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false
|
||||||
|
path: "prefixes/" # Must be a folder!
|
||||||
|
|
||||||
GUI:
|
GUI:
|
||||||
title: "&f&lMy Prefixes List" # Title of the GUI
|
title: "&f&lMy Prefixes List" # Title of the GUI
|
||||||
items:
|
items:
|
||||||
|
|||||||
@@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
本插件基于Spigot实现,**理论上支持全版本**。
|
本插件基于Spigot实现,**理论上支持全版本**。
|
||||||
|
|
||||||
本插件已在 [MCBBS](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1261503) 与 [SpigotMC](https://www.spigotmc.org/resources/userprefix-hex-color-support-all-version.96277/) 上发布。
|
The **English version** of the introduction is [here](https://github.com/CarmJos/UserPrefix/blob/master/README-en.md).
|
||||||
|
|
||||||
The English version of the introduction is [here](https://github.com/CarmJos/UserPrefix/blob/master/README-en.md).
|
> 本插件已在 [MCBBS](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1261503) 与 [SpigotMC](https://www.spigotmc.org/resources/userprefix-hex-color-support-all-version.96277/) 上发布。
|
||||||
|
|
||||||
## 示例
|
## 示例
|
||||||
|
|
||||||
@@ -33,16 +33,18 @@ The English version of the introduction is [here](https://github.com/CarmJos/Use
|
|||||||
|
|
||||||
- 理论上全版本支持!
|
- 理论上全版本支持!
|
||||||
- 游戏内重载配置文件并实时更新到玩家!
|
- 游戏内重载配置文件并实时更新到玩家!
|
||||||
- 当玩家权限变更时会实时监测前缀,若权限不足则自动更换前缀并提示!
|
- 当玩家权限变更时会实时监测前缀,若权限不足则自动更换前缀并提示
|
||||||
- 可配置的声音、消息!
|
- 可配置的声音、消息!
|
||||||
- 前缀图标可配置“选中”、“有权限”与“无权限”三种状态的物品
|
- 前缀图标可配置“选中”、“有权限”与“无权限”三种状态的物品
|
||||||
- 物品的配置通过ItemStack原生配置,支持MC所有的设定!
|
- 物品的配置通过ItemStack原生配置,支持MC所有的设定!
|
||||||
- 具体的设定请参考其他文档哦~
|
- 具体的设定请参考其他文档哦~
|
||||||
- TabList自动按照前缀的权重排序 (如有冲突可关掉)
|
- TabList自动按照前缀的权重排序 (如有冲突可关掉)
|
||||||
- 玩家头顶前缀显示 (如有冲突可关掉)
|
- 玩家头顶前缀显示 (如有冲突可关掉) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/nametag/UserNameTag.java)
|
||||||
- 自动排序,且可翻页的GUI!
|
- 简单的聊天变量修改功能!(不推荐使用) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/ChatListener.java)
|
||||||
- 支持PlaceholderAPI变量!(凡支持的都可以使用,如BungeeTabListPlus)
|
- 自动排序,且可翻页的GUI
|
||||||
- 支持Hex颜色!(1.16以上版本) 格式 `&(#颜色代码)`
|
- 支持PlaceholderAPI变量!(凡支持的都可以使用,如BungeeTabListPlus) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/hooker/UserPrefixExpansion.java)
|
||||||
|
- 支持[Hex颜色](https://www.hexcolortool.com/)!(1.16以上版本) [✈](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/util/ColorParser.java)
|
||||||
|
- 格式: `&(#颜色代码)`
|
||||||
- 示例: LightSlateBlue `&(#8470FF)` 、 DarkSlateBlue `&(#483D8B)`
|
- 示例: LightSlateBlue `&(#8470FF)` 、 DarkSlateBlue `&(#483D8B)`
|
||||||
|
|
||||||
## 注意事项
|
## 注意事项
|
||||||
@@ -102,6 +104,14 @@ version: 1.0.0-SNAPSHOT # 配置文件版本,一般不会动。
|
|||||||
|
|
||||||
debug: false #debug输出,开发者用的
|
debug: false #debug输出,开发者用的
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# 自定义存储位置
|
||||||
|
# 默认存储位置为 “插件文件夹”/prefixes
|
||||||
|
# 可以规定到远程文件夹中去寻找前缀相关的设定
|
||||||
|
# 支持绝对文件路径,如 "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false # 是否启用
|
||||||
|
path: "prefixes/" # 一定要指向一个文件夹!
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
||||||
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
|
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
|
||||||
@@ -291,9 +301,33 @@ itemNoPermission:
|
|||||||
|
|
||||||
感谢您成为开源项目的支持者!
|
感谢您成为开源项目的支持者!
|
||||||
|
|
||||||
<img height=25% width=25% src="https://raw.githubusercontent.com/CarmJos/UserPrefix/master/img/PAY.jpg" />
|
<img height=25% width=25% src="https://raw.githubusercontent.com/CarmJos/CarmJos/main/img/donate-code.jpg" alt=""/>
|
||||||
|
|
||||||
## 开源协议
|
## 开源协议
|
||||||
|
|
||||||
本项目源码采用 [GNU General Public License v3.0](https://opensource.org/licenses/GPL-3.0) 开源协议。
|
本项目源码采用 [GNU General Public License v3.0](https://opensource.org/licenses/GPL-3.0) 开源协议。
|
||||||
|
> ### 关于 GPL 协议
|
||||||
|
> GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
|
||||||
|
>
|
||||||
|
> #### 可自由复制
|
||||||
|
> 你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
|
||||||
|
> #### 可自由分发
|
||||||
|
> 在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
|
||||||
|
> #### 可以用来盈利
|
||||||
|
> 你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
|
||||||
|
> #### 可自由修改
|
||||||
|
> 如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
|
||||||
|
>
|
||||||
|
> 需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下 @PierreJoye 写的 Practical Guide to GPL Compliance 一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。
|
||||||
|
>
|
||||||
|
> *以上文字来自 [五种开源协议GPL,LGPL,BSD,MIT,Apache](https://www.oschina.net/question/54100_9455) 。*
|
||||||
|
|
||||||
|
```text
|
||||||
|
_ _ _____ __ _
|
||||||
|
| | | | | __ \ / _|(_)
|
||||||
|
| | | | ___ ___ _ __ | |__) |_ __ ___ | |_ _ __ __
|
||||||
|
| | | |/ __| / _ \| '__|| ___/| '__|/ _ \| _|| |\ \/ /
|
||||||
|
| |__| |\__ \| __/| | | | | | | __/| | | | > <
|
||||||
|
\____/ |___/ \___||_| |_| |_| \___||_| |_|/_/\_\
|
||||||
|
|
||||||
|
```
|
||||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 58 KiB |
@@ -5,13 +5,50 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>cc.carm.plugin</groupId>
|
<groupId>cc.carm.plugin</groupId>
|
||||||
<artifactId>UserPrefix</artifactId>
|
<artifactId>userprefix</artifactId>
|
||||||
<version>2.1.0</version>
|
<version>2.1.8</version>
|
||||||
|
|
||||||
|
<name>UserPrefix</name>
|
||||||
|
<description>轻便、高效、实时的用户前缀系统。</description>
|
||||||
|
<url>https://github.com/CarmJos/UserPrefix</url>
|
||||||
|
|
||||||
|
<issueManagement>
|
||||||
|
<system>GitHub Issues</system>
|
||||||
|
<url>${project.url}/issues</url>
|
||||||
|
</issueManagement>
|
||||||
|
|
||||||
|
<ciManagement>
|
||||||
|
<system>GitHub Actions</system>
|
||||||
|
<url>${project.url}/actions/workflows/maven.yml</url>
|
||||||
|
</ciManagement>
|
||||||
|
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>CarmJos</id>
|
||||||
|
<name>Carm Jos</name>
|
||||||
|
<email>carm@carm.cc</email>
|
||||||
|
<url>https://work.carm.cc</url>
|
||||||
|
<roles>
|
||||||
|
<role>Main Developer</role>
|
||||||
|
</roles>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
|
||||||
|
<organization>
|
||||||
|
<name>YourCraft你的世界</name>
|
||||||
|
<url>https://www.ycraft.cn/</url>
|
||||||
|
</organization>
|
||||||
|
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>GNU General Public License v3.0</name>
|
||||||
|
<url>https://opensource.org/licenses/GPL-3.0</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<maven.deploy.skip>true</maven.deploy.skip>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||||
</properties>
|
</properties>
|
||||||
@@ -19,8 +56,8 @@
|
|||||||
<repositories>
|
<repositories>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>spigotmc-repo</id>
|
<id>spigot-repo</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/public/</url>
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
@@ -28,11 +65,6 @@
|
|||||||
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
|
||||||
<id>lss233-repo</id>
|
|
||||||
<url>https://lss233.littleservice.cn/repositories/minecraft</url>
|
|
||||||
</repository>
|
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>oss-repo</id>
|
<id>oss-repo</id>
|
||||||
<url>https://oss.sonatype.org/content/groups/public/</url>
|
<url>https://oss.sonatype.org/content/groups/public/</url>
|
||||||
@@ -47,13 +79,29 @@
|
|||||||
<id>maven-central</id>
|
<id>maven-central</id>
|
||||||
<url>https://repo1.maven.org/maven2/</url>
|
<url>https://repo1.maven.org/maven2/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
|
<repository>
|
||||||
|
<id>github</id>
|
||||||
|
<name>GitHub Packages</name>
|
||||||
|
<url>https://maven.pkg.github.com/CarmJos/${project.name}</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
|
<distributionManagement>
|
||||||
|
<downloadUrl>${project.url}/releases</downloadUrl>
|
||||||
|
<repository>
|
||||||
|
<id>github</id>
|
||||||
|
<name>GitHub Packages</name>
|
||||||
|
<url>https://maven.pkg.github.com/CarmJos/${project.name}</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.17-R0.1-SNAPSHOT</version>
|
<version>1.17-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
@@ -75,23 +123,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.13</version>
|
<version>4.13.2</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>2.22.1</version>
|
|
||||||
<configuration>
|
|
||||||
<useSystemClassLoader>false</useSystemClassLoader>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
<pluginManagement>
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
@@ -130,6 +167,19 @@
|
|||||||
<artifactId>maven-jar-plugin</artifactId>
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.2.0</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
<version>3.2.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>jar-no-fork</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
@@ -166,7 +216,6 @@
|
|||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/resources</directory>
|
||||||
|
|||||||
@@ -15,8 +15,13 @@ import cc.carm.plugin.userprefix.util.ColorParser;
|
|||||||
import cc.carm.plugin.userprefix.util.MessageUtil;
|
import cc.carm.plugin.userprefix.util.MessageUtil;
|
||||||
import net.luckperms.api.event.user.UserDataRecalculateEvent;
|
import net.luckperms.api.event.user.UserDataRecalculateEvent;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.PluginCommand;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class Main extends JavaPlugin {
|
public class Main extends JavaPlugin {
|
||||||
|
|
||||||
@@ -25,7 +30,7 @@ public class Main extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
instance = this;
|
instance = this;
|
||||||
|
showPluginName();
|
||||||
log(getName() + " " + getDescription().getVersion() + " &7开始加载...");
|
log(getName() + " " + getDescription().getVersion() + " &7开始加载...");
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
@@ -34,8 +39,8 @@ public class Main extends JavaPlugin {
|
|||||||
PrefixManager.init();
|
PrefixManager.init();
|
||||||
|
|
||||||
log("注册指令...");
|
log("注册指令...");
|
||||||
Bukkit.getPluginCommand("UserPrefix").setExecutor(new UserPrefixCommand());
|
registerCommand("UserPrefix", new UserPrefixCommand());
|
||||||
Bukkit.getPluginCommand("UserPrefixAdmin").setExecutor(new UserPrefixAdminCommand());
|
registerCommand("UserPrefixAdmin", new UserPrefixAdminCommand());
|
||||||
|
|
||||||
log("注册监听器...");
|
log("注册监听器...");
|
||||||
regListener(new UserListener());
|
regListener(new UserListener());
|
||||||
@@ -63,6 +68,7 @@ public class Main extends JavaPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
|
showPluginName();
|
||||||
log(getName() + " " + getDescription().getVersion() + " 开始卸载...");
|
log(getName() + " " + getDescription().getVersion() + " 开始卸载...");
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
@@ -98,6 +104,32 @@ public class Main extends JavaPlugin {
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void registerCommand(String commandName,
|
||||||
|
@NotNull CommandExecutor executor) {
|
||||||
|
registerCommand(commandName, executor, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerCommand(String commandName,
|
||||||
|
@NotNull CommandExecutor executor,
|
||||||
|
@Nullable TabCompleter tabCompleter) {
|
||||||
|
PluginCommand command = Bukkit.getPluginCommand(commandName);
|
||||||
|
if (command == null) return;
|
||||||
|
command.setExecutor(executor);
|
||||||
|
if (tabCompleter != null) command.setTabCompleter(tabCompleter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showPluginName() {
|
||||||
|
log("&b _ _ &f _____ __ _ ");
|
||||||
|
log("&b| | | | &f| __ \\ / _|(_) ");
|
||||||
|
log("&b| | | | ___ ___ _ __ &f| |__) |_ __ ___ | |_ _ __ __");
|
||||||
|
log("&b| | | |/ __| / _ \\| '__|&f| ___/| '__|/ _ \\| _|| |\\ \\/ /");
|
||||||
|
log("&b| |__| |\\__ \\| __/| | &f| | | | | __/| | | | > < ");
|
||||||
|
log("&b \\____/ |___/ \\___||_| &f|_| |_| \\___||_| |_|/_/\\_\\");
|
||||||
|
log("&8 ");
|
||||||
|
log("&8> &f" + getDescription().getWebsite());
|
||||||
|
}
|
||||||
|
|
||||||
private void showAD() {
|
private void showAD() {
|
||||||
log("&7感谢您使用 &3&lUserPrefix " + getDescription().getVersion() + "&7!");
|
log("&7感谢您使用 &3&lUserPrefix " + getDescription().getVersion() + "&7!");
|
||||||
log("&7本插件由 &b&lYourCraft &7提供长期支持与维护。");
|
log("&7本插件由 &b&lYourCraft &7提供长期支持与维护。");
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package cc.carm.plugin.userprefix.command;
|
package cc.carm.plugin.userprefix.command;
|
||||||
|
|
||||||
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
|
import cc.carm.plugin.userprefix.ui.PrefixSelectGUI;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -14,6 +15,15 @@ public class UserPrefixCommand implements CommandExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
PrefixSelectGUI.open((Player) sender);
|
PrefixSelectGUI.open((Player) sender);
|
||||||
|
} else {
|
||||||
|
if (strings.length != 1) {
|
||||||
|
sender.sendMessage("输入 /prefix <ID> 为玩家打开前缀GUI。");
|
||||||
|
} else {
|
||||||
|
Player player = Bukkit.getPlayer(strings[0]);
|
||||||
|
if (player != null) {
|
||||||
|
PrefixSelectGUI.open(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,14 @@ public class PrefixConfig {
|
|||||||
|
|
||||||
public static ConfigValue<Boolean> DEBUG = new ConfigValue<>("debug", Boolean.class, false);
|
public static ConfigValue<Boolean> DEBUG = new ConfigValue<>("debug", Boolean.class, false);
|
||||||
|
|
||||||
|
public static class CustomStorage {
|
||||||
|
|
||||||
|
public static ConfigValue<Boolean> ENABLE = new ConfigValue<>("custom-storage.enable", Boolean.class, false);
|
||||||
|
|
||||||
|
public static ConfigValue<String> PATH = new ConfigValue<>("custom-storage.path", String.class, "prefixes/");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static class Functions {
|
public static class Functions {
|
||||||
|
|
||||||
public static ConfigValue<Boolean> NAME_PREFIX = new ConfigValue<>("functions.OnNamePrefix", Boolean.class, true);
|
public static ConfigValue<Boolean> NAME_PREFIX = new ConfigValue<>("functions.OnNamePrefix", Boolean.class, true);
|
||||||
|
|||||||
@@ -32,8 +32,13 @@ public class ConfigValue<V> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public V get() {
|
public V get() {
|
||||||
|
if (getConfiguration().contains(this.configSection)) {
|
||||||
Object val = getConfiguration().get(this.configSection, this.defaultValue);
|
Object val = getConfiguration().get(this.configSection, this.defaultValue);
|
||||||
return this.clazz.isInstance(val) ? this.clazz.cast(val) : this.defaultValue;
|
return this.clazz.isInstance(val) ? this.clazz.cast(val) : this.defaultValue;
|
||||||
|
} else {
|
||||||
|
// 如果没有默认值,就把配置写进去,便于配置
|
||||||
|
return setDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set(V value) {
|
public void set(V value) {
|
||||||
@@ -45,4 +50,9 @@ public class ConfigValue<V> {
|
|||||||
this.source.save();
|
this.source.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public V setDefault() {
|
||||||
|
set(this.defaultValue);
|
||||||
|
return this.defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package cc.carm.plugin.userprefix.manager;
|
package cc.carm.plugin.userprefix.manager;
|
||||||
|
|
||||||
import cc.carm.plugin.userprefix.Main;
|
import cc.carm.plugin.userprefix.Main;
|
||||||
|
import cc.carm.plugin.userprefix.configuration.PrefixConfig;
|
||||||
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
|
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
|
||||||
import cc.carm.plugin.userprefix.util.ItemStackFactory;
|
import cc.carm.plugin.userprefix.util.ItemStackFactory;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@@ -37,17 +38,19 @@ public class PrefixManager {
|
|||||||
|
|
||||||
public static void loadConfiguredPrefixes() {
|
public static void loadConfiguredPrefixes() {
|
||||||
|
|
||||||
File prefixDataFolder = new File(Main.getInstance().getDataFolder() + File.separator + FOLDER_NAME);
|
File prefixDataFolder = getStorageFolder();
|
||||||
if (!prefixDataFolder.isDirectory() || !prefixDataFolder.exists()) {
|
if (!prefixDataFolder.isDirectory() || !prefixDataFolder.exists()) {
|
||||||
prefixDataFolder.mkdir();
|
prefixDataFolder.mkdir();
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] filesList = prefixDataFolder.list();
|
String[] filesList = prefixDataFolder.list();
|
||||||
if (filesList == null || filesList.length < 1) {
|
if (filesList == null || filesList.length < 1) {
|
||||||
Main.log("配置文件中暂无任何前缀配置,请检查。");
|
Main.log("配置文件夹中暂无任何前缀配置问,请检查。");
|
||||||
Main.log("There's no configured prefix.");
|
Main.log("There's no configured prefix.");
|
||||||
|
Main.log("Path: " + prefixDataFolder.getAbsolutePath());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<File> files = Arrays.stream(filesList)
|
List<File> files = Arrays.stream(filesList)
|
||||||
.map(s -> new File(prefixDataFolder, s))
|
.map(s -> new File(prefixDataFolder, s))
|
||||||
.filter(File::isFile)
|
.filter(File::isFile)
|
||||||
@@ -74,7 +77,8 @@ public class PrefixManager {
|
|||||||
|
|
||||||
public static void loadDefaultPrefix() {
|
public static void loadDefaultPrefix() {
|
||||||
PrefixManager.defaultPrefix = null;
|
PrefixManager.defaultPrefix = null;
|
||||||
ConfigurationSection defaultPrefixSection = ConfigManager.getPluginConfig().getConfig().getConfigurationSection("defaultPrefix");
|
ConfigurationSection defaultPrefixSection = ConfigManager.getPluginConfig()
|
||||||
|
.getConfig().getConfigurationSection("defaultPrefix");
|
||||||
if (defaultPrefixSection != null) {
|
if (defaultPrefixSection != null) {
|
||||||
try {
|
try {
|
||||||
String name = defaultPrefixSection.getString("name", "默认前缀");
|
String name = defaultPrefixSection.getString("name", "默认前缀");
|
||||||
@@ -150,5 +154,13 @@ public class PrefixManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static File getStorageFolder() {
|
||||||
|
if (PrefixConfig.CustomStorage.ENABLE.get()) {
|
||||||
|
return new File(PrefixConfig.CustomStorage.PATH.get());
|
||||||
|
} else {
|
||||||
|
return new File(Main.getInstance().getDataFolder() + File.separator + FOLDER_NAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,11 +24,22 @@ public class UserManager {
|
|||||||
|
|
||||||
public static HashSet<UUID> checkingPlayers = new HashSet<>();
|
public static HashSet<UUID> checkingPlayers = new HashSet<>();
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public static UserNameTag getNameTag(Player player) {
|
public static UserNameTag getNameTag(Player player) {
|
||||||
|
if (PrefixConfig.Functions.NAME_PREFIX.get()) {
|
||||||
|
if (nameTags.containsKey(player.getUniqueId())) {
|
||||||
return nameTags.get(player.getUniqueId());
|
return nameTags.get(player.getUniqueId());
|
||||||
|
} else {
|
||||||
|
return createNameTag(player);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
public static UserNameTag createNameTag(Player player) {
|
public static UserNameTag createNameTag(Player player) {
|
||||||
|
if (nameTags.containsKey(player.getUniqueId())) return nameTags.get(player.getUniqueId());
|
||||||
UserNameTag nameTag = new UserNameTag(player);
|
UserNameTag nameTag = new UserNameTag(player);
|
||||||
nameTags.put(player.getUniqueId(), nameTag);
|
nameTags.put(player.getUniqueId(), nameTag);
|
||||||
return nameTag;
|
return nameTag;
|
||||||
@@ -56,6 +67,7 @@ public class UserManager {
|
|||||||
* @param loadOthers 是否为玩家更新其他人的前缀(一般用于加入游戏)
|
* @param loadOthers 是否为玩家更新其他人的前缀(一般用于加入游戏)
|
||||||
*/
|
*/
|
||||||
public static void updatePrefixView(Player player, boolean loadOthers) {
|
public static void updatePrefixView(Player player, boolean loadOthers) {
|
||||||
|
if (!PrefixConfig.Functions.NAME_PREFIX.get()) return; //未启用的情况下,不需要进行任何操作。
|
||||||
ConfiguredPrefix playerPrefix = UserManager.getPrefix(player);
|
ConfiguredPrefix playerPrefix = UserManager.getPrefix(player);
|
||||||
|
|
||||||
UserNameTag tag = getNameTag(player);
|
UserNameTag tag = getNameTag(player);
|
||||||
|
|||||||
@@ -1,7 +1,15 @@
|
|||||||
version: ${project.version}
|
version: ${project.version} #配置文件版本,若与插件版本不同请记得检查配置文件内容
|
||||||
|
|
||||||
debug: false
|
debug: false
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# 自定义存储位置
|
||||||
|
# 默认存储位置为 “插件文件夹”/prefixes
|
||||||
|
# 可以规定到远程文件夹中去寻找前缀相关的设定
|
||||||
|
# 支持绝对文件路径,如 "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false # 是否启用
|
||||||
|
path: "prefixes/" # 一定要指向一个文件夹!
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
||||||
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
|
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
|
||||||
|
|||||||
@@ -2,6 +2,13 @@ version: ${project.version} # DO NOT EDIT IT
|
|||||||
|
|
||||||
debug: false #DEBUG OUT PUT
|
debug: false #DEBUG OUT PUT
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# Custom storage location
|
||||||
|
# default location is "./prefixes"
|
||||||
|
# Support absolute file path , such as "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false
|
||||||
|
path: "prefixes/" # Must be a folder!
|
||||||
|
|
||||||
GUI:
|
GUI:
|
||||||
title: "&f&lMy Prefixes List" # Title of the GUI
|
title: "&f&lMy Prefixes List" # Title of the GUI
|
||||||
items:
|
items:
|
||||||
|
|||||||
@@ -26,9 +26,6 @@ permission: "yc.vip"
|
|||||||
# itemHasPermission [Necessary]
|
# itemHasPermission [Necessary]
|
||||||
# This Item will be displayed when player has permission
|
# This Item will be displayed when player has permission
|
||||||
itemHasPermission:
|
itemHasPermission:
|
||||||
==: org.bukkit.inventory.ItemStack
|
|
||||||
type: DIAMOND
|
|
||||||
meta:
|
|
||||||
==: org.bukkit.inventory.ItemStack
|
==: org.bukkit.inventory.ItemStack
|
||||||
type: DIAMOND
|
type: DIAMOND
|
||||||
meta:
|
meta:
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
main: cc.carm.plugin.userprefix.Main
|
main: cc.carm.plugin.userprefix.Main
|
||||||
name: UserPrefix
|
name: ${project.name}
|
||||||
version: ${project.version}
|
version: ${project.version}
|
||||||
authors:
|
authors:
|
||||||
- Carm
|
- Carm
|
||||||
- YourCraft
|
- ${project.organization.name}
|
||||||
- SakuraGame
|
- SakuraGame
|
||||||
website: "https://github.com/CarmJos/UserPrefix"
|
website: ${project.url}
|
||||||
|
description: ${project.description}
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
- LuckPerms
|
- LuckPerms
|
||||||
softdepend:
|
softdepend:
|
||||||
|
|||||||
+87
-13
@@ -67,13 +67,89 @@
|
|||||||
[hr]
|
[hr]
|
||||||
[size=4][b]基础配置文件 [/b][/size][color=#24292f][font=Tahoma][size=4](config.yml)[/size][/font][/color]
|
[size=4][b]基础配置文件 [/b][/size][color=#24292f][font=Tahoma][size=4](config.yml)[/size][/font][/color]
|
||||||
[spoiler]
|
[spoiler]
|
||||||
[code] version: 1.0.0-SNAPSHOT # 配置文件版本,一般不会动。
|
[code]
|
||||||
|
version: ${project.version} #配置文件版本,若与插件版本不同请记得检查配置文件内容
|
||||||
|
|
||||||
debug: false #debug输出,开发者用的
|
debug: false
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# 自定义存储位置
|
||||||
|
# 默认存储位置为 “插件文件夹”/prefixes
|
||||||
|
# 可以规定到远程文件夹中去寻找前缀相关的设定
|
||||||
|
# 支持绝对文件路径,如 "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false # 是否启用
|
||||||
|
path: "prefixes/" # 一定要指向一个文件夹!
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
|
||||||
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个[/code][/spoiler]
|
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
|
||||||
|
chat:
|
||||||
|
# 聊天功能
|
||||||
|
# - 我不推荐使用本插件的聊天功能,而是建议使用其他的聊天插件。
|
||||||
|
# - 本插件仅仅提供了**最基本**的格式变量支持,不包含其他任何功能。
|
||||||
|
# - 注意聊天格式需要遵守Bukkit原格式,即不得缺失 “%1$s” 和 “%2$s” 。
|
||||||
|
# - 本插件的聊天功能不影响其他插件对聊天事件的操作。
|
||||||
|
enable: false # 是否启用
|
||||||
|
format: "<%UserPrefix_prefix%%1$s> %2$s" #聊天的格式,注意 “%1$s” 和 “%2$s” 不可缺少,分别代表 玩家名 与 消息内容 。
|
||||||
|
|
||||||
|
GUI:
|
||||||
|
title: "&f&l我的前缀 &8| 列表"
|
||||||
|
items:
|
||||||
|
# 【必须】 GUI中可能存在的其他物品
|
||||||
|
next-page: # 下一页物品,如果没有下一页则不显示
|
||||||
|
==: org.bukkit.inventory.ItemStack
|
||||||
|
type: ARROW
|
||||||
|
meta:
|
||||||
|
==: ItemMeta
|
||||||
|
meta-type: UNSPECIFIC
|
||||||
|
display-name: "§f下一页"
|
||||||
|
lore:
|
||||||
|
- ""
|
||||||
|
- "§f右键可前往最后一页哦~"
|
||||||
|
previous-page: # 上一页物品,如果没有上一页则不显示
|
||||||
|
==: org.bukkit.inventory.ItemStack
|
||||||
|
type: ARROW
|
||||||
|
meta:
|
||||||
|
==: ItemMeta
|
||||||
|
meta-type: UNSPECIFIC
|
||||||
|
display-name: "§f上一页"
|
||||||
|
lore:
|
||||||
|
- ""
|
||||||
|
- "§f右键可前往第一页哦~"
|
||||||
|
|
||||||
|
Sounds: #相关的声音,注释掉则不播放声音 格式为 【声音名:音量:音调】 或 【声音名:音量】 或 【声音名】
|
||||||
|
openGUI: "BLOCK_NOTE_BLOCK_PLING:1:1"
|
||||||
|
guiClick: "UI_BUTTON_CLICK"
|
||||||
|
prefixChange: "ENTITY_VILLAGER_YES"
|
||||||
|
prefixExpired: "ENTITY_VILLAGER_NO"
|
||||||
|
|
||||||
|
# 默认前缀的配置
|
||||||
|
# 默认前缀的权重为0哦
|
||||||
|
defaultPrefix:
|
||||||
|
name: "默认前缀"
|
||||||
|
content: "&b"
|
||||||
|
itemNotUsing:
|
||||||
|
==: org.bukkit.inventory.ItemStack
|
||||||
|
type: NAME_TAG
|
||||||
|
meta:
|
||||||
|
==: ItemMeta
|
||||||
|
meta-type: UNSPECIFIC
|
||||||
|
display-name: "§f默认玩家前缀 §f(点击切换)"
|
||||||
|
lore:
|
||||||
|
- ""
|
||||||
|
- "§a➥ 点击切换到该前缀"
|
||||||
|
itemUsing:
|
||||||
|
==: org.bukkit.inventory.ItemStack
|
||||||
|
type: NAME_TAG
|
||||||
|
meta:
|
||||||
|
==: ItemMeta
|
||||||
|
meta-type: UNSPECIFIC
|
||||||
|
display-name: "§f默认玩家前缀"
|
||||||
|
lore:
|
||||||
|
- ""
|
||||||
|
- "§a✔ 您正在使用该前缀"
|
||||||
|
[/code]
|
||||||
|
[/spoiler]
|
||||||
|
|
||||||
[b][size=4][backcolor=transparent]消息配置文件[/backcolor][/size] [/b][size=4](messages.yml)[/size]
|
[b][size=4][backcolor=transparent]消息配置文件[/backcolor][/size] [/b][size=4](messages.yml)[/size]
|
||||||
[spoiler][code]selected:
|
[spoiler][code]selected:
|
||||||
@@ -96,7 +172,7 @@ list-value:
|
|||||||
- "&8- &7显示名 &r%(name) &7权限 &r%(permission)"
|
- "&8- &7显示名 &r%(name) &7权限 &r%(permission)"
|
||||||
- "&8- &7内容示例&r %(content) %(sender_name)"[/code][/spoiler]
|
- "&8- &7内容示例&r %(content) %(sender_name)"[/code][/spoiler]
|
||||||
|
|
||||||
[size=4][backcolor=transparent][b]前缀配置文件[/b][/backcolor] (prefixes/*.yml)[/size]
|
[size=4][backcolor=transparent][b]前缀配置文件[/b][/backcolor] (prefixes/*.yml) [自2.1.7可自定义目录][/size]
|
||||||
[align=left][font=-apple-system, BlinkMacSystemFont, "][size=3][color=#000000]所有前缀均为单独的配置文件,存放于 [u]插件配置目录/prefixes[/u] 下,便于管理。[/color][/size][/font][/align][align=left][font=-apple-system, BlinkMacSystemFont, "][size=3][color=#000000]文件名理论上可以随便取,推荐使用英文,部分符号可能会影响正常读取,请避免使用。[/color][/size][/font][/align][align=left][spoiler][/align][code]# 唯一标识 [必须]
|
[align=left][font=-apple-system, BlinkMacSystemFont, "][size=3][color=#000000]所有前缀均为单独的配置文件,存放于 [u]插件配置目录/prefixes[/u] 下,便于管理。[/color][/size][/font][/align][align=left][font=-apple-system, BlinkMacSystemFont, "][size=3][color=#000000]文件名理论上可以随便取,推荐使用英文,部分符号可能会影响正常读取,请避免使用。[/color][/size][/font][/align][align=left][spoiler][/align][code]# 唯一标识 [必须]
|
||||||
# 将用于记录玩家所选的前缀,以及用于数据的缓存。
|
# 将用于记录玩家所选的前缀,以及用于数据的缓存。
|
||||||
# 必须 必须 必须 保持唯一!
|
# 必须 必须 必须 保持唯一!
|
||||||
@@ -177,11 +253,14 @@ itemNoPermission:
|
|||||||
|
|
||||||
[size=5][b]下载地址[/b][/size]
|
[size=5][b]下载地址[/b][/size]
|
||||||
[hr]
|
[hr]
|
||||||
[size=3][b]最新版本 2.1.0 [/b][/size][attach]1909962[/attach][quote][b][size=3]更新内容[/size][/b]
|
[size=3][b]最新版本 [/b][/size][size=3][b]2.1.7 [/b][/size][attach]1919669[/attach][quote][b][size=3]更新内容[/size][/b]
|
||||||
|
1. 提供自定义配置文件存储位置的功能,便于多子服共享配置。(custome-storage)
|
||||||
|
2. 添加控制台打开玩家菜单时的反馈(来自 @Yuri南城 )。
|
||||||
|
3. 支持由控制台为其他玩家打开GUI。
|
||||||
|
4. 若出现新配置文件条目,将自动写入默认值,便于配置。[/quote][spoiler][size=3][b]2.1.2 [/b][/size][attach]1912028[/attach][quote][b][size=3]更新内容[/size][/b]
|
||||||
|
1. 修复不开启插件自带的头顶前缀功能时出现的报错。[/quote]
|
||||||
|
[size=3][b]2.1.0 [/b][/size][attach]1909962[/attach][quote][b][size=3]更新内容[/size][/b]
|
||||||
1. 添加聊天相关设定,支持聊天前缀。(但不推荐使用哦~)[/quote]
|
1. 添加聊天相关设定,支持聊天前缀。(但不推荐使用哦~)[/quote]
|
||||||
|
|
||||||
[spoiler]
|
|
||||||
|
|
||||||
[size=3][b] 2.0.0 [/b][/size][attach]1905700[/attach]
|
[size=3][b] 2.0.0 [/b][/size][attach]1905700[/attach]
|
||||||
[quote][b][size=3]更新内容[/size][/b]
|
[quote][b][size=3]更新内容[/size][/b]
|
||||||
1. 修复低版本可能无法读取物品的bug。
|
1. 修复低版本可能无法读取物品的bug。
|
||||||
@@ -233,8 +312,3 @@ itemNoPermission:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -90,10 +90,17 @@ After installed the [URL='https://github.com/PlaceholderAPI/PlaceholderAPI']Plac
|
|||||||
Notice: The default configuration is based on Chinese. You can find the English Version [URL='https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/config.yml']here[/URL].
|
Notice: The default configuration is based on Chinese. You can find the English Version [URL='https://github.com/CarmJos/UserPrefix/blob/master/src/main/resources/en_US/config.yml']here[/URL].
|
||||||
|
|
||||||
[code=YAML]
|
[code=YAML]
|
||||||
version: ${project.version} # DO NOT EDIT IT
|
version: ${project.version}
|
||||||
|
|
||||||
debug: false #DEBUG OUT PUT
|
debug: false #DEBUG OUT PUT
|
||||||
|
|
||||||
|
custom-storage:
|
||||||
|
# Custom storage location
|
||||||
|
# default location is "./prefixes"
|
||||||
|
# Support absolute file path , such as "/etc/minecraft/configurations/prefixes/"
|
||||||
|
enable: false
|
||||||
|
path: "prefixes/" # Must be a folder!
|
||||||
|
|
||||||
GUI:
|
GUI:
|
||||||
title: "&f&lMy Prefixes List" # Title of the GUI
|
title: "&f&lMy Prefixes List" # Title of the GUI
|
||||||
items:
|
items:
|
||||||
|
|||||||
Reference in New Issue
Block a user