本帖最后由 结冰的离季 于 2023-3-26 19:27 编辑 
SakuraBind
插件介绍
本插件的最终目标是实现玩家的库存分离但不影响正常使用
特点
要求
依赖信息
插件截图
插件安装
将插件放入服务端根目录 plugins 文件夹中,重启服务器或使用热重载插件加载即可,第一次加载插件将会联网下载依赖,所以第一次加载请勿热加载否则会卡住主线程。
插件配置
插件的配置文件夹为 SakuraBind ,目录里的 config.yml 为插件核心配置、global-setting.yml 为全局的绑定设置
settings.yml 里可以添加自定义规则,用于匹配某类物品应用不同的绑定设置
lang.yml 里是所有插件消息,可以自行更改,支持 papi 和颜色字符 & ,1.17及以上支持16进制颜色如 #66ccff
database.yml 为数据库相关设置
data 文件夹为本地缓存,储存方块物品的绑定信息,删除之后已放置的方块物品将丢失绑定信息
每个配置文件都支持 自动重载 修改完毕只需要 保存 插件就会自动重载配置。
每个配置文件里都有 详细的注释,这里就不再重复说明
global-setting.yml 配置内容如下
绑定设置的读取按照优先级从高到低分别为 权限 、匹配设置 、全局设置
如玩家具有 权限设置的格式为 sakurabind.settings.{键名}.true|false
如禁止玩家放置方块物品的权限为 sakurabind.settings.block-deny.place.true
对应的全局设置为
复制代码
在 settings.yml 声明的匹配设置会覆盖全局设置,未声明的设置将继承全局设置
匹配设置的作用是将某些特殊物品区分开来,自定义程度更高,
比如你可以这样设置 所有剑都自动绑定
settings.yml
 
 
-------
插件命令
根命令全称 sakurabind,别名为 sbind, sb, sab, bind
复制代码
在任何命令后面加上 -silent 可以隐藏消息
插件变量
插件有的变量暂时只有一个 %sakurabind_has_lost% 判断玩家暂存箱是否有物品,为数据库查询操作,请勿高频使用
插件权限
命令
权限格式为 sakurabind.节点名称 如 /sakurabind bind 命令的权限为 sakurabind.sakurabind.bind
玩家默认拥有 /sakurabind getLost 的权限,其他均为OP权限
sakurabind.sakurabind.*所有命令的权限
其他
绑定权限sakurabind.bypass.all,与OP一致不受绑定限制,但没有命令的权限
绑定全局设置权限 sakurabind.settings.{键名}.true|false 不支持 键名@ 的形式
绑定设置权限 sakurabind.setting.{设置名}.{键名}.true|false 设置名为 settings.yml 匹配键,覆盖全局权限 不支持键名@的形式
如禁止玩家放置方块物品的权限为 sakurabind.settings.block-deny.place.true
绑定设置权限sakurabind.bypass.{玩家uuid}拥有此权限将享受与该uuid物主相同的权限,即可以多人共用一个绑定物品
API
您可以将本插件作为本地依赖来开发,插件注册的事件
https://github.com/SakuraTown/SakuraBind/tree/master/plugin/src/main/java/top/iseason/bukkit/sakurabind/event
其他常用的API在 SakuraBindAPI 类中,源代码有注释
已知问题
下载
正式版Github: https://github.com/SakuraTown/SakuraBind/releases
正式版蓝奏: https://iseason.lanzouf.com/b00qhdv2f 密码:69zm
最新构建版: https://github.com/SakuraTown/SakuraBind/actions
如果依赖无法下载导致插件无法加载请添加离线依赖插件https://iseason.lanzouf.com/ivk8f0lzba9c
其他
插件默认关闭 方块、实体功能, 如需要请在config.yml中打开
开源地址: https://github.com/SakuraTown/SakuraBind

