结城希亚
古小枫 发表于 2020-5-18 11:26
提个小建议,可以出一个拥有对应权限才可以开对应箱子的功能,用于服务器不同等级的抽奖 ...

行,下版本更新

黑羽快斗´
图挂了怎么搞

结城希亚

没挂吧,gif加载挺慢的

你看看教程部分的图挂了没

清风残阳
很不错的插件 方便又好用

QZ、冷幽
可以说是很用力了!楼主加油~~~

唐泽俊之
本帖最后由 唐泽俊之 于 2020-5-19 12:44 编辑

发现一个bug,没有op权限也可以使用cl gui指令改变抽奖设置输出cl时,会提示玩家不需要指令,
但是输出cl gui  可以直接编辑抽奖箱

antilby1337
gui操作太方便了

死神kill
77777777777777777

清风残阳
试过 1.12.2墨端了 可以用 感谢大佬 分享

commandf1
开箱开到
咳咳qwq

姜乐乐
感谢楼主大大分享此贴 感谢发帖

小鬼影sl
真的是高产,啊你的插件

小鬼影sl
感谢大佬分享!下载了

Chaos_dream
可以自定义几率吗?

烟消1云散
支持原创,又多了一款新的抽奖插件哈哈

结城希亚
Chaos_dream 发表于 2020-5-22 14:02
可以自定义几率吗?

物品几率为
你摆放这个物品的格子数/54

1005057343
可以抽到什么全服公告吗

结城希亚
1005057343 发表于 2020-5-30 20:17
可以抽到什么全服公告吗

可以,指令里有的设置

1005057343
结城希亚 发表于 2020-5-30 20:18
可以,指令里有的设置

哦哦,看到了。九连抽没有公告,嘿嘿

结城希亚
1005057343 发表于 2020-5-30 20:27
哦哦,看到了。九连抽没有公告,嘿嘿

有公告,特意弄了
/cl 9nineinfo

1005057343
结城希亚 发表于 2020-5-30 20:29
有公告,特意弄了
/cl 9nineinfo

好的好的看见了 感谢

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-5-31 21:55 编辑

楼主
这个插件开源开在哪了
我怎么没找到.yys

