本帖最后由 小钢炮君 于 2023-5-24 21:46 编辑
XgpLottery
插件简介
这是一款提供了抽奖功能的插件,理论支持1.7.10 ~ 1.19.2。 其他版本请自测 ~已测试版本: 1.7.10 1.8.8 1.12.2 1.13.2 1.16.5 1.17.2 1.18.2 1.19.2特点: 支持物品NBT。GUI操作。拥有实体箱子和奖券以及使用命令的抽奖方式。可以设置保底数和保底物品。拥有自带的商店,玩家可以直接使用金币/点券购买。可向玩家公布概率。支持占位符可选择不同的抽奖动画。
前置插件
非必要前置:PlaceholderAPI 占位符插件MCBBS: PlaceholderAPI - (mcbbs.net) SpigotMC: PlaceholderAPI | SpigotMC - High Performance MinecraftParticleLib 一款粒子特效库MCBBS: ParticleLib | (mcbbs.net)PlayerPoints 一款经典的点券插件MCBBS:PlayerPoints | (mcbbs.net)SpigotMC:PlayerPoints | SpigotMC - High Performance MinecraftVault 常用的经济APIMCBBS:Vault | (mcbbs.net)SpigotMC:Vault | SpigotMC - High Performance Minecraft
配置文件
名称描述showProbability是否向玩家展示概率。enableParticle是否在抽奖箱上显示粒子特效,如启用则需要安装ParticleLib前置,否则无效。shop是否启用抽奖商店,如果为false则玩家无法打开商店页面。giveLottery商店是否给与玩家物品,如果为false则玩家购买后直接进行抽奖。giveKey当giveLottery为true时,此处为true则给与玩家一个抽奖箱钥匙,为false则给与玩家奖券。autoSaveTime自动保存数据的时间,具体为玩家抽奖次数的相关数据,单位为秒。autoUpdateTopTime排行榜数据的更新时间,单位为秒。broadcast当玩家抽到保底物品是否播报
插件权限
权限节点描述xgplottery.manager管理权限,默认op拥有。xgplottery.shop打开商店的权限,默认玩家拥有。xgplottery.show使用命令查看奖池预览的权限,默认玩家拥有。
插件命令你可以使用/xl /lottery 来代替/xgplottery 当缩写命令冲突时请以压缩包打开插件把 plugin.yml的 - "xl" 或者 - "lottery" 删除。具体使用可使用/xgplottery help来获取相关帮助
使用教程
此处需要你安装完成插件后观看。其实很多都是gui操作,也没有什么很难的地方:p创建奖池
使用/xl menu打开管理菜单
点击管理菜单中的创建奖池
输入奖池名称,此处我创建了一个名为233的奖池
随后获得了这样一个默认的奖池。
相关配置
保底次数和价格,可以通过shift+左键或shift+右键设置。
打开奖池可以看到其他的操作。
添加物品的方式, 你可以通过拿起物品点击铁砧直接放入,也可以拿着物品使用/xl add 奖池名称 来加入奖池。请注意,奖池上限为45种物品。
同样的,你可以通过右键来编辑保底物品,当然,保底物品也可以拥有45个。所以你可以把保底物品放置3-4个 并设置保底物品的相对权重便可以控制玩家抽到保底的时候是否会”歪“ 。(谁在抽卡游戏设计的这个, 该死!)
设置抽奖箱
在地上放置一个方块,使用/xl box create 233 后左键点击方块,创建一个抽奖箱。
此处粒子特效需要安装ParticleLib 当然如果你认为这个会导致卡顿你也可以选择不添加,并在配置文件中把enableParticle设置为falseshift+右键可以预览奖池物品。
获得钥匙、奖券
你可以使用/xl give 相关命令来获得一个默认的抽奖券。也可以通过/xl get 相关命令使手中物品设置为抽奖券。具体使用方式请使用/xl help查看。奖品计算原理
请注意,当你把保底数设置为0时,玩家无论如何也不会抽到保底物品。当未启用保底机制则玩家会随机抽到物品池的物品。启用保底机制后,玩家当前抽奖次数未达保底次数时,玩家会随机从普通物品+保底物品里获得一件物品,当玩家获得保底物品的时候则会清空当前抽奖次数。当玩家抽奖次数到达保底次数。 则会只从保底池子中随机获得一件物品。设置抽奖动画
在奖池内容中,shift+右键点击切换物品选择动画。所有动画都可以直接关闭跳过动画,然后物品滚动动画
物品从右往左滚动,最后停在奖品上面。
物品选择动画
玩家点击一块儿翻开变成奖品, 其余的在2秒后全部翻开,(都是假滴) 10秒不翻开则自动翻开一块。
占位符/变量
要使用以下占位符,你需要安装 PlaceholderAPI 插件并安装player相关依赖/papi ecloud download player
%XgpLottery_playerName% 玩家的总抽奖次数%XgpLottery_max_lotteryName% 奖池的保底需要的次数%XgpLottery_value_lotteryName% 奖池售价%XgpLottery_playerName_lotteryName% 该奖池某个玩家的抽奖总数%XgpLottery_top_rank_name% 总抽奖次数排行榜的第rank名的玩家姓名%XgpLottery_top_rank_amount% 同上,为抽奖次数%XgpLottery_player_lotteryName_current% 玩家在该奖池中未获得保底的抽奖次数%XgpLottery_top_lotteryName_rank_name% 指定奖池抽奖次数第rank名的玩家姓名 %XgpLottery_top_lotteryName_rank_amount% 同上,为抽奖次数
注: 此处playerName为玩家id 为指定玩家的数据,替换为this 例如%XgpLottery_this% 则是当前玩家的抽奖总数。lotteryName则是指定奖池的奖池名。 rank为排行的名次。
有人要问了~ 那么这些东西有什么用呢?你可以配合着HolographicDisplays插件,又或者是其他全息显示插件,在抽奖箱上方创建如图所示的信息。
又或者是一个奖池的排行榜。
具体怎么用则靠你自己去设计了!(不太善于设计这些 ,手动狗头)
仅供参考:
每一行的字符串
- ICON:diamond
- '&e&l奖池: {rainbow}123'
- '&6&l&m---------------'
- '&e欢迎: &b{player}'
- '&e您在本奖池抽奖次数:&b%XgpLottery_this_123%'
- '&e保底次数:&n&b%XgpLottery_max_123%&r &e已垫次数:&n&b%XgpLottery_ThisPlayer_123_current%'
- '&6手持钥匙&b右键&6开启抽奖'
- '&bshift+右键&6打开奖池预览'
- '&d价格: &b%XgpLottery_value_123%&d点券'
- '&b/xl shop &6打开商店购买'
排行榜
- ICON:GOLD_INGOT
- '&l{rainbow}排行榜'
- '&6&l&m---------------'
- '&e第1名&b%XgpLottery_top_1_name% &e抽奖次数:&b%XgpLottery_top_1_amount%'
- '&e第2名&b%XgpLottery_top_2_name% &e抽奖次数:&b%XgpLottery_top_2_amount%'
- '&e第3名&b%XgpLottery_top_3_name% &e抽奖次数:&b%XgpLottery_top_3_amount%'
- '&e第4名&b%XgpLottery_top_4_name% &e抽奖次数:&b%XgpLottery_top_4_amount%'
复制代码
已知问题
暂无~如有相关问题请向我反馈,你可以包括但不限于站内信,帖内回复。
更新记录
1.0.0 插件发布 2023.5.24
下载地址

