Rothes
本帖最后由 Rothes 于 2023-2-7 02:02 编辑

ProtocolStringReplacer

┃ 简介                                            
 ProtocolStringReplacer是一款通过修改网络数据包而实现替换字符串功能的插件,致力于优化效率、提供更多功能,以达到方便、实用的目标.
由于只修改了发送给玩家的数据包,故不会影响服务端上的处理.

┃ 特性                                            
更详细的列表请在 MCBBS v4 资源站中查看,此处列表不完整
修复服务端 Log4j 0day CVE 漏洞(全版本) [修复根源, 见截图] 独立版
修改以下内容中的字符串,或者屏蔽:
  • 物品的完整NBT、DisplayName和Lore
  • 成书的内容/署名
  • Boss血量条文本
  • 任何控制台信息
  • 告示牌信息
  • 计分板信息
  • 标题消息
  • 聊天信息
  • 窗口标题
  • 实体名称
字符串替换采用 AC 算法! 十分迅速!
不会增加服务器的带宽压力! 所有替换均在原数据包上操作.
支持对控制台的信息管理! 每一个字符都可以替换或屏蔽!
支持修改 Json, 对 Json 的智能处理, 即使不了解 Json 也可使用普通替换模式, 不会破坏任何数据.
针对修改物品制作的缓存机制, 处理一个窗口内所有物品仅需1毫秒 (于i3-2120 + 已缓存情况下测试)
支持替换为PAPI变量, 且更安全, 可以在配置文件中设定占位符使用格式
游戏内的指令修改功能
以及现代化的指令结构
多个替换配置文件系统
有序化的字符串替换

完全的注释保留功能
完全支持热加载
过滤系统
计划内容:
更多游戏内指令修改功能
更多过滤功能
扩展更多信息等修改
制作维基
……
┃ 指令                                            
 /psr help
显示插件指令列表
 /psr edit
游戏内替换配置编辑器
 /psr parse
测试替换字符串
 /psr capture
捕获部分数据包的内容
 /psr reload
重载插件所有配置文件

详细的指令帮助请在游戏内输入子指令+ help 如/psr edit help
┃ 权限                                            
 protocolstringreplacer.command.edit
允许使用替换配置编辑器
 protocolstringreplacer.command.parse
允许使用替换字符串测试功能
 protocolstringreplacer.command.reload
允许重载插件配置文件
 protocolstringreplacer.command.capture
允许捕获数据包的内容
 protocolstringreplacer.feature.usermetacache
为创造模式恢复修改前的原物品 (防止创造模式替换到实际物品的特性)
 protocolstringreplacer.feature.usermetacache.noncreative
为非创造模式玩家也提供该功能 (用于一些奇怪的特殊情况, 若遇到无法移动物品等问题时尝试给予该权限)
┃ 截图                                            


┃ 配置文件                                          
注意:替换配置文件必须放于plugins/ProtocolStringReplacer/Replacers文件夹或其子文件夹中

┃ 下载链接                                          
请在 MCBBS v4 资源站中下载插件, 此贴内附件不是最新版本:
喜欢的话欢迎评论,别让这帖子沉啦
请安装前置插件
ProtocolLib 4.7.0+(Spigot 1.18 需 4.8.0+版本)
PlaceholderAPI 2.10.9+
请使用Java8+运行本插件
建议使用 Paper 或其分支服务端以获得最佳兼容性和效果

