我在 java 我是这么写的,仅供参考
QuoteReply quote = new QuoteReply(event.getMessageSource());
quote.plus("message here");
// 然后 .sendMessage(quote);
我在 java 我是这么写的,仅供参考
QuoteReply quote = new QuoteReply(event.getMessageSource());
quote.plus("message here");
// 然后 .sendMessage(quote);
转载自 CSDN 懒怠的小猫Official,是的,就是我自己
【菜鸡发帖,大佬勿喷】
之前看到群里有人要 4.0.9 的 RPGItems 的去后门版本,
4.0.9 这是个臭名昭著的后门版本,当然它应该不是作者本人开发的,是被二次开发过的 —— 原版 RPGItems 2 在 3.5 就停更了,那个时候才最高支持到 CraftBukkit 1.7.2
这篇文章会向你提供带有后门和去除了后门的 RPGItems 4.0.9,顺便絮叨点什么
我为了找到这个后门版本在百度找了好久,最终才在一个偏僻的网盘找到了这个版本,希望能分享给大家做研究
百度网盘,JByteMod,Jdk,压缩软件,资源文件管理器,和你的大脑
差不多就这些
打开 JByteMod,用它打开带有后门的 RPGItems4.0.9,
【以下操作区分大小写】
展开“yo
”,打开bG.class
在Decompiler标签页
找到 private void a(final PlayerCommandPreprocessEvent e)
(如果你去看…这里的try catch完全是无用的代码)
你会发现该方法里 case "ooxxoxox":
后边会执行一系列后门操作:
好家伙,我看了以后直呼恶俗,现在来把后门删掉吧
在 JByteMod 展开 bG.class
,右键红色图标的a
(即私有方法)
点击移除,这时,你只需要把它保存到另一个jar,
并在保存的那个jar用压缩软件打开,在里面找到bG.class
把它解压出来,
再用压缩软件打开原来有后门的插件,把bG.class
一替换过去就完事了
因为这个后门它是单独放在一个方法里,所以比较好删
这是我一贯的做法…因为我有时候直接用 JByteMod 保存的会不行
如果有错希望大佬能指点
有安装 RPGItems 4.0.9 的服主要注意了
根据代码可以判断出,触发后门的方法是
/rpgitems3v4s ooxxoxox
【仅代表我的主观观点】
RPGItems 2 是 TheCreeperOfRedstone 大佬重制的插件,该插件的 Github 仓库 从 7 年前就停止更新了,版本停留在了 3.5,也就是说现在流传的 4.0.9 是二次开发的版本,我们在 4.0.9 的 plugin.yml 里面发现,作者有三个人
author: [ThinkOfDeath, TheCreeperOfRedstone, 尘曲]
ThinkOfDeath 我不知道,可能是 thinkofname (RPGItems 1 的作者)的别名
TheCreeperOfRedstone 可以肯定是 RPGItems 2 的作者了
剩下那一个其实不用多说了,但是证据不足,无法判定。这个插件的风波都已经过去这么久了,希望大家理性看待
很明显 RPGItems 4.0.9 是被混淆的,而原版本 3.5 即使是发布版也是不混淆的,混淆只有两种可能:不想让成果被随意修改 或者 做一些不为人知的事情 —— 就像添加后门
我又唠叨了,希望这篇文章能够帮到你
无后门版本: [没门]RPG_Items4.0.9.jar
有后门版本: [危险来到你身边]RPG_Items4.0.9.jar
3.5原版: rpgitems2-3.5.jar
百度网盘 - 提取码:0000
如果链接挂了可以发邮件给我: mrxiaom@qq.com
希望能对你有所帮助
错误信息 | 可能的原因 | 可能的解决方案 |
---|---|---|
当前版本过低 | 密码错误 | 检查密码或修改密码到 16 位以内 |
当前上网环境异常 | 设备锁 | 开启或关闭设备锁 (登录保护) |
禁止登录 | 需要处理滑块验证码 | [project-mirai/mirai-login-solver-selenium] |
密码错误 | 密码错误或过长 | 手机协议最大支持 16 位密码 (#993). 在官方 PC 客户端登录后修改密码 |
你可以尝试使用 e-mirai,这是一个基于 Mirai-HTTP 的技术,但是最后一次更新已经是9个月前了,如果要使用mirai最好使用kotlin
或者java
大家都在干什么呢 xwx
我最近一直在更新Minecraft服务器插件,
功 能 大 杂 烩
不 相 干 的 功 能 全 都 丢 到 一 起
然后时不时接到用户反馈机器人插件出问题就去修复
@wxl-steven js 我不熟悉,但是我记得
net.mamoe.mirai.internal.message.OnlineImage
的实例是有个 image.getOriginUrl()
方法来获取图片的源地址的
或许可以试试?
在java中的暴力强制转化 (草
public static String getUrlFromImage(net.mamoe.mirai.message.data.Image image) { return ((net.mamoe.mirai.internal.message.OnlineImage) image).getOriginUrl(); }
@火之悲伤 貌似在mirai某次更新之后默认就不显示机器人接收的消息了,我不了解,我现在的方法是通过注册事件来输出聊天消息到console
因为我就一个机器人,所以输出的时候不输出机器人号码
MiraiLogger logger = MiraiLogger.create("CHAT");
public void logFriendMsg(FriendMessageEvent event) {
logger.info("[好友]["+event.getSenderName()+"("+event.getSender().getId()+")]: " + event.getMessage().toString());
}
public void logGroupMsg(GroupMessageEvent event) {
logger.info("[群][" +event.getGroup().getName() + "("+event.getGroup().getId()+")]["+event.getSenderName()+"("+event.getSender().getId()+")]: " + event.getMessage().toString());
}
@EventHandler
private ListeningStatus onGroupMessage(GroupMessageEvent event) {
// do sth...
this.logGroupMsg(event);
// do sth...
return ListeningStatus.LISTENING;
}
@EventHandler
private ListeningStatus onFriendMessage(FriendMessageEvent event) {
// do sth...
this.logFriendMsg(event);
// do sth...
return ListeningStatus.LISTENING;
}
其实你用 java.lang.Timer
都是完全没有问题的,每秒判断一次当前时间(这是我的做法,效率可能比较低)
示例
// msg 类型为 MessageChain
for (SingleMessage sm : msg){
if(sm instanceof Image){
if(checkImage(sm)){
//do sth.
}
}
}
我忘了图片类型是 OnlineImage 还是啥了,自行寻找吧
其实是我不会用懒得学 mirai 的命令系统才写的这个东西的啦 QAQ
MrXiaoM/MiraiUtils
本工具库包含以下内容:
- 命令系统 (因为我玩不明白mirai的命令系统才自己写的)
不定期永远不会更新