克鲁鲁殿下
附件是出现问题的项目文件

预计问题出在:
me.fantuan233.happytree.papi.regpapi

以下是服务端的错误输出报告:


备注:me.fantuan233.happytree.event.waterplaced这个监听器不能按我设想的正常工作,希望大佬可以额外给些帮助。。(即通过水流破坏树苗来获取放置水流的玩家)
如果需要说的解决措施比较多的话,也可以加我QQ(小号):1989362225

Thehrz
你的set.yml存在吗?

你单纯将set.yml放在项目根目录是不行的 构建工具是不会管这个set.yml的


如果你现在还不理解构建工具 你可以直接把set.yml放在src/main/resources下

克鲁鲁殿下
Thehrz 发表于 2022-2-15 15:02
你的set.yml存在吗?

你单纯将set.yml放在项目根目录是不行的 构建工具是不会管这个set.yml的

谢谢,应该是存在的

Thehrz
克鲁鲁殿下 发表于 2022-2-15 15:07
谢谢,应该是存在的

你这就更有问题了 你的plugin.yml去哪了?

所以你肯定不是通过idea自动的Java构建器构建的

克鲁鲁殿下
Thehrz 发表于 2022-2-15 15:13
你这就更有问题了 你的plugin.yml去哪了?

所以你肯定不是通过idea自动的Java构建器构建的 ...

emmmmmmmmmmm
plugin.yml在resources文件夹里面

Thehrz
克鲁鲁殿下 发表于 2022-2-15 15:14
emmmmmmmmmmm
plugin.yml在resources文件夹里面

你打开你的服务器看看 plugins/happytree 有没有 set.yml

克鲁鲁殿下
Thehrz 发表于 2022-2-15 15:22
你打开你的服务器看看 plugins/happytree 有没有 set.yml


Thehrz
本帖最后由 Thehrz 于 2022-2-15 15:33 编辑

那regpapi.java这里



config.yml有a.b项吗


克鲁鲁殿下
Thehrz 发表于 2022-2-15 15:32
那regpapi.java这里

能顺便帮忙看看
me.fantuan233.happytree.event.waterplaced
这个类为什么不能实现功能吗?(即通过水流破坏树苗来获取放置水流的玩家)