PSR 3.0.0 开发中! 3.0.0 将完全重写, 提供更多自定义项、提供一些 API, 并且模块化项目以便于适配其它平台,同时还会进一步优化插件
(目前预计适配 BungeeCord),许可证切换为 LGPL
PSR 2.0.0 将可无损升级至 3.0.0
┃ 示例配置                                          
用法: 安装本插件后,解压并替换(合并)
plugins/ProtocolStringReplacer/Replacers
粘液科技本体汉化.zip (29.45 KB, 下载次数: 468)
使用时请将 Slimefun 默认语言设为简体中文,适配1.14+全粘液版本
敏感词屏蔽.zip (634 Bytes, 下载次数: 297)
客户端 Log4j Jndi 屏蔽.zip (726 Bytes, 下载次数: 144)
示例配置最后更新于2023/02/07
基于 PSR v2.17.1
┃ 更新日志                                          
┃ 问题反馈                                          
如果您在使用插件过程中遇到任何问题,欢迎在GitHub issue tracker上反馈。
有任何需要咨询的,可在贴内回复或私信,我每日都会检查MCBBS, 或直接在 QQ 上进行咨询:
空巢插件交流群: 422532220 机器人秒速审核, 如果没秒速就是炸了
插件维基编写中: https://rothes.gitbook.io/protocolstringreplacer/
┃ 常见问题                                          
1. PAPI占位符无法替换
PSR 默认的占位符格式为{占位符}(全角字符), 而不是 %占位符% . 这是为了服务器安全性, 防止玩家通过发送占位符来获取服务器信息. 同时, 可以使 PSR 自动检测字符串中是否包含占位符, 若无则不会调用 PAPI API, 这可以大大加快替换效率. 您可以在插件的 Config.yml 中调整此设定.
2. 有时无法替换生物的名称
这是由 ProtocolLib 的问题导致. 该问题不在 PSR 可以处理的范围之内, 且不仅仅只影响到了 PSR 插件的处理. 目前 PSR 已将该报错屏蔽.
3. 插件导致服务器大幅卡顿
PSR 已经对插件进行了很极致的优化, 且所有运行的进程皆异步进行. 若您遇到此问题, 通常这是由于一些插件在主线程上进行了有关的网络处理, 而 PSR 扩大了此行为对主线程的影响. 请手动排除您的服务端插件.
4. 无法使用色彩符号
由于一些原因, PSR 使用 Minecraft 原版提供的色彩符号 '§' 而不是 Bukkit 中常用的色彩符号 '&'. 请尝试将您的替换配置中的所有色彩符号替换为 '§'.
5. 无法加载插件: Invalid plugin.yml
由于 MCBBS 附件下载常出问题, 通过备用链接(SpigotMC)下载即可.

本插件目前基于GNU GPLv3协议开源
所用部分代码使用Apache等开源项目,其余皆为原创
来自群组: PluginsCDTribe

kiano66
感觉不错,很实用

HaPi_r
优化效率就很不错  感谢分享  (希望能常更新. 支持

小张up
本帖最后由 小张up 于 2021-6-13 11:44 编辑

[11:36:31 INFO]: [ProtocolStringReplacer] Enabling ProtocolStringReplacer v1.1.5-beta
[11:36:31 ERROR]: Error occurred while enabling ProtocolStringReplacer v1.1.5-beta (Is it up to date?)
java.lang.NoClassDefFoundError: me/clip/placeholderapi/replacer/Replacer
        at me.Rothes.ProtocolStringReplacer.ProtocolStringReplacer.initialize(ProtocolStringReplacer.java:77) ~[?:?]
        at me.Rothes.ProtocolStringReplacer.ProtocolStringReplacer.onEnable(ProtocolStringReplacer.java:41) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-762]
        at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:366) ~[?:?]
        at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:318) ~[?:?]
        at com.rylinaux.plugman.util.PluginUtil.reload(PluginUtil.java:380) ~[?:?]
        at com.rylinaux.plugman.command.ReloadCommand.execute(ReloadCommand.java:122) ~[?:?]
        at com.rylinaux.plugman.PlugManCommandHandler.onCommand(PlugManCommandHandler.java:95) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchServerCommand(CraftServer.java:788) ~[patched_1.16.5.jar:git-Paper-762]
        at net.minecraft.server.v1_16_R3.DedicatedServer.handleCommandQueue(DedicatedServer.java:470) ~[patched_1.16.5.jar:git-Paper-762]
        at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:437) ~[patched_1.16.5.jar:git-Paper-762]
        at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1342) ~[patched_1.16.5.jar:git-Paper-762]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130) ~[patched_1.16.5.jar:git-Paper-762]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-762]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.ClassNotFoundException: me.clip.placeholderapi.replacer.Replacer
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:153) ~[patched_1.16.5.jar:git-Paper-762]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:114) ~[patched_1.16.5.jar:git-Paper-762]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
        ... 20 more





[11:38:07 INFO]: [PlugMan] Plugin Information: ProtocolLib
[11:38:07 INFO]: - Version: 4.6.1-SNAPSHOT-b501
[11:38:07 INFO]: - Author(s): dmulloy2, comphenix
[11:38:07 INFO]: - Status: Enabled
[11:38:58 INFO]: [PlugMan] Plugin Information: PlaceholderAPI
[11:38:58 INFO]: - Version: 2.10.4
[11:38:58 INFO]: - Author(s): extended_clip, Glare
[11:38:58 INFO]: - Status: Enabled



看了看你的maven构建脚本,我的Papi貌似过时了

Rothes
小张up 发表于 2021-6-13 11:37
[11:36:31 INFO]:  Enabling ProtocolStringReplacer v1.1.5-beta
[11:36:31 ERROR]: Error occurred while ...

