寒冷冬日中,來杯熱飲,幫欣賞的作品投個票,支持一下。
LV. 19
GP 358

【自製】LotteryItem - 自訂抽獎插件 v1.7 [20210121] 1.13+

樓主 老葉 class70636
GP26 BP-

  • 插件名稱:LotteryItem
  • 插件原文:本文
  • 開發:jdk8
  • 適用版本:Spigot/PaperSpigot 1.13+
  • 前置插件:
    • Vault必須
    • NBT API必須
    • 經濟插件必須
  • 下載:直接下載

前言
這是之前玩劍靈想帶出來的某個插件,寫到一半就擱置了。最近剛好有空,再加上有朋友xgd幫我寫gui api,所以就來把它完成。

插件功能
  • 全GUI設置
  • 可設定範圍數量的獎品
  • 可抽錢或其他插件製作出來的物品
  • 設置安慰獎或開啟需求
  • 設置冷卻時間、使用期限
  • 抽到獎品全頻廣播
  • 獎品滑鼠顯示

使用方法
部分名詞解釋
- 抽取物
抽取物可抽取物品型態、名稱、敘述(前提是要有)作為抽獎物之型態、名稱、敘述。
- 單一抽取
若設置單一抽取則該抽獎物只會抽到一樣獎品,就算有多個中獎機率為100%的獎品也一樣。抽獎順序是依照config設定。


指令及權限
*所有權限預設均為OP
  • /li create <ID>
    • 功能:創建抽獎物
    • 權限:lotteryitem.commands.create
  • /li edit <ID>
    • 功能:編輯抽獎物
    • 權限:lotteryitem.commands.edit
  • /li remove <ID>
    • 功能:刪除抽獎物
    • 權限:lotteryitem.commands.remove
  • /li get <ID> [amount]
    • 功能:取得抽獎物
    • 權限:lotteryitem.commands.get
  • /li give <PLAYER_ID> <ID> [amount]
    • 功能:給予指定玩家抽獎物
    • 權限:lotteryitem.commands.give
  • /li manager(m)
    • 功能:開啟抽獎物管理介面
    • 權限:lotteryitem.commands.manager
  • /li refresh
    • 功能:重製所有玩家身上的抽獎物
    • 權限:lotteryitem.commands.refresh
  • /li reload [config|saves|items|strings]
    • 功能:重新讀取檔案
    • 權限:lotteryitem.commands.reload
  • 測試人員功能
    • 功能:使用抽獎物時不消耗抽獎物數量
    • 權限:lotteryitem.tester

檔案
  • 設定檔 config.yml
    • 所有重要設定均有註解標示
  • 物品名稱檔 items.yml
    • 格式為:<物品原始名稱>: <自訂名稱>
  • 抽獎物存檔 saves.yml
    • 儲存抽獎物的地方,沒事不要亂動
  • 字串檔 strings.yml
    • 可自行翻譯字串

後記
因為不想做得太複雜,所以:經驗或其他插件(e.g. PlayerPoints...等等)就不配合一起做;有BUG、不會使用、建議可以留言、私信,謝謝收看。

常見問題
Q.抽獎物使用後不會消耗數量
A.擁有權限lotteryitem.tester使用抽獎物時將不消耗抽獎物數量,預設為OP,請將OP取消或將權限取消
26
-
LV. 8
GP 44
2 樓 綠茶 manu2003ty
GP0 BP-
[13:42:50] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to LotteryItem v1.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1613]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1613]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1613]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1613]
at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:236) ~[patched_1.12.2.jar:git-Paper-1613]
at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:203) ~[patched_1.12.2.jar:git-Paper-1613]
at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:199) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1035) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:5) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1613]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_211]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_211]
at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1613]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1613]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source) ~[?:1.8.0_211]
at java.util.ArrayList.get(Unknown Source) ~[?:1.8.0_211]
at me.old.li.a.f.e(Unknown Source) ~[?:?]
at me.old.li.a.f.a(Unknown Source) ~[?:?]
at me.old.li.b.a(Unknown Source) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor346.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1613]
... 18 more
0
-
LV. 10
GP 65
4 樓 我不叫特斯了 fsr0494282
GP0 BP-

item-nbt-api-plugin-2.0.0  更新之後
LotteryItem 不能用 lol :p