SakuraBind
插件介绍
SakuraBind源自自用的绑定插件,功能有限,经过一系列功能定制之后我决定完善其功能并发布出来。
本插件会尽量涵盖所有有用的功能,并提供丰富的配置尽可能满足您的所有需求。
本插件的最终目标是实现玩家的库存分离但不影响正常使用
特点
- 支持 Minecraft 1.8+的服务端。包括 spigot、paper、甚至catserver等mod服务器端
- 多级配置。从权限到某类特殊物品的配置到全局统一配置灵活控制绑定物品行为
- 极致性能优化。通过内存TTL、NBT、文件存储三级缓存以减少物品匹配性能损耗,并利用布谷鸟过滤器处理缓存穿透问题
- 方块绑定支持。支持多方快结构、装饰物,无论是流体、爆炸、活塞、丢失支撑方块等造成的方块物品变成掉落物绑定依旧存在
- 丢失物品找回功能。掉落物掉虚空、仙人掌、岩浆、被他人拿走甚至在容器中被破坏,都可以将物品送回玩家背包中,如玩家不在线则存入暂存箱中
- 全面PlaceHolderAPI支持。任何看得见的地方都能使用papi,如消息、lore
- 实体绑定功能, 支持刷怪蛋绑定实体
- 自动绑定功能, 名字、lore、材质、nbt多种方式自由组合识别绑定
- 多数据库支持(暂存箱)。支持 SQLite(本地|默认)、MySQL、MariaDB、Oracle、PostgreSQL、SQLServer
- 插件在设计之初就考虑兼容性,理论上兼容大部分插件,可以提issue兼容
- 监听器开关。可通过关闭不需要的功能减少性能损耗
- 物品 -> 方块 -> 实体 -> 物品 全链路追踪绑定
- 全链路日志系统(支持控制台、文件、数据库记录)
- 崩溃数据保护开关
 
要求
- 具有 SpigotAPI 1.8以上或其下游版本的服务端
- Java8 或以上
-  第一次加载插件需要联网下载依赖
 
依赖信息
- Kotlin 1.7.21 自动下载
- Exposed 0.41.1 自动下载
- EhCache 3.10.8 自动下载
- HikariCP 4.0.3 自动下载
- 数据库依赖 视选择的数据库类型自动下载
- NBTEditor 7.18.4 已打包进插件
- bstats-bukkit 3.0.0 已打包进插件
- PlaceHolderAPI 2.11.2 软依赖插件
- AuthMe 5.6.0-SNAPSHOT 软依赖插件
-  SakuraMail 软依赖插件
 
插件截图
插件安装
将插件放入服务端根目录 plugins 文件夹中,重启服务器或使用热重载插件加载即可,第一次加载插件将会联网下载依赖,所以第一次加载请勿热加载否则会卡住主线程。
插件配置
插件的配置文件夹为 SakuraBind ,目录里的 config.yml 为插件核心配置、global-setting.yml 为全局的绑定设置
settings.yml 里可以添加自定义规则,用于匹配某类物品应用不同的绑定设置
lang.yml 里是所有插件消息,可以自行更改,支持 papi 和颜色字符 & ,1.17及以上支持16进制颜色如 #66ccff
database.yml 为数据库相关设置
data 文件夹为本地缓存,储存方块物品的绑定信息,删除之后已放置的方块物品将丢失绑定信息
每个配置文件都支持 自动重载 修改完毕只需要 保存 插件就会自动重载配置。
每个配置文件里都有 详细的注释,这里就不再重复说明
global-setting.yml 配置内容如下
绑定设置的读取按照优先级从高到低分别为 权限 、匹配设置 、全局设置
如玩家具有 权限设置的格式为 sakurabind.settings.{键名}.true|false
如禁止玩家放置方块物品的权限为 sakurabind.settings.block-deny.place.true
对应的全局设置为
- block-deny:
 