PlaceholderAPI不是最新的,试试更新到
PlaceholderAPI-2.10.9

小张up
Rothes 发表于 2021-6-13 11:42
PlaceholderAPI不是最新的,试试更新到
PlaceholderAPI-2.10.9

嗯,刚刚看到了

LINKCHUM
好像挺不错的,不过会不会跟tr菜单冲突呢

Rothes
LINKCHUM 发表于 2021-6-13 16:49
好像挺不错的,不过会不会跟tr菜单冲突呢

应该不会。而且提供了过滤功能,如果字符串有冲突,也可以通过调整配置文件自行修复

Rothes
本帖最后由 Rothes 于 2021-6-16 19:48 编辑

已兼容1.17,请安装1.17的专用ProtocolLib (来自官方预览版)
https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/
目前ProtocolLib还有一些问题,如监听包错误,我只提供了兼容,这代表1.17可能部分功能失效。
这不是我的问题,请大家等待ProtocolLib方支持.

由于不知道ProtocolLib何时才能完全提供向后支持,新版已提供完全适配功能。

26880
我在1.17里面使用psr打示例的''我的名字''没有输出变量,不晓得是啥问题

小张up
本帖最后由 小张up 于 2021-6-20 21:23 编辑
  1. # 是否开启本替换配置. 若为false则不会为这个文件处理. 若未定义, 默认为false.
  2. Enable: true
  3. # 本文件的优先级. 若有多个替换配置, 优先级高的最早替换. 默认为5.
  4. Priority: 30
  5. # 匹配字符串的方式. 可选值:
  6. # 'contain' : 只要包含就替换 (默认)
  7. # 'equal' : 要求设置与原字符串完全匹配
  8. # 'regex' : 使用正则表达式
  9. Match-Type: 'regex'
  10. # 筛选功能. 用于指定此文件替换字符串的条件.
  11. Filter:
  12.   # 指定替换的数据包类型. 默认为全部. 可选值:
  13.   # WINDOW_ITEMS 监听打开窗口中的物品
  14.   # SET_SLOT 监听窗口中槽位的物品
  15.   # OPEN_WINDOW 监听窗口的标题文本
  16.   # CHAT 监听聊天文本
  17.   # ENTITY_METADATA 监听实体名称
  18.   # TILE_ENTITY_DATA 监听tile的nbt数据. 目前仅支持修改告示牌信息
  19.   Packet-Types:
  20.     - CHAT

  21. Replaces:
  22.   # 左侧的key为原字符串 右侧的value为替换后的字符串.
  23.   'me' : '我'
  24.   '/(?<=\[123\] .*)\[123\] /g' : ''
复制代码
我的配置文件是这样的,但为什么正则语句没用
在正则测试器中这个句子没问题


但在这个插件里却无效


是最新版
而且,使用插件后,容器都变英文了




Rothes
本帖最后由 Rothes 于 2021-6-20 22:38 编辑
小张up 发表于 2021-6-20 21:11
我的配置文件是这样的,但为什么正则语句没用
在正则测试器中这个句子没问题

现在json和chat组件的修改不是很完善。可能容器用的是translate,但是插件也解析了。等我完善之后应该就好。容器的问题,就麻烦暂时先手动修改一下OPEN_WINDOW数据包吧。
正则的问题我待会看看

Rothes
26880 发表于 2021-6-20 17:05
我在1.17里面使用psr打示例的''我的名字''没有输出变量,不晓得是啥问题

我没有把这个添加进 示例配置文件。 你需要手动添加
  '我的名字': '{player_name}'

小张up
Rothes 发表于 2021-6-20 22:37
现在json和chat组件的修改不是很完善。可能容器用的是translate,但是插件也解析了。等我完善之后应该就好 ...

好,这么晚还在查阅消息辛苦了
加油

Rothes
小张up 发表于 2021-6-20 22:42
好,这么晚还在查阅消息辛苦了
加油

这几天我重构了一部分代码,之前没有上传这一部分。我待会上传新版插件,貌似已修复正则问题

26880
Rothes 发表于 2021-6-20 22:37
我没有把这个添加进 示例配置文件。 你需要手动添加
  '我的名字': '{player_name}' ...

啊这,但是我这里直接放进plugins后生成的文件有示例一样的文件,单纯的替换也有效果,但是变量就拉了跨了

Rothes
26880 发表于 2021-6-21 10:51
啊这,但是我这里直接放进plugins后生成的文件有示例一样的文件,单纯的替换也有效果,但是变量就拉了跨 ...

检查一下PlaceholderAPI是否下载了Player变量。使用/papi ecloud download player

