[物品库] MoonItem - 服务端插件 - Minecraft(我的世界)中文论坛 -.html

[物品库] MoonItem - 服务端插件 - Minecraft(我的世界)中文论坛 -

Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 349|回复: 7
打印 上一主题 下一主题

[原创插件] [物品库] MoonItem

[复制链接]
壹仟元 当前离线
积分
2100
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-4-21
查看详细资料

来自:未知地域

跳转到指定楼层
楼主
发表于 2023-1-26 01:25:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
服务端插件
英文名称:MoonItem
中文名称:月亮物品
插件来源:原创
适用服务端:Spigot 
插件类型:娱乐 
语言支持:简体中文 
适用版本:1.12 
前置Mod|插件:无前置插件
下载地址:http://www.帖内.com
原帖地址:-
插件Logo:-
插件简介:高度自定义物品系统

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 壹仟元 于 2023-1-26 01:28 编辑
MoonItem[V1.0.0]
使用过程中如果遇到不明白的及后台报错可加交流群进行讨论
本帖插件及内容禁止任何人转载到任何地方
交流群: 539039748 | 待开源(完善内容后)


        配置文件:
        
        指令:  
/moonitem give 玩家 物品
/moonitem reload




效果图





下载

如果觉得不错的话请评个分,谢谢

[物品库]MoonItem 1.0.0.jar (8.38 KB, 下载次数: 9)


插件日志
2023.1.26
发布插件




评分

参与人数 1人气 +1收起 理由
LeGendsYu+ 1MCBBS有你更精彩~

查看全部评分

帖子永久链接: 

Minecraft中文论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖若有内容转载自其它媒体,不代表本站赞同其观点和对其真实性负责
6、若本帖涉及任何版权问题,请立即告知本站,本站将及时予以删除并致以最深的歉意
7、Minecraft(我的世界)中文论坛管理员和版主有权不事先通知发贴者而删除本文

Neige 当前离线
积分
6422
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-1-17
查看详细资料

来自:未知地域

沙发
发表于 2023-1-26 13:27:56 | 只看该作者
本帖最后由 Neige 于 2023-1-26 13:30 编辑

经观察及测试,本插件存在包括但不限于以下问题:
  • 没有满背包处理
    1. player1.getInventory().addItem(new ItemStack[]{getItem(args[2])});
    复制代码
    超出背包上限的物品会被直接吞掉,而不是掉落到地上

  • “随机数”功能实现错误
    1. FinallyNumber = (double)random.nextInt((int)LastNumber) + LastNumber + FinallyNumber;
    复制代码
    例:
    预期情况:<r:1_5>返回一个1-5的随机数
    实际情况:<r:1_5>返回一个5-10的随机数

  • “无小数随机数”功能实现错误
    代码写得太离谱,我也看不懂发生了什么,反正生成结果是错的

  • 节点不支持嵌套且一行只能出现一个同种节点
    例:
    <r:1_5><r:1_5>预期返回两个1-5的随机数
    实际返回:一个5-10的随机数,加上<r:1_5

  • 未删除的Debug代码
    1. System.out.println(Quality);
    复制代码

    我看了直呼内行

  • 无意义的重复构建
    1. player1.getInventory().addItem(new ItemStack[]{getItem(args[2])});
    复制代码
    将已完成的ItemStack作为参数重复构造一个ItemStack,增加能耗

  • 错误的“判断玩家是否在线”方式
    1. public static boolean isOnline(String PlayerName) {
    2.     Iterator var1 = Bukkit.getOnlinePlayers().iterator();

    3.     Player p;
    4.     do {
    5.         if (!var1.hasNext()) {
    6.             return false;
    7.         }

    8.         p = (Player)var1.next();
    9.     } while(!p.getName().equalsIgnoreCase(PlayerName));

    10.     return true;
    11. }
    复制代码
    增加大量能耗

  • 使用了数字ID
    1. ItemStack Item = new ItemStack(7, 1, (short)0)
    复制代码
    因此如帖子所标记的,不支持1.13+

  • 每次获取物品数据都从整个文件中获取,没有将对应Item的ConfigurationSection缓存起来,将导致能耗增加
    1. int Data = Config.settings.getInt("Settings.Items." + Name + ".Data");
    2. int Id = Config.settings.getInt("Settings.Items." + Name + ".Id");
    复制代码


综上,不建议尝试该插件
学习插件期间写出离谱代码很正常
但发出来霍霍人就是你的问题了

评分

参与人数 3人气 +6金粒 +30收起 理由
名副其实+ 2支持正义爆杀
壹仟元+ 2+ 30感谢提出的意见
苏子峰+ 2高呼666!

查看全部评分

回复

使用道具 举报

壹仟元 当前离线
积分
2100
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-4-21
查看详细资料

来自:未知地域

板凳
 楼主| 发表于 2023-1-26 15:47:13 | 只看该作者