- place: true
在 settings.yml 声明的匹配设置会覆盖全局设置,未声明的设置将继承全局设置
匹配设置的作用是将某些特殊物品区分开来,自定义程度更高,
比如你可以这样设置 所有剑都自动绑定
settings.yml
-------
插件命令
根命令全称 sakurabind,别名为 sbind, sb, sab, bind
- <> 为必选参数 []为可选参数或条件可选,支持tab补全
 
- /sakurabind bind <type> <player> [setting] [-noLore]  绑定某玩家 手上的物品、前面的方块、前面的实体
 
- /sakurabind bindTo <type> <player> [setting] [-noLore]  绑定 手上的物品、前方的方块、前方的实体 给 某玩家
 
- /sakurabind unBind <type> <player>  解绑定某玩家手上的物品、前面的方块、前面的实体
 
- /sakurabind bindAll <player> [-noLore]  绑定某玩家背包里的所有物品
 
- /sakurabind unBindAll <player>  解绑定某玩家背包的物品
 
- /sakurabind getLost  获取暂存箱物品
 
- /sakurabind autoBind  给手上的物品添加自动绑定的NBT
 
- /sakurabind debug  切换debug模式
 
- /sakurabind select <player> [bind]  为玩家开启/关闭目标选择模式
 
- /sakurabind reload  重载配置
 
- /sakurabind test match [count]  匹配手上的物品 [count] 次并输出信息
 
- /sakurabind test tryMatch <setting> 尝试以某个配置匹配手上的物品, 输出信息
在任何命令后面加上 -silent 可以隐藏消息
插件变量
插件有的变量暂时只有一个 %sakurabind_has_lost% 判断玩家暂存箱是否有物品,为数据库查询操作,请勿高频使用
插件权限
命令
权限格式为 sakurabind.节点名称 如 /sakurabind bind 命令的权限为 sakurabind.sakurabind.bind
玩家默认拥有 /sakurabind getLost 的权限,其他均为OP权限
sakurabind.sakurabind.*所有命令的权限
其他
绑定权限sakurabind.bypass.all,与OP一致不受绑定限制,但没有命令的权限
绑定全局设置权限 sakurabind.settings.{键名}.true|false 不支持 键名@ 的形式
绑定设置权限 sakurabind.setting.{设置名}.{键名}.true|false 设置名为 settings.yml 匹配键,覆盖全局权限 不支持键名@的形式
如禁止玩家放置方块物品的权限为 sakurabind.settings.block-deny.place.true
绑定设置权限sakurabind.bypass.{玩家uuid}拥有此权限将享受与该uuid物主相同的权限,即可以多人共用一个绑定物品
API
您可以将本插件作为本地依赖来开发,插件注册的事件
https://github.com/SakuraTown/SakuraBind/tree/master/plugin/src/main/java/top/iseason/bukkit/sakurabind/event
其他常用的API在 SakuraBindAPI 类中,源代码有注释
已知问题
- spigot1.12.2以下的版本由于sqlitejdbc旧版本被内嵌在服务端内,导致无法使用,请使用非sqlite连接数据库
- spigot1.8.x 版本的配置编码会乱码,请自行更改编码或在服务端启动参数里加上 -Dfile.encoding=UTF-8
-  部分mod服务端的漏斗、发射器禁用功能失效
 
下载
正式版Github: https://github.com/SakuraTown/SakuraBind/releases
正式版蓝奏: https://iseason.lanzouf.com/b00qhdv2f 密码:69zm
最新构建版: https://github.com/SakuraTown/SakuraBind/actions
如果依赖无法下载导致插件无法加载请添加离线依赖插件https://iseason.lanzouf.com/ivk8f0lzba9c
其他
插件默认关闭 方块、实体功能, 如需要请在config.yml中打开
开源地址: https://github.com/SakuraTown/SakuraBind
本插件所用所有代码均为原创,不存在借用/抄袭等行为
源代码使用GPLV3协议,您可以免费使用本插件,但不能二次分发售卖以获利
看着好牛啊......支持!
 本帖最后由 奥力給 于 2022-12-19 09:23 编辑 
