MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接
    1. Home
    2. Orisland
    3. Topics
    • Profile
    • Following 7
    • Followers 4
    • Topics 35
    • Posts 451
    • Best 46
    • Controversial 0
    • Groups 3

    Topics created by Orisland

    • Orisland

      Solved 请问事件被广播后一般如何接收呢?
      开发交流 • • Orisland

      5
      0
      Votes
      5
      Posts
      343
      Views

      Orisland

      @Suppress("FunctionName") @JvmName("broadcast") @JavaFriendlyAPI public fun <E : Event> E.__broadcastJava(): E = apply { if (this is BroadcastControllable && !this.shouldBroadcast) { return@apply } runBlocking { this@__broadcastJava.broadcast() } }

      我应该如何接收被广播的event,在其他位置进行处理呢?

      GroupMessageEvent event = sender.getFromEvent(); EventKt.broadcast(event);
    • Orisland

      有一说一,有点担心
      摸鱼区 • • Orisland

      6
      1
      Votes
      6
      Posts
      769
      Views

      Orisland

      rt,腾讯近期的动作似乎比之前频繁了很多=。=
      希望我的担心是多余的。
      mirai到底和腾讯的哪方面利益会有冲突呢?
      我一直觉得mirai这种不支持敏感操作的机器人框架应该不会被腾讯针对来着。。。。
      (总不会是涩图bot占比太大导致监管困难吧=。=
      希望历史不要重演啊,不然就真的没法diy喜欢的东西了。

    • Orisland

      Solved command双重调用问题
      开发交流 • java command 萌新 • • Orisland

      12
      0
      Votes
      12
      Posts
      789
      Views

      Orisland

      如题,
      经过测试,安装了LuckPerms插件的mirai,在测试command时会出现命令重复调用问题,在本地无LuckPerms插件的bot则可以正常使用command命令,不会出现重复调用问题。

      本地:
      a49c4406-0607-40a2-9a79-0e621bc575ad-image.png

      安装了插件的服务器:
      9c4225c4-42de-425b-8215-a629ef74e775-image.png

      请教该问题出现的原因以及解决方式?

      另附代码段:

      onEnable :

      CommandManager.INSTANCE.registerCommand(Mycommand.INSTANCE, false);

      myCommand:

      public class Mycommand extends JSimpleCommand { public static final Mycommand INSTANCE = new Mycommand(); private Mycommand(){ super(Plugin.INSTANCE, "test", new String[]{"s"}, Plugin.INSTANCE.getParentPermission()); setDescription("这是一个测试command"); } @Handler public void onCommand(CommandSender sender, String mes){ sender.sendMessage("test"); } }

      EventHandler :

      FriendCommandSenderOnMessage to = new FriendCommandSenderOnMessage(event); CommandManager.INSTANCE.executeCommand(to, event.getMessage(),false); MemberCommandSenderOnMessage to = new MemberCommandSenderOnMessage(event); CommandManager.INSTANCE.executeCommand(to, event.getMessage(),false);

      以下测试基于本地没有LuckPerms插件的环境:
      尽管我知道我似乎不应该在EventHandler中再次监听命令,但是不监听他就是不响应……去掉好友监听好友不响应,去掉群监听群不响应??

    • Orisland

      Solved java是否有办法使用nextmessage呢?
      开发交流 • java 菜鸡 监听 上下文 • • Orisland

      7
      0
      Votes
      7
      Posts
      641
      Views

      Orisland

      如题,
      我希望我可以实现bot在响应命令后对某人持续监听,并设置响应的时限,超时结束监听。
      请问实现上述功能有没有什么具体的实现方式。
      或者mirai有没有相关的上下文操作的便捷方式?

      另:请问在事件监控eventhost中返回停止监听的具体用法是?我目前在所有情况下似乎返回的都是持续保持监听,一旦返回停止监听似乎都会导致对某群或某人的监听中断而且似乎无法恢复?请问该停止监听返回的具体使用场景和用法是?能否举例?该用法是否可以解决上面的问题?

      如果有Java的例子就太好了( •︠ˍ•︡ )

    • Orisland

      腾讯开始动手了?
      BUG反馈 • • Orisland

      22
      0
      Votes
      22
      Posts
      3409
      Views

      Orisland

      29A1F733-51CF-4D43-A100-9636C10371B4.png 1AB5B902-EF58-45FE-98AC-FF87D9F63E5F.jpeg
      注意,这里解封bot需要人脸和身份证。
      这号还是蛮重要的,也是老号了,我不太希望这个号被封啊……

    • Orisland

      请教大家筛选信息的方式
      开发交流 • java command if 信息筛选 • • Orisland

      5
      0
      Votes
      5
      Posts
      532
      Views

      Orisland

      如题,但是区别是java不是kotlin。
      目前暂时没有使用command,用的纯if else(判断聊天出现某字符的index是否为0以此作为功能的启动入口条件)判断,感觉好像效率好像很低,请教大家在进行命令的编写的时候,是否都是依赖command进行还是说有很多像我这种选择if else判断的选手?

    • Orisland

      Solved 阿里云访问腾讯资源服务器困难备选解决方案
      开发交流 • • Orisland

      9
      0
      Votes
      9
      Posts
      582
      Views

      Orisland

      急需转发较长期的服务器(非阿里)带宽无所谓,能用就行的那种,国内外均可,腾讯服务器的聊天资源服务器我的访问不了。
      具体原因在这。
      只需要简单的开个nginx代理就行,平时流量并不大,或者说非常小。
      大佬们有没有什么可以白嫖的途径,最好是那种长期有效的,不需要频繁更换的。
      拜谢。

    • Orisland

      论坛会在未来引入表情包嘛?
      摸鱼区 • • Orisland

      3
      0
      Votes
      3
      Posts
      244
      Views

      Orisland

      比如类似于b站评论区那种的mini表情包,目前发表情的方式似乎仅限于emoji🧐或者颜文字( •︠ˍ•︡ )

    • Orisland

      Solved 阿里ecs问题导致无法正常访问腾讯的聊天资源服务器,疑似ip被屏蔽
      开发交流 • • Orisland

      56
      0
      Votes
      56
      Posts
      5229
      Views

      Orisland

      求解原因,本地测试正常通过,但是服务器上会在读取图片时卡在BufferedImage,然后就没了,也没有抛异常也没有任何反应。a839cf43-e7b8-440a-b763-7bd11a7660fd-image.png

      根本读不上去,本地端测试没有任何问题,服务器所以图片一律失败,后续消息收发也是正常的,找不到原因,求解。

      System.out.println("图片开始处理!"); String url = Image.Key.queryUrl(image); int[] rgb = new int[3]; InputStream inputStream = null; boolean flag = true; int num = 0; do { if (++num > 3){ throw new IOException(); } System.out.println("第"+num+"次尝试!"); try { inputStream = new URL(url).openStream(); flag = false; }catch (Exception e){ e.printStackTrace(); } }while (flag); System.out.println("图片input流获取完成!"); // assert inputStream != null : "错误,inputsteam为空!"; BufferedImage bi = ImageIO.read(inputStream); System.out.println("图片已读取缓冲区。");
    • Orisland

      Solved 上传,发送图片抛出异常?
      开发交流 • 发送图片 图片 上传图片 错误 • • Orisland

      15
      0
      Votes
      15
      Posts
      923
      Views

      Orisland

      不太清楚是什么原因导致的。

      2021-07-03 20:42:58 E/main: Exception in coroutine <unnamed> net.mamoe.mirai.event.ExceptionInEventHandlerException: Exception in EventHandler at net.mamoe.mirai.internal.event.JvmMethodListenersInternalKt$registerEventHandler$14$1.invoke(JvmMethodListenersInternal.kt:147) at net.mamoe.mirai.internal.event.JvmMethodListenersInternalKt$registerEventHandler$14$2.invokeSuspend(JvmMethodListenersInternal.kt:154) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at net.mamoe.mirai.internal.event.JvmMethodListenersInternalKt$registerEventHandler$14$1.invoke(JvmMethodListenersInternal.kt:140) ... 7 more Caused by: java.lang.IllegalStateException: para error at net.mamoe.mirai.internal.contact.AbstractUser.uploadImage$suspendImpl(AbstractUser.kt:193) at net.mamoe.mirai.internal.contact.AbstractUser$uploadImage$1.invokeSuspend(AbstractUser.kt) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32) at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:178) at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:166) at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:362) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:396) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:388) at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:293) at kotlinx.coroutines.ResumeAwaitOnCompletion.invoke(JobSupport.kt:1408) at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:318) at kotlinx.coroutines.JobSupport.tryFinalizeSimpleState(JobSupport.kt:295) at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:853) at kotlinx.coroutines.JobSupport.makeCompleting$kotlinx_coroutines_core(JobSupport.kt:803) at kotlinx.coroutines.CompletableDeferredImpl.complete(CompletableDeferred.kt:92) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler$PacketListener.complete(QQAndroidBotNetworkHandler.kt) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler.handlePacket(QQAndroidBotNetworkHandler.kt:635) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler$generifiedParsePacket$2.invokeSuspend(QQAndroidBotNetworkHandler.kt:603) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler$generifiedParsePacket$2.invoke(QQAndroidBotNetworkHandler.kt) at net.mamoe.mirai.internal.network.protocol.packet.KnownPacketFactories.handleIncomingPacket$mirai_core(PacketFactory.kt:284) at net.mamoe.mirai.internal.network.protocol.packet.KnownPacketFactories.parseIncomingPacket(PacketFactory.kt:246) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler.generifiedParsePacket(QQAndroidBotNetworkHandler.kt:594) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler.parsePacket(QQAndroidBotNetworkHandler.kt:589) at net.mamoe.mirai.internal.network.handler.QQAndroidBotNetworkHandler$parsePacketAsync$1.invokeSuspend(QQAndroidBotNetworkHandler.kt:571) ... 6 more >

      上传图片的部分代码:

      ExternalResource.Companion.uploadAsImage(externalResource, event.getSubject());

      我尝试使用sendAsImage方法时会抛出相同错误,不知道原因如何,求教。

    • Orisland

      Solved java版command相关问题
      开发交流 • • Orisland

      24
      0
      Votes
      24
      Posts
      2872
      Views

      Orisland

      java版的command到底怎么用啊……
      e822d1a7-7984-45e9-82ee-3a6e6c8e1626-image.png
      照着例子搞了半天,发现一直在缺变量,但是例子里压根就没写
      5f27ab66-d58e-4d57-9940-ef24ba25db35-image.png
      然鹅实际上例子里的变量哪来的我都不知道emmm
      00d638c0-5218-4b70-9265-d5fada2d31b6-image.png
      027057d0-94b1-4267-a9df-aa2b44d4fe9a-image.png
      初始化给了两个变量根本不行,这个例子给我整傻了……
      24K萌新求解。
      参考链接

    • Orisland

      Solved 求教bot的Broken pipe问题出现的原因以及解决方案
      开发交流 • • Orisland

      7
      0
      Votes
      7
      Posts
      492
      Views

      Orisland

      如题,每次bot运行不会超过10分钟,就会因为Broken pipe报错而自动退出。

      下图为linux运行报错结果。
      58d38f9b-03bf-4c91-9d7a-01a906183486-image.png
      1e17b976-ba0c-47ac-a651-497b563ea044-image.png

      bot是mcl自动安装器安装的,网上查是由于socket的tcp连接被中断导致的?但是我没找到确实可行的解决办法,求教各位大佬。bot要24小时挂不能掉线的,这么一直掉就没办法了。

      网络环境为阿里1h2g服务器,之前使用Windows版运行其他bot没有任何问题。
      下图为系统截图。
      8ecedc0d-53eb-4eda-94a7-9fbdf7ef12b4-image.png

    • Orisland

      一个愚蠢的问题:到底应该如何调试和启动插件?
      开发交流 • • Orisland

      45
      0
      Votes
      45
      Posts
      5710
      Views

      Orisland

      java选手,完全不会kotlin。
      使用idea的插件进行创建,然后……就没有然后了。模板里只有plugin的初始化定义=。=
      那么问题来了,我该如何调试和测试插件呢?我甚至找不到bot的启动入口,我手动添加了core依赖启动后发现该依赖并不会读取我的plugin,我也不知道如何添加,我甚至也找不到plugin文件夹。
      求教难道真的需要每次调试必须反复打jar放入mirai的plugin文件夹进行测试吗?还是有其他方法我不知道?求帮忙啊。:expressionless:
      (主要想写不依赖其他插件的独立小插件,但是无从下手)

    • 1
    • 2
    • 2 / 2