XgpLottery-1.0.0.jar
(152.46 KB, 下载次数: 0)
要是服务端没有Gson报错(此处点名1.7.10 1.8的spigot就自带了)则下载这一个

XgpLottery-1.0.0.jar
(396.72 KB, 下载次数: 0)
注意事项
如果报错 java.lang.NoClassDefFoundError: com/google/gson/JsonElement是因为服务端不自带gson库导致的
则下载另一个文件体积较大的版本, 我狠狠的把Gson给塞进去了
服务端版本1.9以下是不能使用粒子特效的。
早期版本可能没考虑的bug会很多,我在此对使用并反馈bug的坛u表示感谢
不知道干啥的文档/开源地址
文档:点击这里~开源:(shishan)呜呜呜我的代码就像海绵一样千疮百孔轻一点喷~
使用情况

本插件所用所有代码均为原创,不存在借用/抄袭等行为
XgpLottery
插件简介
这是一款提供了抽奖功能的插件,理论支持1.7.10 ~ 1.19.2。 其他版本请自测 ~已测试版本: 1.7.10 1.8.8 1.12.2 1.13.2 1.16.5 1.17.2 1.18.2 1.19.2特点: 支持物品NBT。GUI操作。拥有实体箱子和奖券以及使用命令的抽奖方式。可以设置保底数和保底物品。拥有自带的商店,玩家可以直接使用金币/点券购买。可向玩家公布概率。支持占位符可选择不同的抽奖动画。
前置插件
非必要前置:PlaceholderAPI 占位符插件MCBBS: PlaceholderAPI - (mcbbs.net) SpigotMC: PlaceholderAPI | SpigotMC - High Performance MinecraftParticleLib 一款粒子特效库MCBBS: ParticleLib | (mcbbs.net)PlayerPoints 一款经典的点券插件MCBBS:PlayerPoints | (mcbbs.net)SpigotMC:PlayerPoints | SpigotMC - High Performance MinecraftVault 常用的经济APIMCBBS:Vault | (mcbbs.net)SpigotMC:Vault | SpigotMC - High Performance Minecraft
配置文件
名称描述showProbability是否向玩家展示概率。enableParticle是否在抽奖箱上显示粒子特效,如启用则需要安装ParticleLib前置,否则无效。shop是否启用抽奖商店,如果为false则玩家无法打开商店页面。giveLottery商店是否给与玩家物品,如果为false则玩家购买后直接进行抽奖。giveKey当giveLottery为true时,此处为true则给与玩家一个抽奖箱钥匙,为false则给与玩家奖券。autoSaveTime自动保存数据的时间,具体为玩家抽奖次数的相关数据,单位为秒。autoUpdateTopTime排行榜数据的更新时间,单位为秒。broadcast当玩家抽到保底物品是否播报
插件权限
权限节点描述xgplottery.manager管理权限,默认op拥有。xgplottery.shop打开商店的权限,默认玩家拥有。xgplottery.show使用命令查看奖池预览的权限,默认玩家拥有。
插件命令你可以使用/xl /lottery 来代替/xgplottery 当缩写命令冲突时请以压缩包打开插件把 plugin.yml的 - "xl" 或者 - "lottery" 删除。具体使用可使用/xgplottery help来获取相关帮助