好强的插件...
提两个小建议,可以使插件更好用:
①希望可以支持绑定后物品无限耐久
(可以用原版的无法破坏nbt,优化性能)②希望可以把那个绑定箱设置优先级为末影箱
③插件有个报错, 版本1.8.8paper mysql 并且anvil选项已关闭
⑤期望可以对低版本更加友好
期待楼主可以改进一下
好强的插件...
提两个小建议,可以使插件更好用:
①希望可以支持绑定后物品无限耐久
(可以用原版的无法破坏nbt,优化性能)②希望可以把那个绑定箱设置优先级为末影箱
③插件有个报错, 版本1.8.8paper mysql 并且anvil选项已关闭
④使用后有个报错,你没判定是否为低版本,因为低版本只有一个手(bushi),没有getItemInMainHand
⑤期望可以对低版本更加友好
期待楼主可以改进一下
奥力給 发表于 2022-12-19 08:12
好强的插件...
提两个小建议,可以使插件更好用:
①希望可以支持绑定后物品无限耐久
第一个适用性太低,不会考虑,但是可以通过制作附属实现,
第一个报错是铁砧的监听器,我没做版本判断,他不会注册,无伤大雅,就一个事件
低版本太多特性了,我已经尽量支持了,手的问题我马上修
 本帖最后由 结冰的离季 于 2022-12-19 11:19 编辑 
bug已修复,末影箱会考虑加个开关,下个版本添加, 无限耐久的你可以自己写,监听绑定事件修改物品就行
奥力給 发表于 2022-12-19 08:12
好强的插件...
提两个小建议,可以使插件更好用:
①希望可以支持绑定后物品无限耐久
bug已修复,末影箱会考虑加个开关,下个版本添加, 无限耐久的你可以自己写,监听绑定事件修改物品就行
看着介绍挺好,保持一段时间关注
插件在发布前就已经经过大量测试与更新,目前已趋于稳定与完整,目前已用于百人规模的mod服中使用。
以后只会修复bug和部分内容更新,如有什么建议可以多多提出完善插件
以后只会修复bug和部分内容更新,如有什么建议可以多多提出完善插件
Paper1.19.2 测试了一下
把绑定的物品扔到岩浆或者仙人掌都会直接消失 并且不会返回
扔给其他玩家被捡起会返回
因为服务器装了清理插件 扔到地上的物品被清理之后会统一集中在垃圾桶里
如果绑定的物品被清理到垃圾桶之后 被其他玩家捡到之后 除了无法交互之外 不会直接返还给主人
而是需要扔到地上捡一次之后就会返还给主人
把绑定的物品扔到岩浆或者仙人掌都会直接消失 并且不会返回
扔给其他玩家被捡起会返回
因为服务器装了清理插件 扔到地上的物品被清理之后会统一集中在垃圾桶里
如果绑定的物品被清理到垃圾桶之后 被其他玩家捡到之后 除了无法交互之外 不会直接返还给主人
而是需要扔到地上捡一次之后就会返还给主人
 本帖最后由 苏子峰 于 2022-12-20 00:53 编辑 
不错的插件,功能很完善
不错的插件,功能很完善
CubeCraft_ 发表于 2022-12-20 00:29
Paper1.19.2 测试了一下
把绑定的物品扔到岩浆或者仙人掌都会直接消失 并且不会返回
扔给其他玩家被捡起会 ...
问题已修复(2.0.2),送还物品只发生在 玩家捡起时、扫描器扫描时(config.yml中配置),上个版本失效是由于扫描器未能在插件启动时开启
 本帖最后由 CubeCraft_ 于 2022-12-20 23:19 编辑 
