Skip to content

Commit

Permalink
v2.0 更新自述文件
Browse files Browse the repository at this point in the history
  • Loading branch information
ApliNi committed Jan 21, 2024
1 parent ec36f7c commit 9b5cf69
Show file tree
Hide file tree
Showing 6 changed files with 135 additions and 41 deletions.
78 changes: 61 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## useTranslatedNames
内置获取翻译名功能的JSON字符串替换插件, 可用于翻译 CoreProtect 等插件的消息
内置获取翻译名功能的JSON字符串替换插件, 可用于消息替换和翻译 CoreProtect 等插件的消息

![](https://github.com/ApliNi/useTranslatedNames/blob/main/_img/%E6%95%88%E6%9E%9C%E5%9B%BE.png)

Expand All @@ -8,35 +8,37 @@
---

## 功能和指令
- `/usetranslatednames` 显示插件信息
- `/usetranslatednames reload` 重新加载配置
- `/usetranslatednames debug` 调试模式
- `/utn` 显示插件信息
- `/utn reload` - 重新加载配置
- `/utn debug` - 调试模式

插件会根据配置捕获对应的服务端消息, 然后替换其中的物品名称并重新发送消息. 详细信息参考"配置"部分.


### 配置
```yaml
config-version: 2
list:
configVersion: 3

dev:
# true = 适用于 1.20.4 版本的方法 (需要 ProtocolLib 5.2.0
# false = 适用于更低版本的旧方法
listeningMode: true

list: # 替换列表

# 翻译实体名 :: 24.03/m 前 #**苦力怕** 破坏 草方块
- inspect-length: 1024
replace-regex: '\{"text":"#([a-z0-9_]+)§f([^"]+)","color":"#31B0E8"\}'
replace-to: >-
- inspectLength: 1024
get: '\{"text":"#([a-z0-9_]+)§f([^"]+)","color":"#31B0E8"\}'
set: >-
{"text":"§8#"},
{"translate":"_$1:TranslatedName_","color":"#31b0e8"},
{"text":"§f_$2_","color":"#31B0E8"}
# 翻译物品 :: 24.03/m 前 #苦力怕 破坏 **草方块**
- inspect-length: 1024 # 检查消息长度是否小于此值
# 替换, 使用正则表达式匹配
replace-regex: '\{"text":"([a-z0-9_]+)(?:§f.{0,3})?","color":"#31B0E8"\}'
# _$1_ = 正则匹配到的变量 1, 也可以是 `_$2_` (第 2 个变量)...
# _$1:ItemType_ = 将 _$1_ 用于获取物品类型, 提供给 JSON hoverEvent 使用的物品类型 show_entity, show_item(block)
# _$1:TranslatedName_ = 将 _$1_ 用于名称翻译, 返回与语言路径对应的 KEY, 例如 `entity.minecraft.allay`
replace-to: >-
- inspectLength: 1024
get: '\{"text":"([a-z0-9_]+)(?:§f.{0,3})?","color":"#31B0E8"\}'
set: >-
{"extra":[
{"translate":"_$1:TranslatedName_"},
{"text":" §8_$1_",
Expand All @@ -47,7 +49,49 @@ list:
"clickEvent":{"action":"copy_to_clipboard","value":"_$1_"}
}
],"color":"#31b0e8","text":""}
# [示例] 所有可用配置
# [可选, 默认所有玩家] 对拥有该权限的玩家处理这条消息
- permission: 'minecraft.command'
# [必选] 检查消息长度是否小于此值
inspectLength: 64
# [必选] 使用正则表达式匹配
get: '^\{"text":"","extra":\["Missing required argument (\d+)"\]\}$'
# [必选] 将消息替换为
# _$1_ = 正则匹配到的变量 1, 也可以是 `_$2_` (第 2 个变量)...
# _$1:ItemType_ = 将 _$1_ 用于获取物品类型, 提供给 JSON hoverEvent 使用的物品类型 show_entity, show_item(block)
# _$1:TranslatedName_ = 将 _$1_ 用于名称翻译, 返回与语言路径对应的 KEY, 例如 `entity.minecraft.allay`
# _$1:Words:组名_ = 将 _$1_ 用于词替换, 需要配置 words.yml
# 其他示例:
# set: >- # YAML 语法中使用 `>-` 可以编写换行的文本, 效果如上
# set: '' # 如果为空, 则取消发送这条消息
set: '{"text":"§bIpacEL §f> §b此指令需要至少§a_$1:Words:中文数字_个参数"}'
# [可选, 默认聊天栏] 将消息显示在操作栏 (物品栏上面)
displayPlace: 'ACTION_BAR'

```

```yaml
# 词替换配置文件
words:
# 创建一个组, 组名不应包含下划线 "_"
中文数字:
# 添加一个词替换
# 如果多个词的配置重复, 将会被忽略
- get: '1' # [必选] 需要匹配的词
set: '' # [必选] 替换为
lang: 'zh_cn' # [可选, 默认直接替换] 当客户端语言与其匹配时进行替换

- get: '2'
set: ''
lang: 'zh_cn'

- get: '3'
set: ''
lang: 'zh_cn'

```

### 依赖
- ProtocolLib 5.2.0
- ProtocolLib
79 changes: 61 additions & 18 deletions README_MCBBS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ https://github.com/ApliNi/useTranslatedNames
---

## useTranslatedNames
内置获取翻译名功能的JSON字符串替换插件, 可用于翻译 CoreProtect 等插件的消息
内置获取翻译名功能的JSON字符串替换插件, 可用于消息替换和翻译 CoreProtect 等插件的消息

![](https://github.com/ApliNi/useTranslatedNames/blob/main/_img/%E6%95%88%E6%9E%9C%E5%9B%BE.png)

Expand All @@ -14,35 +14,37 @@ https://github.com/ApliNi/useTranslatedNames
---

## 功能和指令
- `/usetranslatednames` 显示插件信息
- `/usetranslatednames reload` 重新加载配置
- `/usetranslatednames debug` 调试模式
- `/utn` 显示插件信息
- `/utn reload` - 重新加载配置
- `/utn debug` - 调试模式

插件会根据配置捕获对应的服务端消息, 然后替换其中的物品名称并重新发送消息. 详细信息参考"配置"部分.


### 配置
```yaml
config-version: 2
list:
configVersion: 3

dev:
# true = 适用于 1.20.4 版本的方法 (需要 ProtocolLib 5.2.0
# false = 适用于更低版本的旧方法
listeningMode: true

list: # 替换列表

# 翻译实体名 :: 24.03/m 前 #**苦力怕** 破坏 草方块
- inspect-length: 1024
replace-regex: '\{"text":"#([a-z0-9_]+)§f([^"]+)","color":"#31B0E8"\}'
replace-to: >-
- inspectLength: 1024
get: '\{"text":"#([a-z0-9_]+)§f([^"]+)","color":"#31B0E8"\}'
set: >-
{"text":"§8#"},
{"translate":"_$1:TranslatedName_","color":"#31b0e8"},
{"text":"§f_$2_","color":"#31B0E8"}


# 翻译物品 :: 24.03/m 前 #苦力怕 破坏 **草方块**
- inspect-length: 1024 # 检查消息长度是否小于此值
# 替换, 使用正则表达式匹配
replace-regex: '\{"text":"([a-z0-9_]+)(?:§f.{0,3})?","color":"#31B0E8"\}'
# _$1_ = 正则匹配到的变量 1, 也可以是 `_$2_` (第 2 个变量)...
# _$1:ItemType_ = 将 _$1_ 用于获取物品类型, 提供给 JSON hoverEvent 使用的物品类型 show_entity, show_item(block)
# _$1:TranslatedName_ = 将 _$1_ 用于名称翻译, 返回与语言路径对应的 KEY, 例如 `entity.minecraft.allay`
replace-to: >-
- inspectLength: 1024
get: '\{"text":"([a-z0-9_]+)(?:§f.{0,3})?","color":"#31B0E8"\}'
set: >-
{"extra":[
{"translate":"_$1:TranslatedName_"},
{"text":" §8_$1_",
Expand All @@ -53,11 +55,52 @@ list:
"clickEvent":{"action":"copy_to_clipboard","value":"_$1_"}
}
],"color":"#31b0e8","text":""}


# [示例] 所有可用配置
# [可选, 默认所有玩家] 对拥有该权限的玩家处理这条消息
- permission: 'minecraft.command'
# [必选] 检查消息长度是否小于此值
inspectLength: 64
# [必选] 使用正则表达式匹配
get: '^\{"text":"","extra":\["Missing required argument (\d+)"\]\}$'
# [必选] 将消息替换为
# _$1_ = 正则匹配到的变量 1, 也可以是 `_$2_` (第 2 个变量)...
# _$1:ItemType_ = 将 _$1_ 用于获取物品类型, 提供给 JSON hoverEvent 使用的物品类型 show_entity, show_item(block)
# _$1:TranslatedName_ = 将 _$1_ 用于名称翻译, 返回与语言路径对应的 KEY, 例如 `entity.minecraft.allay`
# _$1:Words:组名_ = 将 _$1_ 用于词替换, 需要配置 words.yml
# 其他示例:
# set: >- # YAML 语法中使用 `>-` 可以编写换行的文本, 效果如上
# set: '' # 如果为空, 则取消发送这条消息
set: '{"text":"§bIpacEL §f> §b此指令需要至少§a_$1:Words:中文数字_个参数"}'
# [可选, 默认聊天栏] 将消息显示在操作栏 (物品栏上面)
displayPlace: 'ACTION_BAR'

```

### 依赖
- ProtocolLib 5.2.0
```yaml
# 词替换配置文件
words:
# 创建一个组, 组名不应包含下划线 "_"
中文数字:
# 添加一个词替换
# 如果多个词的配置重复, 将会被忽略
- get: '1' # [必选] 需要匹配的词
set: '一' # [必选] 替换为
lang: 'zh_cn' # [可选, 默认直接替换] 当客户端语言与其匹配时进行替换

- get: '2'
set: '二'
lang: 'zh_cn'

- get: '3'
set: '三'
lang: 'zh_cn'

```

### 依赖
- ProtocolLib

---

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.aplini</groupId>
<artifactId>useTranslatedNames</artifactId>
<version>1.0</version>
<version>2.0</version>

<name>useTranslatedNames</name>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public final class UseTranslatedNames extends JavaPlugin implements CommandExecu
// 监听器模式
boolean listeningMode = true;
// 词配置 Map<组名.词 or 组名.语言.词, 词配置>
HashMap<String, Word> words;
private HashMap<String, Word> words;
// 配置文件
List<Cli> list = new ArrayList<>();

Expand Down Expand Up @@ -106,7 +106,8 @@ public void onPacketSending(PacketEvent event){
}
String oldJson = matcher.group(0);

// 处理翻译变量 _$1:ItemType_, _$1:TranslatedName_

// 处理翻译变量替换 _$1:ItemType_, _$1:TranslatedName_
if(cli.enTransVar){
cli.dataTransVar.reset();
while(cli.dataTransVar.find()){
Expand All @@ -119,6 +120,7 @@ public void onPacketSending(PacketEvent event){
}
}


// 处理词替换 _$1:Words:xxx_
if(cli.enWordReplace){
cli.dataWordReplace.reset();
Expand All @@ -134,7 +136,7 @@ public void onPacketSending(PacketEvent event){
}


// 处理正则变量 _$1_
// 处理正则替换 _$1_
if(cli.enRegExpReplace){
int matcherLength = matcher.groupCount();
for(int i = 1; i <= matcherLength; i++){
Expand Down
1 change: 0 additions & 1 deletion src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,3 @@ list: # 替换列表
set: '{"text":"§bIpacEL §f> §b此指令需要至少§a_$1:Words:中文数字_个参数"}'
# [可选, 默认聊天栏] 将消息显示在操作栏 (物品栏上面)
displayPlace: 'ACTION_BAR'

8 changes: 7 additions & 1 deletion src/main/resources/words.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
# 词替换配置文件
words:

# 这是系统内置的组
__toTranslatedName__: []

# 创建一个组, 组名不应包含下划线 "_"
中文数字:
# 添加一个词替换
# 如果多个词的配置重复, 将会被忽略
- get: '1' # [必选] 需要匹配的词
set: '' # [必选] 替换为
lang: 'zh_cn' # [可选, 默认直接替换] 当客户端语言与其匹配时进行替换

- get: '2'
set: ''
lang: 'zh_cn'

- get: '3'
set: ''
lang: 'zh_cn'
lang: 'zh_cn'

0 comments on commit 9b5cf69

Please sign in to comment.