Thehrz
克鲁鲁殿下 发表于 2022-2-15 15:43
能顺便帮忙看看
me.fantuan233.happytree.event.waterplaced
这个类为什么不能实现功能吗?(即通过水流破 ...

监听EntityChangeBlockEvent事件即可


克鲁鲁殿下
本帖最后由 克鲁鲁殿下 于 2022-2-15 15:58 编辑
Thehrz 发表于 2022-2-15 15:32
那regpapi.java这里


报错依然



Thehrz

java.util.LinkedHashMap$LinkedValues无法转为java.util.List

你这个l需要吗 定义以后也没有使用

克鲁鲁殿下
Thehrz 发表于 2022-2-15 16:15
java.util.LinkedHashMap$LinkedValues无法转为java.util.List

你这个l需要吗 定义以后也没有使用

好家伙


为什么我获取了map里面全部的int,却不能转换成列表

Thehrz

乱了乱了 咱捋一捋

你是config.yml有一个plant键 然后存诸如这样的数据结构是吧
  1. plant:
  2.   PlayerA: 1
  3.   PlayerB: 2
复制代码

然后你现在获取不到东西是吧

克鲁鲁殿下
Thehrz 发表于 2022-2-15 16:26
乱了乱了 咱捋一捋

你是config.yml有一个plant键 然后存诸如这样的数据结构是吧



ps:

Thehrz



你这里return 直接将Integer强转String
这是不行的 强转不是随随便便用的

你应该用.toString()
  1. return obj[_l].toString();
复制代码


克鲁鲁殿下
Thehrz 发表于 2022-2-15 15:52
监听EntityChangeBlockEvent事件即可

[url=https://sm.ms/image/z4a1xSIlwZdXEAU]


这个好像没办法实现我需要实现功能的方法吧

Thehrz
克鲁鲁殿下 发表于 2022-2-15 16:38
这个好像没办法实现我需要实现功能的方法吧

你可以自己测试 Javadocs不是万能的 它只是参考

源代码才是万能的  (尽管我们没有源代码 但我们有反编译器)

克鲁鲁殿下
Thehrz 发表于 2022-2-15 16:41
你可以自己测试 Javadocs不是万能的 它只是参考

源代码才是万能的  (尽管我们没有源代码 但我们有反编译 ...

我要是能看懂反编译器里面的源代码,我至少就就不是萌新了

克鲁鲁殿下
Thehrz 发表于 2022-2-15 16:41
你可以自己测试 Javadocs不是万能的 它只是参考

源代码才是万能的  (尽管我们没有源代码 但我们有反编译 ...





对代码做过修改后又报错了

Thehrz
克鲁鲁殿下 发表于 2022-2-15 21:21
对代码做过修改后又报错了

数组下标越界

截图把带上行号带上 有助于判断问题

克鲁鲁殿下
本帖最后由 克鲁鲁殿下 于 2022-2-15 21:29 编辑
Thehrz 发表于 2022-2-15 21:26
数组下标越界

截图把带上行号带上 有助于判断问题

抱歉抱歉。。

所以小白问题这么多是不是不适合开发



Thehrz
克鲁鲁殿下 发表于 2022-2-15 21:28
抱歉抱歉。。

所以小白问题这么多是不是不适合开发

说实话你这段代码我不是很理解 这里你是想做什么需求呢

问题大概是你的entrylList只有一个元素而你却访问了他的第1个元素

克鲁鲁殿下
Thehrz 发表于 2022-2-15 21:33
说实话你这段代码我不是很理解 这里你是想做什么需求呢

问题大概是你的entrylList只有一个元素而你却访 ...

需求:
config.yml里面储存的plant下面的全部形成的map

然后找出最高的那个int,并输出所有的玩家



问题大概是你的entrylList只有一个元素而你却访问了他的第1个元素

有可能

Thehrz
克鲁鲁殿下 发表于 2022-2-15 21:41
需求:
config.yml里面储存的plant下面的全部形成的map

所以你判断一下它的长度是不是 >1

当然这个算法在一些场景是错误的
比如这种情况
PlayerA: 1
PlayerB: 1
PlayerC: 1

你这个只会返回PlayerA,PlayerB

克鲁鲁殿下
Thehrz 发表于 2022-2-15 22:03
所以你判断一下它的长度是不是 >1

当然这个算法在一些场景是错误的



将代码改成了这个,同时在config的plant下面制作了这个
plant:
  还没有玩家进入过服务器哦QAQ: 0

但是不管怎样输出的都是“还没有玩家进入过服务器哦QAQ”

Thehrz
克鲁鲁殿下 发表于 2022-2-16 11:42
将代码改成了这个,同时在config的plant下面制作了这个
plant:
  还没有玩家进入过服务器哦QAQ: 0

那你预期的输出是什么

克鲁鲁殿下
Thehrz 发表于 2022-2-16 12:34
那你预期的输出是什么

输出值最大的键

Thehrz

那没有问题啊

你这里面就有个键 最大值肯定也只能是它

克鲁鲁殿下
Thehrz 发表于 2022-2-16 18:34
那没有问题啊

你这里面就有个键 最大值肯定也只能是它

但是除了为零的情况
还有另一个键,对应了一个比零大的值

为什么还是输出这个

Thehrz
克鲁鲁殿下 发表于 2022-2-16 19:14
但是除了为零的情况
还有另一个键,对应了一个比零大的值



这个排序写的很奇怪 你有测试过排序后的结果吗

克鲁鲁殿下
Thehrz 发表于 2022-2-16 20:02
这个排序写的很奇怪 你有测试过排序后的结果吗

之前测试过

现在在config里面预设了一个键之后就出现问题了

Thehrz
克鲁鲁殿下 发表于 2022-2-16 20:22
之前测试过

现在在config里面预设了一个键之后就出现问题了

一个个点排查问题吧 有时候自己写的代码自己最了解

那为什么非要预设一个键呢 在代码层面判断即可

克鲁鲁殿下
Thehrz 发表于 2022-2-16 20:59
一个个点排查问题吧 有时候自己写的代码自己最了解

那为什么非要预设一个键呢 在代码层面判断即可 ...

这个是我修改过的,麻烦帮忙看看原来的regpapi类和新建的Datacaiculate类(me.fantuan233.happytree.Datacaiculate)


如果没问题,那就最佳了

Thehrz
克鲁鲁殿下 发表于 2022-2-17 09:55
这个是我修改过的,麻烦帮忙看看原来的regpapi类和新建的Datacaiculate类(me.fantuan233.happytree.Data ...

把没用的注释、测试代码清理清理 还有部分代码没用遵守代码规范

另外TabooLib可以了解一下 即使不使用TabooLib也可以看看它的源码 对学习很有帮助
https://github.com/TabooLib/TabooLib
https://docs.tabooproject.org/

然后还有Git、Kotlin也应该添加到你接下来的学习计划中

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