当绑定遗失的物品数量比背包槽位多的时候 被其他玩家捡到之后
把背包填满之后 剩下的会直接消失
消失之后的物品还可以找回来
就是把背包全部填满之后 再扔一个绑定物品让其他玩家捡
捡到之后就会发送至邮箱 然后领取之后之前消失的就会回来
当绑定遗失的物品数量比背包槽位多的时候 被其他玩家捡到之后
把背包填满之后 剩下的会直接消失
消失之后的物品还可以找回来
就是把背包全部填满之后 再扔一个绑定物品让其他玩家捡
捡到之后就会发送至邮箱 然后领取之后之前消失的就会回来
CubeCraft_ 发表于 2022-12-20 23:16
当绑定遗失的物品数量比背包槽位多的时候 被其他玩家捡到之后
把背包填满之后 剩下的会直接消失
消失之后的 ...
这是插件的邮件缓存机制导致的,为了避免同一时刻大量的丢失物品导致sql频繁,所以丢失物品会先放入内存队列中缓存,等到该玩家的最后一次的丢失物品5秒之后才会最终将丢失物品一次存入数据库。如果您确定玩家无操作5秒之后仍未收到提示,我会着手调查
未来可否考虑输入命令的时候加一个确认GUI?
名副其实 发表于 2022-12-23 14:32
未来可否考虑输入命令的时候加一个确认GUI?
请描述具体点,默认的命令是op才能输入的,所以我觉得确认操作不是很必要,毕竟没有高危操作
结冰的离季 发表于 2022-12-23 15:36
请描述具体点,默认的命令是op才能输入的,所以我觉得确认操作不是很必要,毕竟没有高危操作 ...
主要是我想要玩家有这样一个GUI会很不错。
如果可以的话还是加吧。毕竟有时候误操作会很难受。
 本帖最后由 结冰的离季 于 2022-12-23 15:54 编辑 
