GameCreator
本帖最后由 GameCreator 于 2018-3-22 12:07 编辑

ChatSender - 信息发送器
1. 功能:
送在经验条上方显示的ActionBar信息和在聊天栏显示的可以点击并执行相关操作的Tellraw信息。

2. 原理:
利用NMS发送相关格式的数据包。

3. 版本支持:
使用Bukkit1.8.0编译,理论支持所有bukkit衍生的服务端(诸如spigot、paperclip),并使用nms反射了1.8以上全部版本,所以支持1.8.0-1.12.2的全部版本。
其中MOD类服务器稳定性未测试,在MOD服中出现的一切问题亦不予修复。
如果bukkit发生更新(比如出1.13了),则根据版本nms变动情况决定是否更新。
注:java版本必须为1.8或更高版本

4. 使用方式:

1)ActionBar
ActionBar信息发送较为简单,调用静态方法即可。
  1. NMSMethod.sendEXPMessage(Player player, String message)
复制代码
这里用EXPMessage有木有感到更直观~

2)Tellraw
这里有几个词汇先声明一下:


第一步,创建一个TellrawMessage对象,它默认为第一个单元。

  1. TellrawMessage tm = NMSMethods.getTellrawMessage("我是信息");
复制代码
我喜欢使用空字符串初始化,因为下面可以无限追加单元到Tellraw信息中。
第二步我们为他加一个单元:

  1. tm.next("Hello world");
复制代码
现在这个单元只能显示Hello这个文字,我为他添加说明:
  1. tm.tooltip(ArrayList<String>);
复制代码
这里集合中的文字将分行显示,假定这个集合中有“你好”和“世界”两个字符串
第四步为这个单元添加点击事件:

  1. tm.click(ClickEvent.ClickAction.SUGGEST_COMMAND, "/hello world");
复制代码
事件类型共有五中,较为实用的有“键入命令”“发送命令”和“打开网址”三种,都在上面提到的那个枚举中,可以自己查看。这里演示的是“键入命令”
第五步翻译这个TellrawMessage对象:

  1. tm.build();
复制代码
实际上就是在内部储存这个对象的json信息,当多次发送这个信息时可以提升效率。
最后一步将信息发送给玩家:

  1. tm.send(Player player);
复制代码
玩家就会收到一条信息(Hello world),将鼠标放上去会显示两行悬停信息,点击会输入命令(/hello word)

5. 执行效率:
将类查找操作放在服务器加载初期执行,相对在执行时查找能快一点,更何况现在反射效率并不低。

6. 下载
密码:微云文件密码:123456


BUG反馈以及建议回帖就好,另外,禁止转载

耗子
欢迎使用Spigot的ChatComponentAPI

GameCreator
耗子 发表于 2018-3-22 12:32
欢迎使用Spigot的ChatComponentAPI

看了一下你发布的插件,其中大部分网上都有替代品,其中那个类库据我所知比你早发布,功能更全的,同样是国产的插件就有两款,虽然其中一款的作者并没有发布,但是既然已经有了为什么还要重复开发呢?

开发是个人需要,发布是分享精神,请你尊重其他开发者,亦请自重

Sky_HanFeng
可以的,前排支持一下,看起来是比自带的简便

GameCreator 发表于 2018-3-22 12:58
看了一下你发布的插件,其中大部分网上都有替代品,其中那个类库据我所知比你早发布,功能更全的,同样是 ...

写轮子的都这样,你可以看我的签名档的插件,版主给出的精华申请要求:3个其他精华插件使用。我已无话可嗦

余枫
现在的新人都这么溜吗? 看似我已经不是新人的,假装自己是大佬,混个脸熟

耗子
GameCreator 发表于 2018-3-22 12:58
看了一下你发布的插件,其中大部分网上都有替代品,其中那个类库据我所知比你早发布,功能更全的,同样是 ...

咋光看我跟别人写重的功能不看我特有的功能呢┐(‘~`;)┌

liuyipeng001
GameCreator 发表于 2018-3-22 12:58
看了一下你发布的插件,其中大部分网上都有替代品,其中那个类库据我所知比你早发布,功能更全的,同样是 ...

造轮子还要被制裁吗?Jackson Gson FastJson 不都是Parser吗 难道有了json lib 它们就没有存在的意义了吗

Dante_7
本帖最后由 凋灵兔子 于 2018-3-29 08:56 编辑
liuyipeng001 发表于 2018-3-27 23:03
造轮子还要被制裁吗?Jackson Gson FastJson 不都是Parser吗 难道有了json lib 它们就没有存在的意义了吗 ...

我感觉这句话你应该问一楼的那位,貌似是他先挑的事。编辑一下,
新手开发一个插件,换来所谓dalao的一句:你怎么不去试试(功能更好的)XXX呢?你觉得合适么?
别人的劳动没有得到肯定反而是带有讽刺的建议,有的人啊,自认为开发了几个插件,学了两天编程就可以对别人的劳动成果指手画脚

真恶心,只有乐于助人的才配成为dalao

再编辑一下,你所说的三个json解析库虽然功能相同,但是因为性能缘故他们完全可以应用在不同场景下,那么你满嘴英文满嘴专业词汇,又在炫耀什么呢?




aipaiEnder
妈耶不会用

MaxSmileLife
支持楼主
能开发已实属不易,得到的应该是支持而不是在这里一脸**的嘲讽别人
另外 排版挺好的

shuai_youxin
这个应该怎么用。。我想做成简单的菜单

_幻_
谢谢楼主终于有这个很好的插件!

_zZ白熊Zz_
说到ActionBAr我就想起来我以前搬得那个东西也有这个功能...
不过tellraw的话,相对来说是比原来的那套api简洁了不少
希望能推出一些黑科技什么的,就像站内那个弹幕一样

shuai_youxin
tm.send(Player player);
后面那个小写的player要定义什么嘛。。显红

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