26880
Rothes 发表于 2021-6-21 12:34
检查一下PlaceholderAPI是否下载了Player变量。使用/papi ecloud download player

哦草,问题解决是我的锅,我还以为这个变量是papi自带的,浏览一圈变量网站被翻译器生草翻译骗过去了

3401286177
不兼容Loliserver呀,可惜了

Rothes
3401286177 发表于 2021-6-25 11:33
不兼容Loliserver呀,可惜了

检查了一下,看起来主要是前置ProtocolLib不支持。

Rothes
小张up 发表于 2021-6-20 21:11
我的配置文件是这样的,但为什么正则语句没用
在正则测试器中这个句子没问题

容器变为英文的问题已经修复,抱歉拖得有点久啦

小张up
本帖最后由 小张up 于 2021-6-26 18:51 编辑
Rothes 发表于 2021-6-26 16:09
容器变为英文的问题已经修复,抱歉拖得有点久啦

没事,插件已经非常优秀了
(另外我那个正则咋样改才能编译过)

Meload
非常不错的插件,支持下

Rothes
小张up 发表于 2021-6-26 18:45
没事,插件已经非常优秀了
(另外我那个正则咋样改才能编译过)

谢谢,这个正则你是想要实现什么啊?

小张up
Rothes 发表于 2021-6-26 20:51
谢谢,这个正则你是想要实现什么啊?



匹配一句话中除去第一个"[123] "之外的所有"[123] "




虽说匹配器里能使用,但匹配器也提示



有没有可能是Java不支持本特性造成的


Rothes
本帖最后由 Rothes 于 2021-6-27 10:52 编辑
小张up 发表于 2021-6-27 09:50
匹配一句话中除去第一个"[123] "之外的所有"[123] "

试试
'(?<=\[123\])(.*?)\[123\]': '$1'

814823670
可以拿走了兄弟

凉凉の咸鱼
本帖最后由 凉凉の咸鱼 于 2021-6-27 14:21 编辑

玩家进服务器的时候报此类错误
Paper-1.17 build 49
ProtocolLib-4.7.0 build 524
  1. [ProtocolStringReplacer] Unhandled exception occured in onPacketSending(PacketEvent) for ProtocolStringReplacer
  2. java.lang.IllegalArgumentException: entityID cannot be negative
  3.         at org.apache.commons.lang.Validate.isTrue(Validate.java:136) ~[patched_1.17.jar:git-Paper-49]
  4.         at com.comphenix.protocol.injector.EntityUtilities.getEntityFromID(EntityUtilities.java:218) ~[?:?]
  5.         at com.comphenix.protocol.injector.PacketFilterManager.getEntityFromID(PacketFilterManager.java:851) ~[?:?]
  6.         at com.comphenix.protocol.wrappers.BukkitConverters$10.getSpecific(BukkitConverters.java:691) ~[?:?]
  7.         at com.comphenix.protocol.wrappers.BukkitConverters$10.getSpecific(BukkitConverters.java:676) ~[?:?]
  8.         at com.comphenix.protocol.reflect.StructureModifier.readInternal(StructureModifier.java:229) ~[?:?]
  9.         at com.comphenix.protocol.reflect.StructureModifier.read(StructureModifier.java:197) ~[?:?]
  10.         at me.Rothes.ProtocolStringReplacer.PacketListeners.Server.EntityMetadata$1.onPacketSending(EntityMetadata.java:22) ~[?:?]
  11.         at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) ~[?:?]
  12.         at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) ~[?:?]
  13.         at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:535) ~[?:?]
  14.         at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:516) ~[?:?]
  15.         at com.comphenix.protocol.injector.netty.ProtocolInjector.packetQueued(ProtocolInjector.java:346) ~[?:?]
  16.         at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketSending(ProtocolInjector.java:308) ~[?:?]
  17.         at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:433) ~[?:?]
  18.         at com.comphenix.protocol.injector.netty.ChannelInjector.access$800(ChannelInjector.java:70) ~[?:?]
  19.         at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled(ChannelInjector.java:373) ~[?:?]
  20.         at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled(ChannelInjector.java:343) ~[?:?]
  21.         at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:127) ~[?:?]
  22.         at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:95) ~[?:?]
  23.         at net.minecraft.network.Connection.sendPacket(Connection.java:294) ~[?:?]
  24.         at net.minecraft.network.Connection.processQueue(Connection.java:373) ~[?:?]
  25.         at net.minecraft.network.Connection.flushQueue(Connection.java:346) ~[?:?]
  26.         at net.minecraft.network.Connection.send(Connection.java:277) ~[?:?]
  27.         at net.minecraft.server.network.ServerGamePacketListenerImpl.send(ServerGamePacketListenerImpl.java:1920) ~[?:?]
  28.         at net.minecraft.server.network.ServerGamePacketListenerImpl.send(ServerGamePacketListenerImpl.java:1906) ~[?:?]
  29.         at net.minecraft.server.level.ChunkMap$TrackedEntity.broadcast(ChunkMap.java:2327) ~[?:?]
  30.         at net.minecraft.server.level.ServerEntity.sendChanges(ServerEntity.java:204) ~[?:?]
  31.         at net.minecraft.server.level.ChunkMap.processTrackQueue(ChunkMap.java:2051) ~[patched_1.17.jar:git-Paper-49]
  32.         at net.minecraft.server.level.ChunkMap.tick(ChunkMap.java:2062) ~[patched_1.17.jar:git-Paper-49]
  33.         at net.minecraft.server.level.ServerChunkCache.tickChunks(ServerChunkCache.java:874) ~[?:?]
  34.         at net.minecraft.server.level.ServerChunkCache.tick(ServerChunkCache.java:753) ~[?:?]
  35.         at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:581) ~[?:?]
  36.         at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1551) ~[patched_1.17.jar:git-Paper-49]
  37.         at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:477) ~[patched_1.17.jar:git-Paper-49]
  38.         at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1404) ~[patched_1.17.jar:git-Paper-49]
  39.         at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1180) ~[patched_1.17.jar:git-Paper-49]
  40.         at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[patched_1.17.jar:git-Paper-49]
  41.         at java.lang.Thread.run(Thread.java:831) [?:?]
  42. [14:15:19 ERROR]: Parameters:
  43.   net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata@25c1b56e[
  44.     a=-6
  45.     b=[net.minecraft.network.syncher.DataWatcher$Item@57635385]
  46.   ]