如果开放玩家使用可以考虑使用菜单插件实现,命令都是围绕绑定进行的,误操作完全可以解绑,且误操作的概率较低,如果加上确认操作反而会影响正常的使用体验,故而不会考虑。
但如果是将绑定分为2步,第一步是选择绑定的对象,第二步是确认绑定,分别为2个命令,这样的模式我觉得可以,之后会添加。
名副其实 发表于 2022-12-23 15:40
主要是我想要玩家有这样一个GUI会很不错。
如果可以的话还是加吧。毕竟有时候误操作会很难受。 ...
如果开放玩家使用可以考虑使用菜单插件实现,命令都是围绕绑定进行的,误操作完全可以解绑,且误操作的概率较低,如果加上确认操作反而会影响正常的使用体验,故而不会考虑。
但如果是将绑定分为2步,第一步是选择绑定的对象,第二步是确认绑定,分别为2个命令,这样的模式我觉得可以,之后会添加。
貌似没有办法实现
匹配到的lore 直接替换为item.lore的内容?
期待一手更新qwq
匹配到的lore 直接替换为item.lore的内容?
期待一手更新qwq
Yless 发表于 2022-12-31 21:29
貌似没有办法实现
匹配到的lore 直接替换为item.lore的内容?
期待一手更新qwq ...
下个版本加上
这个插件这么强为什么回复这么少 太奇怪了
好插件.................
随随缘 发表于 2023-1-17 02:28
这个插件这么强为什么回复这么少 太奇怪了
新发布且同类插件已经占有大部分市场,需要时间沉淀
作者你好,经过测试该插件和Ecoenchants插件不太兼容,目前知道的问题是导致Ecoenchants的gui打不开。
希望能修复一下
测试版本 Paper1.19.2
希望能修复一下
测试版本 Paper1.19.2
Minecraft1.6. 发表于 2023-2-8 18:54
作者你好,经过测试该插件和Ecoenchants插件不太兼容,目前知道的问题是导致Ecoenchants的gui打不开。
希望 ...
Ecoenchants 的 前置 eco 与大多数kotlin语言的插件都不兼容 ,具体表现为 java.Lang.LinkageError 报错,请将eco jar文件中的 kotlin 和kotlinx文件夹删掉就正常了
结冰的离季 发表于 2023-2-8 19:13
Ecoenchants 的 前置 eco 与大多数kotlin语言的插件都不兼容 ,具体表现为 java.Lang.LinkageError 报错 ...
好的 但是删掉后不会影响附魔插件功能吗
Minecraft1.6. 发表于 2023-2-8 19:49
好的 但是删掉后不会影响附魔插件功能吗
kotlin是一个依赖,taboolib系列 包括我的插件都会加载kotlin,eco内存在重复的kotlin依赖导致报错,删掉还有其他kotlin依赖可用
结冰的离季 发表于 2023-2-8 19:55
kotlin是一个依赖,taboolib系列 包括我的插件都会加载kotlin,eco内存在重复的kotlin依赖导致报错,删掉 ...
好的谢谢
可以做到物品到了玩家手中自动绑定嘛
我重新生成了一下配置文件,然后就报错了,指令除了reload其它都用不了,有没有什么解决办法?
[11:16:58] [Server thread/WARN]: java.lang.reflect.InvocationTargetException
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.BukkitTemplate.invokeBootStrapMethod(BukkitTemplate.java:172)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.BukkitTemplate.onEnable(BukkitTemplate.java:189)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542)
[11:16:58] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565)
[11:16:58] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:306)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1100)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[11:16:58] [Server thread/WARN]: Caused by: java.lang.NoClassDefFoundError: kotlin/jvm/internal/ReflectionFactory
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
[11:16:58] [Server thread/WARN]: at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
[11:16:58] [Server thread/WARN]: at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:227)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:129)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.loader.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:40)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:375)
[11:16:58] [Server thread/WARN]: at kotlin.jvm.internal.Reflection.<clinit>(Reflection.java:26)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.dto.BindLogs.<clinit>(BindLogs.kt:32)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.SakuraBind.initConfig(SakuraBind.kt:70)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.SakuraBind.onEnable(SakuraBind.kt:49)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.libs.core.PluginBootStrap.onEnable(PluginBootStrap.java:37)
[11:16:58] [Server thread/WARN]: ... 17 more
[11:16:58] [Server thread/WARN]: Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.ReflectionFactory
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:177)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: ... 39 more
[11:16:58] [Server thread/WARN]: java.lang.reflect.InvocationTargetException
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[11:16:58] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.BukkitTemplate.invokeBootStrapMethod(BukkitTemplate.java:172)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.BukkitTemplate.onEnable(BukkitTemplate.java:189)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542)
[11:16:58] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565)
[11:16:58] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:306)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1100)
[11:16:58] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[11:16:58] [Server thread/WARN]: Caused by: java.lang.NoClassDefFoundError: kotlin/jvm/internal/ReflectionFactory
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
[11:16:58] [Server thread/WARN]: at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
[11:16:58] [Server thread/WARN]: at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
[11:16:58] [Server thread/WARN]: at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:227)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:129)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: at SakuraBind-2.0.8.jar//top.iseason.bukkit.sakurabind.libs.core.loader.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:40)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:375)
[11:16:58] [Server thread/WARN]: at kotlin.jvm.internal.Reflection.<clinit>(Reflection.java:26)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.dto.BindLogs.<clinit>(BindLogs.kt:32)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.SakuraBind.initConfig(SakuraBind.kt:70)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.SakuraBind.onEnable(SakuraBind.kt:49)
[11:16:58] [Server thread/WARN]: at top.iseason.bukkit.sakurabind.libs.core.PluginBootStrap.onEnable(PluginBootStrap.java:37)
[11:16:58] [Server thread/WARN]: ... 17 more
[11:16:58] [Server thread/WARN]: Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.ReflectionFactory
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:177)
[11:16:58] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124)
[11:16:58] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
[11:16:58] [Server thread/WARN]: ... 39 more
Eater_233 发表于 2023-2-15 12:19
我重新生成了一下配置文件,然后就报错了,指令除了reload其它都用不了,有没有什么解决办法?
[11:16:58] ...
是否重启,如果重启未能解决请看我签名加qq提供详细信息
 本帖最后由 烟火x1 于 2023-2-20 11:41 编辑 