行 开源在开源那(指开源可以点击

至于我为什么会来....
https://www.mcbbs.net/forum.php? ... 054901&pid=18417786




https://github.com/Tany-Roinflam/CratesLottery/blob/master/src/com/tany/crateslottery/listenevent/Event.java#L319

是这样的:
你在主线程读取了配置文件。 (主线程文件IO操作)

建议缓存在一个类里面
然后提供命令重载
要不然 很卡

大概思路可以参考https://github.com/EpicBanItemTeam/NewHonor/blob/master/NewHonor-Sponge/src/main/java/com/github/euonmyoji/newhonor/configuration/HonorConfig.java

..?
不过这个参考代码可能很糟糕







结城希亚
阴阳师元素祭祀 发表于 2020-5-31 21:49
楼主
这个插件开源开在哪了
我怎么没找到.yys

那个不是配置文件
是储存文件(

要即时读取的
我在Mohist里测试都没卡过(可能就俩号原因不是很明显)
可以让他换成Mohist试试

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-5-31 21:59 编辑
结城希亚 发表于 2020-5-31 21:55
那个不是配置文件
是储存文件(

[backcolor=rgba(251, 242, 219, 0.333)]储存文件也请缓存一下
如果有更改 则修改缓存
然后异步保存到文件中((

文件io卡顿应该与服务端无关。


如果一定要保证配置文件是最新的
可以监听文件是否被修改
然后在其他线程读取
主线程直接调用缓存

结城希亚
阴阳师元素祭祀 发表于 2020-5-31 21:56
储存文件也请缓存一下
如果有更改 则修改缓存
然后异步保存到文件中((

没接触过缓存储存数据
也就只知道个saveConfig(这貌似只对config.yml有效)


待我研究一晚上
毕竟有一大堆地方需要改的

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-5-31 22:06 编辑
结城希亚 发表于 2020-5-31 21:59
没接触过缓存储存数据
也就只知道个saveConfig(这貌似只对config.yml有效)

开个field (在class里面开变量)
比如
  1. class CLASSNAME {
  2.     public static FileConfiguration theFieldNameThatPointFileConfig = .....
  3. }
复制代码

如果需要更改

  1. CLASSNAME.theFieldNameThatPointFileConfig.set(....);
复制代码


如果一定需要即时保存 那可以在其他线程或者开个异步task调用
  1. CLASSNAME.theFieldNameThatPointFileConfig.save(...);
复制代码


重载的时候 差不多就可以了
  1. CLASSNAME.theFieldNameThatPointFileConfig = load(....);
复制代码


可以参考数据文件(反正都是文件) 的相关代码(?
https://github.com/EpicBanItemTeam/NewHonor/blob/master/NewHonor-Sponge/src/main/java/com/github/euonmyoji/newhonor/configuration/LocalPlayerConfig.java


每个玩家的数据类 (解析之后的 以及需要实时获取的
存在了
https://github.com/EpicBanItemTeam/NewHonor/blob/master/NewHonor-Sponge/src/main/java/com/github/euonmyoji/newhonor/manager/HonorManagerImpl.java#L16

结城希亚
阴阳师元素祭祀 发表于 2020-5-31 22:02
开个field (在class里面开变量)
比如

我现在有亿点迷惑了

之前问过一些dalao都说不会

不是同一个人


纱夜
本帖最后由 阴阳师元素祭祀 于 2020-5-31 22:12 编辑
结城希亚 发表于 2020-5-31 22:05
我现在有亿点迷惑了

之前问过一些dalao都说不会

可能大佬的想法
是认为
内存中读取加载好了的yml文件

频繁读取文件流肯定会的((
除非是固态

可是我打gal都是机械
这个你得看硬盘 和文件大小
如果频繁读(加载)配置文件不卡 那为什么玩家跑图会卡呢(


硬盘->内存->你的代码
和内存->你的代码
性能肯定是有差距的

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-5-31 22:20 编辑

因为上下文无关所以单独开一条回复
https://github.com/Tany-Roinflam ... b/master/.gitignore

里面可能是不知道从哪里cv来的列表

.gitignore
是用来存储你不想要被推上去的文件/文件夹名字的

所以
你的.gitignore应该有一行
  1. bin
复制代码

因为构建产物怎么想也不应该被推上来
指->
https://github.com/Tany-Roinflam/CratesLottery/tree/master/bin/

来移除远程仓库上的文件 当然我也不敢确保我这个命令是对的(?)
git rm --cached bin/

.gitignore你也可以参考
海螺——土球——还有一个dust大佬——写的ebi
https://github.com/EpicBanItemTe ... b/master/.gitignore
(部分符号表示一些匹配或者白名单

ebi的不能参考。(大概

小悠酱
怎么好的抽奖 收藏了啊

构思特ghost
支持1.15吗!

结城希亚
构思特ghost 发表于 2020-6-1 00:40
支持1.15吗!

不支持的

William_Shi
非常好的原创插件!支持大佬!

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-6-2 09:04 编辑

我又双叒叕来了      
那个git命令参数我可能打反了 试试
  1. git rm bin/ --cached
复制代码
茶馆和问答水贴没劲 编程问答又不会去
以下代码是举例不代表只有这个地方有一点点小问题(?)
https://github.com/Tany-Roinflam/CratesLottery/blob/master/src/com/tany/crateslottery/listenevent/Event.java#L39
代码为
  1. HashMap<Player, Boolean> Sneak = new HashMap<Player, Boolean>();
复制代码


这个比较好的是改成
  1. Set<UUID> sneaking = new HashSet<>();
复制代码
在潜行的时候
sneaking.add(uuid);
不潜行的时候
sneaking.remove(uuid);

https://github.com/Tany-Roinflam/CratesLottery/blob/master/src/com/tany/crateslottery/listenevent/Event.java#L127
  1. Other.data.save(file1);Other.data = YamlConfiguration.loadConfiguration(file1);
复制代码
保存配置文件进文件之后

为什么需要重新从文件读一次呢
这是不必的IO开销

还有一点点细节问题和代码格式问题我就不说了毕竟没有内存泄漏/io卡顿



https://bukkit.windit.net/javadoc/org/bukkit/entity/Entity.html#getUniqueId--

java.util.UUID getUniqueId()
返回实体的UUID (唯一且持久的id)
原文: Returns a unique and persistent id for this entity

返回:
UUID

https://bukkit.windit.net/javado ... ation-java.io.File-
loadConfiguration(java.io.File file)
Creates a new YamlConfiguration, loading from the given file.


结城希亚
阴阳师元素祭祀 发表于 2020-6-2 08:56
我又双叒叕来了      
那个git命令参数我可能打反了 试试
茶馆和问答水贴没劲 编程问答又 ...

1、晚亿点试试
2、player的话确实,我晚点改成Name好了(实际上其他地方我都改为string了,player作为键太屑了)(因为我服务器不是正版服,用不上uuid)
3、感觉和数组一样,我直接创建个新数组储存玩家好了

4、我脑抽了,确实是不用再读,因为已经修改好了,只是把修改的内容写出去
5、细节可以说一下,我也想了解一下dalao们的想法

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-6-2 09:52 编辑
结城希亚 发表于 2020-6-2 09:23
1、晚亿点试试
2、player的话确实,我晚点改成Name好了(实际上其他地方我都改为string了,player作为键太 ...

extra.
目前PlacehoderAPI类中代码似乎是现场读文件
解析一次变量读一次硬盘的样子
可以直接调内存中的 否则也可能出现不一致的情况
https://github.com/Tany-Roinflam/CratesLottery/blob/master/src/com/tany/crateslottery/placeholderapi/PlaceholderAPI.java#L25

如果解析变量的人在主线程 那么卡的是主线程
如果解析变量的人不在主线程 问题也不是太大

3. 开数组(???)
数组是以下标索引的
这是要自己维护吗

5.茶馆版主不是大佬 建议找海螺土球


其他是完全没什么必要在意的小问题
大概就是
" "和"        "在代码缩进中混用一个是空格(32)
一个是\t(9)  (按tab的默认效果(?

在不同浏览器效果可能不同 当然一行里面混用可能更糟糕


图片选中的缩进是\t
图片选中下面的缩进是空格

还有一些拼音命名/无意义命名小问题(?



看 这个缩进(空格和\t)似乎是混用的  不过mcbbs的code里面的\t会自动被替换成空格
https://github.com/Tany-Roinflam/CratesLottery/blob/master/src/com/tany/crateslottery/listenevent/Event.java#L114
  1.     int x = Integer.parseInt(location.split(":")[1]);
  2.                                 int y = Integer.parseInt(location.split(":")[2]);
  3.                                 int z = Integer.parseInt(location.split(":")[3]);
复制代码
某地方代码一个字符串分割了3次
虽然复制粘贴的确舒服
存一下其中一次分割的结果也好的


话说..玩家退出的时候 建议清理一下缓存的玩家状态 比如潜行什么的
我也不知道问题大不大


私货:
    有兴趣试试好用的免费的https://www.jetbrains.com/idea/  社区版么

我发现我可以ctrl+F
黄色高亮的是单个空格字符 可以看看缩进混用成什么样子了(?



这是隔壁EpicBanItemTeam那边的开源代码 (4个空格)搜索结果
当然一定程度上是ide的问题(?)






结城希亚
阴阳师元素祭祀 发表于 2020-6-2 09:42
extra.
目前PlacehoderAPI类中代码似乎是现场读文件
解析一次变量读一次硬盘的样子

都改了都改了
数组的话实际上也是能contains查的

至于拼音什么的...有时候我变量名全用完只能这样
我看得懂就行了.jpg

这个空格+tab看起来是ide的问题
我自己手动改也不行,还是一样

存分割结果是什么意思,不太懂

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-6-2 11:10 编辑
结城希亚 发表于 2020-6-2 11:02
都改了都改了
数组的话实际上也是能contains查的

1. 你确定是数组而不是List<T>或者Set<T>么
   (数组什么时候有方法了 啊这)
  1. ClassName[] varName;
复制代码

这个是数组啊(?)

2.
可以看看
IDE设置->编辑器选项->缩进选项
IDE Settings -> Editor -> Intent
3.
大概是
  1. String[] xyzStrings = location.split(":");
  2. int x = Integer.parseInt(xyzStrings[0]);
  3. int y = Integer.parseInt(xyzStrings[1]);
  4. int z = Integer.parseInt(xyzStrings[2]);
复制代码

这样?

jjsmecraft
插件不错非常喜欢

结城希亚
阴阳师元素祭祀 发表于 2020-6-2 11:08
1. 你确定是数组而不是List或者Set么
   (数组什么时候有方法了 啊这)

数组不是ArrayList<String> name = new ArrayList<String>()
这样的吗
难道我又学错什么了(

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-6-2 11:44 编辑
结城希亚 发表于 2020-6-2 11:34
数组不是ArrayList name = new ArrayList()
这样的吗
难道我又学错什么了(

以下说法完全不严谨
ArrayList<T>继承List<T>
是用数组实现List<T>接口
List<T>是接口
定义可以看到是
public interface List<T> .........

ArrayList<T>是泛型类

啊这以下说法完全不严谨
建议删库跑路


  1. String[] strs = new String[9];
复制代码
^是String数组
  1. List<String> strList = new ArrayList<>();
复制代码
^是用String数组实现了一个List<String>
  1. List<String> strList = new LinkedList<>();
复制代码
^是用链表算法实现了一个List<String>
https://baike.baidu.com/item/%E9%93%BE%E8%A1%A8/9794473?fr=aladdin

或者...先去看看面向对象的东西(?)
[搬运+翻译][长篇预警][从零学编程]索引贴——目前支持3种编程语言
https://www.mcbbs.net/thread-688163-1-1.html
(出处: Minecraft(我的世界)中文论坛)


没有java 那没事了 但是我想安利箱子的教程




结城希亚
本帖最后由 结城希亚 于 2020-6-2 11:45 编辑
阴阳师元素祭祀 发表于 2020-6-2 11:37
以下说法完全不严谨
ArrayList继承List
是用数组实现List接口
以下说法完全不严谨

我直接复读两次.ogg


这就是速成的弊了
直接remake

我主要就是想说这个List也能用

箱子..是idea?
了 解 了

思念化作海
本帖最后由 折叠 于 2020-6-3 19:05 编辑

抽奖钥匙的名字和Lore有办法自定义吗QwQ
输入/cl create [宝箱名] [ID] [数量]  好像没反应诶 后台没有报错

结城希亚
折叠 发表于 2020-6-3 19:01
抽奖钥匙的名字和Lore有办法自定义吗QwQ
输入/cl create [宝箱名]  [数量]  好像没反应诶 后台没有 ...

其他指令有没有问题

思念化作海
结城希亚 发表于 2020-6-3 19:35
其他指令有没有问题

啊..现在又试了一遍 是我的问题 我的问题orz
命令输错了 没给抽奖箱设置物品233

结城希亚
折叠 发表于 2020-6-3 19:37
啊..现在又试了一遍 是我的问题 我的问题orz
命令输错了 没给抽奖箱设置物品233 ...
  1.                                         if(Other.data.getString("CrateItem")==null) {
  2.                                                 sender.sendMessage("§c未设置箱子");
  3.                                                 return true;
  4.                                         }
复制代码

正常是有信息提示的
你难道在设置箱子名称时输入的指令?(会话会屏蔽其他信息)

思念化作海
结城希亚 发表于 2020-6-3 19:41
正常是有信息提示的
你难道在设置箱子名称时输入的指令?(会话会屏蔽其他信息) ...

呜呜 命令应该是/cl crate的 我打成/cl create了orz 对8起

Misaka。
妙    啊   ~  建议支持右键钥匙直接打开抽奖界面 XD

结城希亚
Misaka。 发表于 2020-6-13 23:02
妙    啊   ~  建议支持右键钥匙直接打开抽奖界面 XD

虚 空 抽 奖

会考虑的

Misaka。
我刚刚把变换次数设为了0...绝了

正事,建议音效整一个12341声这种感觉
就有点hpy抽奖的那种感觉

第一页 上一页下一页 最后一页