1
mirror of https://github.com/CarmJos/UserPrefix.git synced 2026-06-05 09:01:39 +08:00

Compare commits

...

32 Commits

Author SHA1 Message Date
carm dd96c6d6da 修改源地址 2021-10-19 10:49:35 +08:00
carm ba7d4b90c3 修改源地址 2021-10-19 10:47:55 +08:00
carm ab984acc73 修改源地址 2021-10-19 10:41:18 +08:00
carm 32df1de83d 2.1.5
1. 修复示例config中yaml格式错误的问题
2. 更改构建方式,分开构建与部署的工作流。
2021-10-19 10:40:02 +08:00
carm dfe447393e 2.1.5
1. 修复示例config中yaml格式错误的问题
2. 更改构建方式,分开构建与部署的工作流。
2021-10-19 10:37:41 +08:00
Carm 26ce6d7e66 Merge pull request #3 from OskyEdz/patch-1
YAML formatting
2021-10-19 10:16:04 +08:00
OskyEdz 2e4d1122d9 YAML formatting
Fixed mapping values are not allowed in this context error.
2021-10-19 02:15:38 +02:00
carm b5a2199e1e Update .gitignore 2021-10-19 00:37:07 +08:00
carm 3678a201c7 2.1.4 修改tag机制与测试部署 2021-10-07 23:04:00 +08:00
carm f08a5e84d3 2.1.3 自动构建与部署 (无实质更新) 2021-10-07 22:52:20 +08:00
carm 7743bbb3ff 2.1.3 自动构建与部署 (无实质更新) 2021-10-07 22:50:23 +08:00
carm 1942c50078 2.1.3 自动构建与部署 (无实质更新) 2021-10-07 22:40:53 +08:00
carm 2b701510bc 添加更多maven介绍 2021-10-07 22:37:31 +08:00
carm 0d17e7f1b6 添加packages自动部署 2021-10-07 21:51:16 +08:00
carm 3a41560972 添加packages自动部署 2021-10-07 21:49:39 +08:00
Carm 313aa77d72 Update README.md 2021-10-05 19:40:48 +08:00
Carm dab774a389 Update README.md 2021-10-05 19:29:51 +08:00
Carm 5469c3101f Delete PAY.jpg 2021-10-05 19:29:38 +08:00
Carm dbf826cec8 补全协议介绍 2021-10-05 18:17:08 +08:00
Carm 87c87127b9 Update maven.yml 2021-10-05 18:14:41 +08:00
Carm 50c35488ef Update README.md 2021-10-03 23:54:12 +08:00
Carm 29539ddb6f Update README-en.md 2021-10-03 23:53:40 +08:00
Carm cab2b60abf add code link 2021-10-03 17:57:22 +08:00
Carm 693ff4a4af 添加相关代码参考的地址 2021-10-03 17:28:48 +08:00
Carm 7c90b8ff99 Rename ----.md to feature_issues.md 2021-10-02 17:00:06 +08:00
Carm e5ba217873 Update issue templates 2021-10-02 16:59:42 +08:00
Carm 33e0e64b7d Rename ----.md to bugs_report.md 2021-10-02 16:54:01 +08:00
Carm 6eb60d83d8 添加问题issues模板 2021-10-02 16:53:24 +08:00
carm 875655bc60 2.1.2版本更新 修复 “OnNamePrefix” 为true时存在的报错现象 2021-10-02 15:41:39 +08:00
carm 9ca289e4ba 2.1.1版本更新 修复 “OnNamePrefix” 为false时存在的报错现象 2021-10-02 15:40:35 +08:00
carm 41a9582d03 2.1.1版本更新 修复 “OnNamePrefix” 为false时存在的报错现象 2021-10-02 15:24:54 +08:00
carm e14901ac86 2.1.0版本更新 支持聊天前缀 2021-09-27 01:32:17 +08:00
18 changed files with 396 additions and 207 deletions
+30
View File
@@ -0,0 +1,30 @@
---
name: 问题提交
about: 提交并描述问题,帮助我们对其进行检查与修复。
title: ''
labels: bug
assignees: ''
---
**问题简述**
用简短的话语描述一下大概问题。
**问题来源**
描述一下通过哪些操作才发现的问题,如:
1. 打开 '...'
2. 点击了 '....'
3. 出现了报错 '....'
**预期结果**(可选)
如果问题不发生,应该是什么情况
**问题截图/问题报错**
如果有报错或输出,请提供截图。
**操作环境**
请在后台输入 `version` 并复制相关输出。
**其他补充**
如有其他补充,可以在这里描述。
+20
View File
@@ -0,0 +1,20 @@
---
name: 功能需求
about: 希望我们提供更多的功能。
title: ''
labels: enhancement
assignees: ''
---
**功能简述**
简单的描述一下你想要的功能
**需求来源**
简单的描述一下为什么需要这个功能。
**功能参考**(可选)
如果有相关功能的参考,如文本、截图,请提供给我们。
**附加内容**
如果有什么小细节需要重点注意,请在这里告诉我们。
+33
View File
@@ -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
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
+16 -9
View File
@@ -1,13 +1,12 @@
# 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: Java CI with Maven
name: Build
on:
# 支持手动触发构建
workflow_dispatch:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
@@ -16,16 +15,24 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
- name: "Set up JDK"
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
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: mkdir staging && cp target/*.jar staging
- uses: actions/upload-artifact@v2
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: "Target Stage"
run: mkdir staging && cp target/*.jar staging
- name: "Upload artifact"
uses: actions/upload-artifact@v2
with:
name: Package
name: artifact
path: staging
+2 -1
View File
@@ -1,3 +1,4 @@
/.idea/
/target/
./*.iml
./*.iml
*.iml
+16 -8
View File
@@ -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
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
@@ -37,15 +37,16 @@ For development dependencies, please see [Dependencies](https://github.com/Carm
- **Theoretically** support ALL MineCraft Versions.
- 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.
- 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!
- 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)
- GUI with automatic sorting and page turning!
- Support PlaceholderAPI variables!
- Support Hex color! (Version 1.16 and above) `&(#Color)`
- 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)
- Simple Chat Format Placeholder support. (Not Recommended) [](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/ChatListener.java)
- 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 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)`
## Notice
@@ -144,8 +145,15 @@ functions:
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
chat:
# Chat Function
# - I recommend using other chat plugins instead of using this plugin,
# - this plugin only provides very basic chat format placeholders.
# - Notice that: format must has “%1$s” and “%2$s” for PlayerName and Message (Bukkit Chat Event)
enable: false
format: "<%UserPrefix_prefix%%1$s> %2$s"
Sounds:
# Format is [SOUND_NAME:Volume:Pitch] or [SOUND_NAME:Volume] or [SOUND_NAME]
+33 -9
View File
@@ -13,9 +13,9 @@
本插件基于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
- 理论上全版本支持!
- 游戏内重载配置文件并实时更新到玩家!
- 当玩家权限变更时会实时监测前缀,若权限不足则自动更换前缀并提示!
- 当玩家权限变更时会实时监测前缀,若权限不足则自动更换前缀并提示![](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/processor/UserNodeUpdateProcessor.java)
- 可配置的声音、消息!
- 前缀图标可配置“选中”、“有权限”与“无权限”三种状态的物品
- 物品的配置通过ItemStack原生配置,支持MC所有的设定!
- 具体的设定请参考其他文档哦~
- TabList自动按照前缀的权重排序 (如有冲突可关掉)
- 玩家头顶前缀显示 (如有冲突可关掉)
- 自动排序,且可翻页的GUI
- 支持PlaceholderAPI变量!(凡支持的都可以使用,如BungeeTabListPlus)
- 支持Hex颜色!(1.16以上版本) 格式 `&(#颜色代码)`
- 玩家头顶前缀显示 (如有冲突可关掉) [](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/nametag/UserNameTag.java)
- 简单的聊天变量修改功能!(不推荐使用) [](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/listener/ChatListener.java)
- 自动排序,且可翻页的GUI[](https://github.com/CarmJos/UserPrefix/blob/master/src/main/java/cc/carm/plugin/userprefix/ui/PrefixSelectGUI.java)
- 支持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)`
## 注意事项
@@ -105,6 +107,14 @@ debug: false #debug输出,开发者用的
functions:
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
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| 列表"
@@ -283,9 +293,23 @@ 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" />
## 开源协议
本项目源码采用 [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) 。*
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

+134 -86
View File
@@ -5,13 +5,45 @@
<modelVersion>4.0.0</modelVersion>
<groupId>cc.carm.plugin</groupId>
<artifactId>UserPrefix</artifactId>
<version>2.0.0</version>
<artifactId>userprefix</artifactId>
<version>2.1.5</version>
<name>用户前缀系统</name>
<description>轻便、高效、实时的用户前缀系统。</description>
<url>https://github.com/CarmJos/UserPrefix</url>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/CarmJos/UserPrefix/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/CarmJos/UserPrefix/actions/workflows/maven.yml</url>
</ciManagement>
<developers>
<developer>
<id>CarmJos</id>
<name>Carm Jos</name>
<email>carm@carm.cc</email>
<roles>
<role>Main Developer</role>
</roles>
<url>https://work.carm.cc</url>
</developer>
</developers>
<licenses>
<license>
<name>GNU General Public License v3.0</name>
<url>https://opensource.org/licenses/GPL-3.0</url>
</license>
</licenses>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.deploy.skip>true</maven.deploy.skip>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
@@ -19,8 +51,8 @@
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/public/</url>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
@@ -28,10 +60,10 @@
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<repository>
<id>lss233-repo</id>
<url>https://lss233.littleservice.cn/repositories/minecraft</url>
</repository>
<!-- <repository>-->
<!-- <id>lss233-repo</id>-->
<!-- <url>https://crystal.app.lss233.com/repositories/minecraft</url>-->
<!-- </repository>-->
<repository>
<id>oss-repo</id>
@@ -47,13 +79,28 @@
<id>maven-central</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/CarmJos/UserPrefix</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/CarmJos/UserPrefix</url>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<artifactId>spigot-api</artifactId>
<version>1.17-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -82,6 +129,83 @@
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<classifier>javadoc</classifier>
<links>
<link>https://javadoc.io/doc/org.jetbrains/annotations/</link>
</links>
<detectJavaApiLink>true</detectJavaApiLink>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgument>-parameters</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/MANIFEST.MF</exclude>
<exclude>META-INF/*.txt</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
@@ -91,82 +215,6 @@
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<classifier>javadoc</classifier>
<links>
<link>https://javadoc.io/doc/org.jetbrains/annotations/</link>
</links>
<detectJavaApiLink>true</detectJavaApiLink>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgument>-parameters</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/MANIFEST.MF</exclude>
<exclude>META-INF/*.txt</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
<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>
<resources>
<resource>
<directory>src/main/resources</directory>
@@ -4,6 +4,7 @@ import cc.carm.plugin.userprefix.command.UserPrefixAdminCommand;
import cc.carm.plugin.userprefix.command.UserPrefixCommand;
import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.hooker.UserPrefixExpansion;
import cc.carm.plugin.userprefix.listener.ChatListener;
import cc.carm.plugin.userprefix.listener.UserListener;
import cc.carm.plugin.userprefix.listener.processor.UserNodeUpdateProcessor;
import cc.carm.plugin.userprefix.manager.ConfigManager;
@@ -38,6 +39,7 @@ public class Main extends JavaPlugin {
log("注册监听器...");
regListener(new UserListener());
regListener(new ChatListener());
ServiceManager.getService().getEventBus().subscribe(this, UserDataRecalculateEvent.class, UserNodeUpdateProcessor::process);
if (MessageUtil.hasPlaceholderAPI()) {
@@ -16,6 +16,13 @@ public class PrefixConfig {
public static ConfigValue<Boolean> NAME_PREFIX = new ConfigValue<>("functions.OnNamePrefix", Boolean.class, true);
public static ConfigValue<Boolean> AUTO_USE = new ConfigValue<>("functions.autoUsePrefix", Boolean.class, true);
public static class Chat {
public static ConfigValue<Boolean> ENABLE = new ConfigValue<>("functions.chat.enable", Boolean.class, false);
public static ConfigValue<String> FORMAT = new ConfigValue<>("functions.chat.format", String.class, "<%1$s> %2$s");
}
}
public static class GUI {
@@ -0,0 +1,32 @@
package cc.carm.plugin.userprefix.listener;
import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.configuration.PrefixConfig;
import cc.carm.plugin.userprefix.util.MessageUtil;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class ChatListener implements Listener {
@EventHandler
public void onChat(AsyncPlayerChatEvent event) {
if (!PrefixConfig.Functions.Chat.ENABLE.get()) return;
String format = PrefixConfig.Functions.Chat.FORMAT.get();
if (format == null || format.length() < 1) return;
if (!MessageUtil.hasPlaceholderAPI()) return;
try {
event.setFormat(PlaceholderAPI.setPlaceholders(event.getPlayer(), format));
} catch (Exception exception) {
Main.log("Please check the chat configuration.");
Main.log("请检查配置文件中聊天相关是否配置正确。");
exception.printStackTrace();
}
}
}
@@ -24,11 +24,22 @@ public class UserManager {
public static HashSet<UUID> checkingPlayers = new HashSet<>();
@Nullable
public static UserNameTag getNameTag(Player player) {
return nameTags.get(player.getUniqueId());
if (PrefixConfig.Functions.NAME_PREFIX.get()) {
if (nameTags.containsKey(player.getUniqueId())) {
return nameTags.get(player.getUniqueId());
} else {
return createNameTag(player);
}
} else {
return null;
}
}
@NotNull
public static UserNameTag createNameTag(Player player) {
if (nameTags.containsKey(player.getUniqueId())) return nameTags.get(player.getUniqueId());
UserNameTag nameTag = new UserNameTag(player);
nameTags.put(player.getUniqueId(), nameTag);
return nameTag;
@@ -56,6 +67,7 @@ public class UserManager {
* @param loadOthers 是否为玩家更新其他人的前缀(一般用于加入游戏)
*/
public static void updatePrefixView(Player player, boolean loadOthers) {
if (!PrefixConfig.Functions.NAME_PREFIX.get()) return; //未启用的情况下,不需要进行任何操作。
ConfiguredPrefix playerPrefix = UserManager.getPrefix(player);
UserNameTag tag = getNameTag(player);
+8
View File
@@ -5,6 +5,14 @@ debug: false
functions:
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
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| 列表"
+7
View File
@@ -35,6 +35,13 @@ functions:
# When the player does not choose a prefix by himself,
# the prefix with the highest weight will be used automatically
autoUsePrefix: true
chat:
# Chat Function
# - I recommend using other chat plugins instead of using this plugin,
# - this plugin only provides very basic chat format placeholders.
# - Notice that: format must has “%1$s” and “%2$s” for PlayerName and Message (Bukkit Chat Event)
enable: false
format: "<%UserPrefix_prefix%%1$s> %2$s"
+25 -28
View File
@@ -29,43 +29,40 @@ itemHasPermission:
==: org.bukkit.inventory.ItemStack
type: DIAMOND
meta:
==: org.bukkit.inventory.ItemStack
type: DIAMOND
meta:
==: ItemMeta
meta-type: UNSPECIFIC
display-name: "§b§lVIP Prefix"
lore:
- ""
- "§a➥ Click to use"
==: ItemMeta
meta-type: UNSPECIFIC
display-name: "§b§lVIP Prefix"
lore:
- ""
- "§a➥ Click to use"
# 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 its selected
lore:
- ""
- "§a✔ Selected"
type: DIAMOND
meta:
==: ItemMeta
meta-type: UNSPECIFIC
display-name: "§b§lVIP Prefix"
enchants:
PROTECTION_ENVIRONMENTAL: 1 #Add an enchantment so it looks like its 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!"
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!"
+9 -62
View File
@@ -73,66 +73,7 @@ debug: false #debug输出,开发者用的
functions:
OnNamePrefix: true # 是否给头顶上添加前缀,该方法用到了头顶的那个计分板,如有冲突请关掉哦~
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个
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<img src="file:///C:\Users\Karmu\AppData\Roaming\Tencent\QQ\Temp\FZ~{7VEC09VVKFU7J7X3CT8.png"> 您正在使用该前缀"
[/code][/spoiler]
autoUsePrefix: true # 自动前缀显示 当玩家没有自己选择一个前缀的时候,会自动使用所拥有的的前缀中权重最高的那一个[/code][/spoiler]
[b][size=4][backcolor=transparent]消息配置文件[/backcolor][/size] [/b][size=4](messages.yml)[/size]
[spoiler][code]selected:
@@ -236,13 +177,17 @@ itemNoPermission:
[size=5][b]下载地址[/b][/size]
[hr]
[size=3][b]最新版本 [/b][/size][size=3][b] 2.0.0 [/b][/size][attach]1905700[/attach]
[size=3][b]最新版本 2.1.0 [/b][/size][attach]1909962[/attach][quote][b][size=3]更新内容[/size][/b]
1. 添加聊天相关设定,支持聊天前缀。(但不推荐使用哦~)[/quote]
[spoiler]
[size=3][b] 2.0.0 [/b][/size][attach]1905700[/attach]
[quote][b][size=3]更新内容[/size][/b]
1. 修复低版本可能无法读取物品的bug。
2. 分离配置文件,消息配置文件改为messages.yml,前缀配置文件改 prefixes/*.yml,便于配置和管理。
3. 允许配置GUI中上一页和下一页的物品。
4. 补全帮助文档,在插件首次加载将提供一份英文版的配置,以便使用。[/quote]
[spoiler]
[size=3][b] 1.2.5 [/b][/size][attach]1905430[/attach][quote][size=3][b]更新内容[/b]
1. 支持指令的多语言配置。[/size][/quote]
[b][size=3]
@@ -291,3 +236,5 @@ itemNoPermission:
+9 -3
View File
@@ -59,9 +59,8 @@ Please turn of the [U]functions.OnNamePrefix[/U] in the configuration if there i
[SIZE=4][B]3. Item icon configuration problem[/B][/SIZE]
Items are read through the ItemStack serialization method provided by Bukkit. For related configuration methods, please refer to [URL='https://www.spigotmc.org/wiki/itemstack-serialization/']ItemStack Serialization[/URL].
[SIZE=5][B]Commands[/B][/SIZE]
This plugin's Commands are based on Chinese! May support multi-language in the future.
[SIZE=5][B]Commands[/B]
[/SIZE]
[code]
/UserPrefix or /prefix #Open prefix GUI
/UserPrefixAdmin # View Admin Command Help
@@ -128,6 +127,13 @@ functions:
# When the player does not choose a prefix by himself,
# the prefix with the highest weight will be used automatically
autoUsePrefix: true
chat:
# Chat Function
# - I recommend using other chat plugins instead of using this plugin,
# - this plugin only provides very basic chat format placeholders.
# - Notice that: format must has “%1$s” and “%2$s” for PlayerName and Message (Bukkit Chat Event)
enable: false
format: "<%UserPrefix_prefix%%1$s> %2$s"
Sounds:
# Format is [SOUND_NAME:Volume:Pitch] or [SOUND_NAME:Volume] or [SOUND_NAME]