有没有可以设置单个物品的绑定方法(捡拾,使用,装备,丢弃等),用于实现获得某物品不直接绑定而是在(捡拾,使用,装备,丢弃等)指定一个或者多个情况下触发绑定的指令。
对了,我发现了一件事,
就是自动绑定触发后sakura_auto_bind 还是会残留在NBT里,
因为我在搞NPCmod的交易嘛,需要物品文字与NBT相同才可以交易嘛
能否增加个可选设置绑定但不指定主人,来达到物品文字与NBT相同,但有绑定效果
如果能结合最上面那句话可以设置单个物品(或指定NBT)的绑定方式就更好了
(当然如果作者觉得不好实现,我会尝试装两个绑定插件来配合实现描述功能。 )
)
有没有可以设置单个物品的绑定方法(捡拾,使用,装备,丢弃等),用于实现获得某物品不直接绑定而是在(捡拾,使用,装备,丢弃等)指定一个或者多个情况下触发绑定的指令。
对了,我发现了一件事,
就是自动绑定触发后sakura_auto_bind 还是会残留在NBT里,
因为我在搞NPCmod的交易嘛,需要物品文字与NBT相同才可以交易嘛
能否增加个可选设置绑定但不指定主人,来达到物品文字与NBT相同,但有绑定效果
如果能结合最上面那句话可以设置单个物品(或指定NBT)的绑定方式就更好了
(当然如果作者觉得不好实现,我会尝试装两个绑定插件来配合实现描述功能。
 本帖最后由 结冰的离季 于 2023-2-20 12:46 编辑 
回复错了,删除数据
回复错了,删除数据
 本帖最后由 结冰的离季 于 2023-2-20 12:49 编辑 
单个物品的绑定目前可以通过指定唯一nbt来实现
使用命令 /sakurabind autoBind xxxxxx 来给物品设置一个特殊的nbt
在 settings.yml 中这样设置
复制代码
不自动绑定你可以在config.yml中将扫描器关闭,至于使用时、装备时绑定的功能待添加
将会识别拥有这个特殊nbt的物品并在玩家获得它的时候自动绑定
绑定的控制都是基于有主人的情况下,故而没有物主与插件逻辑不符,但你可以将物主设置为op,给玩家使用权限
烟火x1 发表于 2023-2-20 11:00
有没有可以设置单个物品的绑定方法(捡拾,使用,装备,丢弃等),用于实现获得某物品不直接绑定而是在(捡拾 ...
单个物品的绑定目前可以通过指定唯一nbt来实现
使用命令 /sakurabind autoBind xxxxxx 来给物品设置一个特殊的nbt
在 settings.yml 中这样设置
- matchers:
 
-   单个物品绑定:
 
-     match:
 
-       nbt: 
 
-         xxxxxx: .*
 
-     settings:
 
-       auto-bind:
 
-         enable: true
 
-         onClick: true
 
- onPickup: true
不自动绑定你可以在config.yml中将扫描器关闭,至于使用时、装备时绑定的功能待添加
将会识别拥有这个特殊nbt的物品并在玩家获得它的时候自动绑定
绑定的控制都是基于有主人的情况下,故而没有物主与插件逻辑不符,但你可以将物主设置为op,给玩家使用权限
结冰的离季 发表于 2023-2-20 12:46
单个物品的绑定目前可以通过指定唯一nbt来实现
使用命令 /sakurabind autoBind xxxxxx 来给物品设置一个特 ...
懂了,知道这个插件主要目的是保护绑定物品不丢失了,所以一切基于已绑定的物主
那我也以这个方向的功能开放给玩家保护物品
烟火x1 发表于 2023-2-21 17:07
懂了,知道这个插件主要目的是保护绑定物品不丢失了,所以一切基于已绑定的物主
那我也以这个方向的功能 ...
丢失是一方面,主要目的是让物品不流通,且不会影响玩家正常使用,只要你有符合这个目的的需求我都能加
不绑定就无法识别物主,所以绑定是必须的
结冰的离季 发表于 2023-2-20 12:46
单个物品的绑定目前可以通过指定唯一nbt来实现
使用命令 /sakurabind autoBind xxxxxx 来给物品设置一个特 ...
 
我在 settings.yml 中尝试这样设置,单个NBT绑定但是我输入dang单独的无法生效还是默认的global-setting
使用过的最好的绑定插件,如果加个绑定/解绑GUI将会是完美
Eater_233 发表于 2023-2-25 19:06
使用过的最好的绑定插件,如果加个绑定/解绑GUI将会是完美
gui功能因人而异,不好做,之后可能会考虑写个kether模块兼容trmenu等菜单插件,让用户自己定制功能或者是写成附属插件
烟火x1 发表于 2023-2-21 22:25
我在 settings.yml 中尝试这样设置,单个NBT绑定但是我输入dang单独的无法生效还是默认的global-setting ...
你加我qq吧,看我签名,这样时效性高一点
挺有用的,不会被原版的一些特性,而丢失
支持作者!999
链接mysql的时候 有时候会报错请问下是啥问题qwq
Yless 发表于 2023-3-6 01:23
链接mysql的时候 有时候会报错请问下是啥问题qwq
params: '?useSSL=false'
Yless 发表于 2023-3-6 22:48
貌似不是ssl的问题
有时候启动的时候 还是会出现这个报错
使用自定义Url,如果不行请l加我qq咨询
插件能否实现物品在他人背包输入命令后找回
wudichenhui 发表于 2023-3-25 10:30
插件能否实现物品在他人背包输入命令后找回
可以自动找回,不需要输入命令,如果你有必要用命令也可以加
 本帖最后由 wudichenhui 于 2023-3-26 16:09 编辑 
该怎么添加命令找回,我想让玩家可以自己控制他们的物品,比如说他们把东西借给好友后可以自由收回
结冰的离季 发表于 2023-3-25 11:31
可以自动找回,不需要输入命令,如果你有必要用命令也可以加
该怎么添加命令找回,我想让玩家可以自己控制他们的物品,比如说他们把东西借给好友后可以自由收回
 本帖最后由 结冰的离季 于 2023-3-26 19:03 编辑 
具有 sakurabind.bypass.{玩家Auuid} 权限的玩家B可以使用 玩家A的物品
利用权限你可以做到类似信任的机制,通常您需要使用 权限插件+菜单的方式来实现,
当不再信用该玩家时取消该权限即可
找回物品是个复杂的过程,您的好友可能并不在线,或者物品被放在容器里,一个命令无法完美解决,但是基于权限控制的可以,取消信任的权限,只要玩家上线一接触到物品就能够立马找回
不过只找回背包里的物品也是可以添加命令的,如果你急需这个功能你可以加我qq1347811744 获取测试版, 否则请等待正式版,预计是 2.1.5
wudichenhui 发表于 2023-3-26 16:08
该怎么添加命令找回,我想让玩家可以自己控制他们的物品,比如说他们把东西借给好友后可以自由收回 ...
具有 sakurabind.bypass.{玩家Auuid} 权限的玩家B可以使用 玩家A的物品
利用权限你可以做到类似信任的机制,通常您需要使用 权限插件+菜单的方式来实现,
当不再信用该玩家时取消该权限即可
找回物品是个复杂的过程,您的好友可能并不在线,或者物品被放在容器里,一个命令无法完美解决,但是基于权限控制的可以,取消信任的权限,只要玩家上线一接触到物品就能够立马找回
不过只找回背包里的物品也是可以添加命令的,如果你急需这个功能你可以加我qq1347811744 获取测试版, 否则请等待正式版,预计是 2.1.5