0
-
LV. 16
GP 23
5 樓 亞洲經陳午 a92311110
GP0 BP-
請問下普通的水桶服也可以裝嘛 還是一定要spigot?
0
-
LV. 20
GP 376
6 樓 老葉 class70636
GP2 BP-
      20191113 v1.2     
國軍Online登出,小修個東西;
但時間不多只修一下1.13+。

修復
  • 現在廣播不論show_item設置與否都會正常發送了
其他
  • 現在將nbt api包含在插件內了,所以nbt api有沒有裝都沒差了

2
-
LV. 21
GP 380
7 樓 老葉 class70636
GP3 BP-
      20200118 v1.3     
快過年了,先祝大家新年快樂~

新增
  • 現在可以設置抽獎時的音效了。
  • 現在可以設置為選擇性的獎品型態。
其他
  • 更新到1.15+
※※config檔有變更,請刪掉後重載。
(影片測試版本為1.15.1)
3
-
LV. 20
GP 29
8 樓 OuO s7944
GP1 BP-
目前spigot和paper都已經更新1.16.1伺服器端了

想請問作者有更新1.16的計畫嗎

此款插件設定便利希望能支援上去
1
-
LV. 20
GP 30
9 樓 OuO s7944
GP0 BP-
您好 目前更新伺服器端到最新版本  paper-204 (1.16.3

插件有正常讀取但使用時會顯示此錯誤
an internal error occyrred while attempting perform this command

希望可以更新 感謝與麻煩您
0
-
LV. 12
GP 11
10 樓 餅乾Kocki zvcx9000
GP0 BP-
伺服器版本 : 1.16.3 spigot
插件版本 : v1.4
插件正常運行 , 無法獲得抽獎箱
狀況 : 有OP . 經濟 . 無NBTapi

0
-
LV. 22
GP 411
11 樓 老葉 class70636
GP1 BP-
      20201017 v1.5     
spigotAPI偷改...

新增
  • 新增give指令。
其他
  • 1.16.3可以正常使用了。
※備註:
  因為spigotAPI有更改,如果v1.5要在spigot 1.16.3以下使用請使用BuildTools編譯該版本的伺服端以免還是有錯誤(paper不確定)。

1
-
LV. 1
GP 0
12 樓 夜允 as26368135
GP0 BP-
請問可以設定成使用1次即消失而不是時效性嗎?
0
-
LV. 22
GP 412
13 樓 老葉 class70636
GP4 BP-
      20201110 v1.6     

新增
  • 抽獎物管理介面換頁鈕。
其他
  • 更新到1.16.4。
  • 將config.yml部分字串分離至strings.yml檔案。
  • 將items.yml,saves.yml移至files資料夾內(請將原本的items.yml及saves.yml覆蓋至files資料夾內)。
  • 因為NBTAPI只要一更新就會發生錯誤,所以現在插件不再Shading NBTAPI了,故NBTAPI又改為必裝插件(理論上日後有NBTAPI的問題只需更新NBTAPI至最新版即可)
4
-
LV. 24
GP 423
14 樓 老葉 class70636
GP3 BP-
      20210121 v1.7     
先預祝各位新年快樂~

更新
  • 更新至spigot1.16.5API。
  • 單一抽取的計算方式。
  • 抽獎物的音效正名為「全域音效」。
新增
  • 對特定獎品的單獨音效設置鈕(註:若同時設置獎品單獨音效及抽獎物全域音效時,會優先撥放獎品的單獨音效)。
  • 批量開啟功能:可用蹲下+右鍵開啟全部抽獎物(需在config裡設置batch_open為true)。
移除
  • 隨機抽取按鈕(意義不明的按鈕==)。
修復
  • 修復若設置為選擇性抽獎物的一個嚴重BUG(見註2)。
*備註
  1. config檔新增了batch_open這個選項,請刪掉config.yml重讀或是在config.yml裡的settings加入batch_open: falsebatch_open: true
  2. 今後有bug或是建議問題強烈建議使用留言站內信,千萬不要使用哈哈姆特私訊,因為這個系統不好用所以我幾乎沒在開,結果看到有個嚴重的bug是去年留給我的

3
-
未登入的勇者,要加入 15 樓的討論嗎?
板務人員:

1321 筆精華,昨天 更新
一個月內新增 4
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】