使用教程
此处需要你安装完成插件后观看。其实很多都是gui操作,也没有什么很难的地方:p创建奖池
使用/xl menu打开管理菜单




保底次数和价格,可以通过shift+左键或shift+右键设置。



设置抽奖箱
在地上放置一个方块,使用/xl box create 233 后左键点击方块,创建一个抽奖箱。


你可以使用/xl give 相关命令来获得一个默认的抽奖券。也可以通过/xl get 相关命令使手中物品设置为抽奖券。具体使用方式请使用/xl help查看。奖品计算原理
请注意,当你把保底数设置为0时,玩家无论如何也不会抽到保底物品。当未启用保底机制则玩家会随机抽到物品池的物品。启用保底机制后,玩家当前抽奖次数未达保底次数时,玩家会随机从普通物品+保底物品里获得一件物品,当玩家获得保底物品的时候则会清空当前抽奖次数。当玩家抽奖次数到达保底次数。 则会只从保底池子中随机获得一件物品。设置抽奖动画
在奖池内容中,shift+右键点击切换物品选择动画。所有动画都可以直接关闭跳过动画,然后物品滚动动画
物品从右往左滚动,最后停在奖品上面。

物品选择动画
玩家点击一块儿翻开变成奖品, 其余的在2秒后全部翻开,(都是假滴) 10秒不翻开则自动翻开一块。