复制代码


Rothes
本帖最后由 Rothes 于 2021-6-27 18:32 编辑
凉凉の咸鱼 发表于 2021-6-27 14:16
玩家进服务器的时候报此类错误
Paper-1.17 build 49
ProtocolLib-4.7.0 build 524

这个貌似是Protocollib的问题,我之前就看到有人反馈了
可以发一下完整的插件列表看看

新版已添加一个检测防止问题,按照源码,Protocollib就应该返回Null的,但是它没有这么做

凉凉の咸鱼
Rothes 发表于 2021-6-27 18:14
这个貌似是Protocollib的问题,我之前就看到有人反馈了
可以发一下完整的插件列表看看

新版已添加 ...

还是有这错误, 不过问题也不是太大 用 ConsoleSpamFix 干掉了..
  1. Plugins (28):
  2. Boom,
  3. Chunkmaster,
  4. CMI,
  5. CMIEInjector,
  6. CMILib,
  7. ConsoleSpamFix,
  8. CoreProtect,
  9. DeluxeMenus,
  10. eBackup,
  11. FartherViewDistance,
  12. JulyLibrary,
  13. JulySafe,
  14. LockettePro,
  15. LuckPerms,
  16. Moeka,
  17. momojs,
  18. MultiLogin,
  19. Multiverse-Core,
  20. PlaceholderAPI,
  21. ProtocolLib,
  22. ProtocolStringReplacer,
  23. QuickShop,
  24. QuickShopList,
  25. Residence,
  26. Shift_Menu,
  27. TAB,
  28. Vault,
  29. ZccAfk
复制代码

Rothes
凉凉の咸鱼 发表于 2021-6-27 19:08
还是有这错误, 不过问题也不是太大 用 ConsoleSpamFix 干掉了..

还是有那就只能等ProtocolLib修掉了...我这边无从下手

DongShaoNB
您好,服务器中已经安装papi但是您的插件先加载导致检测不到papi了,这咋办

Rothes
本帖最后由 Rothes 于 2021-7-1 12:35 编辑
DongShaoNB 发表于 2021-7-1 07:18
您好,服务器中已经安装papi但是您的插件先加载导致检测不到papi了,这咋办 ...

这个问题不应该发生,应该是因服务端版本而异
如果确实是这样的话,请手动使用压缩软件打开插件jar中的plugin.yml
把softdepend改成depend
请说明服务端版本,我之后会研究

DongShaoNB
Rothes 发表于 2021-7-1 12:34
这个问题不应该发生,应该是因服务端版本而异
如果确实是这样的话,请手动使用压缩软件打开插件jar中的plu ...

paper-1.17-55

下一页 最后一页