结城希亚
阴阳师元素祭祀 发表于 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抽奖的那种感觉

Misaka。
问题:
1修改语言文件后(钥匙),已有的抽奖箱的钥匙会不可用,也不能重新设置,只能删掉重新弄一个抽奖箱才行
2在将a抽奖箱放置在a1处,然后删除a1抽奖箱.把b抽奖箱放置在a1处,右击后提示清理过期抽奖箱,然后b抽奖箱就被清理了.

结城希亚
Misaka。 发表于 2020-6-14 08:37
问题:
1修改语言文件后(钥匙),已有的抽奖箱的钥匙会不可用,也不能重新设置,只能删掉重新弄一个抽奖箱才行
2 ...

1、你修改名字肯定会不能用,哪有随便修改的,lore的话倒是无所谓,你reload了吗,直接setkey应该可以的
2、只要你抽奖箱删掉了,那个抽奖箱在所有世界里,只要交互就会清除

Misaka。
结城希亚 发表于 2020-6-14 11:01
1、你修改名字肯定会不能用,哪有随便修改的,lore的话倒是无所谓,你reload了吗,直接setkey应该可以的
...

1重载了,然后我把已有的钥匙丢掉,然后cl key test,出来的钥匙还是修改以前的那把
2要是清除了我就不会说了;就是说,在这个位置,无论放什么方块上去,右键,都会直接清除.
我看了data,位置信息并没有被清除,但是抽奖箱的信息是被清除了的。
即使我已经删了这个抽奖箱,并蹲下破坏并清除了这个抽奖箱方块

结城希亚
Misaka。 发表于 2020-6-14 11:06
1重载了,然后我把已有的钥匙丢掉,然后cl key test,出来的钥匙还是修改以前的那把
2要是清除了我就不会说 ...

1、你保存的是之前的信息,你需要重新setkey
2、看起来是BUG,等等我看看

Misaka。
结城希亚 发表于 2020-6-14 11:08
1、你保存的是之前的信息,你需要重新setkey
2、看起来是BUG,等等我看看

重新吗...
重新set是重设了单独test抽奖箱钥匙
还是把其他的都给重新设置了

Misaka。
结城希亚 发表于 2020-6-14 11:08
1、你保存的是之前的信息,你需要重新setkey
2、看起来是BUG,等等我看看

重新吗...
重新set是重设了单独test抽奖箱钥匙
还是把其他的都给重新设置了

结城希亚
Misaka。 发表于 2020-6-14 11:11
重新吗...
重新set是重设了单独test抽奖箱钥匙
还是把其他的都给重新设置了 ...

这么说吧
你setkey的时候会直接加上你message里的lore和name设置
然后再保存到data的

你就算修改了message,你data保存的钥匙也还是不会变,需要重新设置

应该懂了吧

3310201
这个不错,在模组服非常好,防熊也可以

Ken28
作者大大,不能正常用,刷屏是报错:https://paste.ubuntu.com/p/YvZCdkZcYr/

环境:Um287,PlaceholderAPI-2.10.5.jar,ProtocolLib-3.4.0.jar

结城希亚
Ken28 发表于 2020-6-17 12:11
作者大大,不能正常用,刷屏是报错:https://paste.ubuntu.com/p/YvZCdkZcYr/

环境:Um287,PlaceholderAPI ...

你应该好好看看配置文件

Ken28
结城希亚 发表于 2020-6-17 12:13
你应该好好看看配置文件

我没有更改过配置文件,配置好抽奖箱放置好后,抽奖券对其右键后开始刷屏报错的。

结城希亚
Ken28 发表于 2020-6-17 12:25
我没有更改过配置文件,配置好抽奖箱放置好后,抽奖券对其右键后开始刷屏报错的。 ...
#声音名
#默认声音支持1.9+
#如果你版本是1.9以下,请把下面的注释解除,并且把上面两行注释掉
#不然你后台会快乐到死
SoundName: 'ENTITY_EXPERIENCE_ORB_PICKUP'
SoundsName: 'ENTITY_PLAYER_LEVELUP'
#SoundName: 'ORB_PICKUP'
#SoundsName: 'LEVEL_UP'






AuroraCruiser
开源就很棒棒

qazsedc15987
1.7.10Ur无法使用,后台疯狂报错

qazsedc15987
建议楼主大大单独出个1.7.10版本的,不然后台蹦迪。。。

xiaolinlin123
新人开服表示学不会嘤嘤嘤

zhu1040734187
谢谢大佬分享

结城希亚
本帖最后由 结城希亚 于 2020-6-18 15:50 编辑
重大版本更新日志

版本2.0.0

1、删除大部分设置箱子属性指令
2、删除虚空抽奖在配置文件的设置
3、删除...还删了什么我不记得了

:
1、增加四种抽奖模式!反复横跳及跑马灯的单抽与九连抽
2、箱子设置GUI里增加箱子属性修改
3、增加权限组与语言文件修改
4、增加指令单抽/九连抽与查看箱子
5、新增两个PAPI变量
6、给物品列表增加了一些小细节
7、新增....还新增什么我又不记得了


1、修改设置界面的布局
2、修复BUG
3、插件类型从开箱
抽奖转化为全方面抽奖


yuhanai1
这插件也太好用了,赞!

清茶菌
看到更新,我就立刻赶来了

Ken28
作者大大
单抽清理 和 填充clear 两个同时开启,是不是就是让抽奖箱变成只能单抽。
有点难理解

结城希亚
Ken28 发表于 2020-6-18 16:43
作者大大
单抽清理 和 填充clear 两个同时开启,是不是就是让抽奖箱变成只能单抽。
有点难理解 ...

开启单抽清理后就不能九连抽了
不然可以利用特性控概率来....

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