占位符/变量
要使用以下占位符,你需要安装 PlaceholderAPI 插件并安装player相关依赖/papi ecloud download player
%XgpLottery_playerName% 玩家的总抽奖次数%XgpLottery_max_lotteryName% 奖池的保底需要的次数%XgpLottery_value_lotteryName% 奖池售价%XgpLottery_playerName_lotteryName% 该奖池某个玩家的抽奖总数%XgpLottery_top_rank_name% 总抽奖次数排行榜的第rank名的玩家姓名%XgpLottery_top_rank_amount% 同上,为抽奖次数%XgpLottery_player_lotteryName_current% 玩家在该奖池中未获得保底的抽奖次数%XgpLottery_top_lotteryName_rank_name% 指定奖池抽奖次数第rank名的玩家姓名 %XgpLottery_top_lotteryName_rank_amount% 同上,为抽奖次数
注: 此处playerName为玩家id 为指定玩家的数据,替换为this 例如%XgpLottery_this% 则是当前玩家的抽奖总数。lotteryName则是指定奖池的奖池名。 rank为排行的名次。
有人要问了~ 那么这些东西有什么用呢?你可以配合着HolographicDisplays插件,又或者是其他全息显示插件,在抽奖箱上方创建如图所示的信息。


仅供参考:
每一行的字符串
- ICON:diamond
- '&e&l奖池: {rainbow}123'
- '&6&l&m---------------'
- '&e欢迎: &b{player}'
- '&e您在本奖池抽奖次数:&b%XgpLottery_this_123%'
- '&e保底次数:&n&b%XgpLottery_max_123%&r &e已垫次数:&n&b%XgpLottery_ThisPlayer_123_current%'
- '&6手持钥匙&b右键&6开启抽奖'
- '&bshift+右键&6打开奖池预览'
- '&d价格: &b%XgpLottery_value_123%&d点券'
- '&b/xl shop &6打开商店购买'
排行榜
- ICON:GOLD_INGOT
- '&l{rainbow}排行榜'
- '&6&l&m---------------'
- '&e第1名&b%XgpLottery_top_1_name% &e抽奖次数:&b%XgpLottery_top_1_amount%'
- '&e第2名&b%XgpLottery_top_2_name% &e抽奖次数:&b%XgpLottery_top_2_amount%'
- '&e第3名&b%XgpLottery_top_3_name% &e抽奖次数:&b%XgpLottery_top_3_amount%'
- '&e第4名&b%XgpLottery_top_4_name% &e抽奖次数:&b%XgpLottery_top_4_amount%'
复制代码
已知问题
暂无~如有相关问题请向我反馈,你可以包括但不限于站内信,帖内回复。
更新记录
1.0.0 插件发布 2023.5.24
下载地址

XgpLottery-1.0.0.jar
(152.46 KB, 下载次数: 0)
要是服务端没有Gson报错(此处点名1.7.10 1.8的spigot就自带了)则下载这一个

XgpLottery-1.0.0.jar
(396.72 KB, 下载次数: 0)
注意事项
如果报错 java.lang.NoClassDefFoundError: com/google/gson/JsonElement是因为服务端不自带gson库导致的
则下载另一个文件体积较大的版本, 我狠狠的把Gson给塞进去了
服务端版本1.9以下是不能使用粒子特效的。
早期版本可能没考虑的bug会很多,我在此对使用并反馈bug的坛u表示感谢
不知道干啥的文档/开源地址
文档:点击这里~开源:(shishan)呜呜呜我的代码就像海绵一样千疮百孔轻一点喷~
使用情况

本插件所用所有代码均为原创,不存在借用/抄袭等行为