Neige 发表于 2023-1-26 13:27
经观察及测试,本插件存在包括但不限于以下问题:
  • 没有满背包处理超出背包上限的物品会被直接吞掉,而 ...

  • 好的,该插件我只写了大约半小时,并未考虑到功耗问题,只是我练手用的插件,稍后立刻修复,至于功耗问题,我想只要你的机器并不是1g1h的"好机器"应该都没问题,但秉持着你提出意见我采纳的观点,我会尽力优化。谢谢您提出的观点与意见。
    回复

    使用道具 举报

    壹仟元 当前离线
    积分
    2100
    帖子
    主题
    精华
    贡献
    爱心
    钻石
    人气
    下界之星
    最后登录
    1970-1-1
    注册时间
    2018-4-21
    查看详细资料

    来自:未知地域

    地板
     楼主| 发表于 2023-1-26 15:48:49 | 只看该作者
    Neige 发表于 2023-1-26 13:27
    经观察及测试,本插件存在包括但不限于以下问题:
  • 没有满背包处理超出背包上限的物品会被直接吞掉,而 ...

  • 还有,关于你的这个错误的在线人数的方法,并不是我使用的,我也不确定是否是你提出来修改的意见
    我的代码如下
    1. public static boolean isOnline(String PlayerName) {
    2.         for (Player p : Bukkit.getOnlinePlayers()) {
    3.             if (p.getName().equalsIgnoreCase(PlayerName))
    4.                 return true;
    5.         }
    6.         return false;
    7.     }
    复制代码
    回复

    使用道具 举报

    壹仟元 当前离线
    积分
    2100
    帖子
    主题
    精华
    贡献
    爱心
    钻石
    人气
    下界之星
    最后登录
    1970-1-1
    注册时间
    2018-4-21
    查看详细资料

    来自:未知地域

    5#
     楼主| 发表于 2023-1-26 15:49:04 | 只看该作者
    Neige 发表于 2023-1-26 13:27
    经观察及测试,本插件存在包括但不限于以下问题:
  • 没有满背包处理超出背包上限的物品会被直接吞掉,而 ...

  • 还有,关于你的这个错误的在线人数的方法,并不是我使用的,我也不确定是否是你提出来修改的意见
    我的代码如下
    1. public static boolean isOnline(String PlayerName) {
    2.         for (Player p : Bukkit.getOnlinePlayers()) {
    3.             if (p.getName().equalsIgnoreCase(PlayerName))
    4.                 return true;
    5.         }
    6.         return false;
    7.     }
    复制代码
    回复

    使用道具 举报

    Neige 当前离线
    积分
    6422
    帖子
    主题
    精华
    贡献
    爱心
    钻石
    人气
    下界之星
    最后登录
    1970-1-1
    注册时间
    2015-1-17
    查看详细资料

    来自:未知地域

    6#
    发表于 2023-1-26 15:55:36 | 只看该作者
    壹仟元 发表于 2023-1-26 15:48
    还有,关于你的这个错误的在线人数的方法,并不是我使用的,我也不确定是否是你提出来修改的意见
    我的代码如 ...

    我查看的是反编译代码。你贴出的代码与反编译代码原理一致
    回复

    使用道具 举报

    壹仟元 当前离线
    积分
    2100
    帖子
    主题
    精华
    贡献
    爱心
    钻石
    人气
    下界之星
    最后登录
    1970-1-1
    注册时间
    2018-4-21
    查看详细资料

    来自:未知地域

    7#
     楼主| 发表于 2023-1-26 17:17:25 | 只看该作者
    Neige 发表于 2023-1-26 13:27
    经观察及测试,本插件存在包括但不限于以下问题:
  • 没有满背包处理超出背包上限的物品会被直接吞掉,而 ...

  • 经检查
    1.已优化"判断玩家是否在线的方法" 并且减少调用优化这一部分能耗
    2.debug代码已删除
    3."随机数"也就是<r:1_5>
        经修复后 结果是1-5随机数
        但帖子内上传的版本理论上存在的是1-6的随机数 并不会出现5-10”
    4.”满背包处理也已解决“
    理论上来说,Id处填入英文ID也支持高版本物品
    至于每次获取物品数据都从整个文件夹获取这一,目前正在写,预计六点发布V1.0.1版本,如果错误 请提出,谢谢您的意见
    回复

    使用道具 举报

    云水星-老廖 当前离线
    积分
    3114
    帖子
    主题
    精华
    贡献
    爱心
    钻石
    人气
    下界之星
    最后登录
    1970-1-1
    注册时间
    2015-9-21
    查看详细资料

    来自:未知地域

    8#
    发表于 2023-1-30 18:22:30 | 只看该作者
    本帖最后由 云水星-老廖 于 2023-1-30 18:23 编辑
    壹仟元 发表于 2023-1-26 15:49
    还有,关于你的这个错误的在线人数的方法,并不是我使用的,我也不确定是否是你提出来修改的意见
    我的代码如 ...

    判断在线并不需要遍历呀,直接拿BUkkit获取玩家对象, null就不在线
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册(register)

    本版积分规则

    Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

    GMT+8, 2023-5-25 13:11 , Processed in 0.090425 second(s), Total 24, Slave 23 queries, Release: Build.2023.03.15 0137, Gzip On, Redis On.

    "Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

    © 2010-2022 我的世界中文论坛 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载