MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. LingerJAB
    3. 帖子
    • 资料
    • 关注 1
    • 粉丝 0
    • 主题 4
    • 帖子 20
    • 最佳 3
    • 有争议的 0
    • 群组 1

    LingerJAB 发布的帖子

    • RE: QSign 9.0.55-9.0.95(公益 API发布)

      @syj_819 求问是怎么解决的

      发布在 技术交流板块
      LingerJAB
      LingerJAB
    • RE: 【每日沙雕图】沙雕小别墅

      517711677bc2c9ccda3b5dc90621a404.jpg

      发布在 摸鱼区
      LingerJAB
      LingerJAB
    • RE: 如何 进行 get 或 post 方法请求啊

      好眼熟的报错,和我刚发的那个好像∑(O_O;)

      发布在 开发交流
      LingerJAB
      LingerJAB
    • RE: 使用Quartz依赖不能启动Mirai

      @Karlatemp 3651abfd16dcd08c4440179d09747e20.png 为什么build了还是不通过呢

      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • RE: 使用Quartz依赖不能启动Mirai

      @cssxsh 我的机器人主程序 MiraiBot.java:

      import ...
      
      public final class MiraiBot extends JavaPlugin {
          public static final MiraiBot INSTANCE = new MiraiBot();
      
          private MiraiBot() {
              super(new JvmPluginDescriptionBuilder("com.mirai.lin", "0.1.0")
                      .name("MiraiBot")
                      .author("Lin")
                      .build());
          }
      
          @Override
          public void onEnable() {
              // 就像下面这样
              ClassLoader old = Thread.currentThread().getContextClassLoader();
              try {
                  Thread.currentThread().setContextClassLoader(Bootstrap.class.getClassLoader());
                  // Service loading.
      
                  getLogger().info("Plugin loaded!");
                  EventChannel<Event> channel = GlobalEventChannel.INSTANCE
                          .parentScope(MiraiBot.INSTANCE)
                          .context(this.getCoroutineContext());
      
                  // 加载 DcConfig
                  MainHandler.loadTokens();
      
                  // Token刷新器
                  autoRefreshToken();
      
                  // 监听器
                  channel.subscribeAlways(MessageEvent.class, MainHandler::eventCenter);
      
              } finally {
                  Thread.currentThread().setContextClassLoader(old);
              }
          }
      
          // 自动刷新Token
          public void autoRefreshToken() {
                  Scheduler scheduler;
                  try {
                      scheduler = new StdSchedulerFactory().getScheduler();
                  } catch(SchedulerException e) {
                      throw new RuntimeException(e);
                  }
                  JobDetail jobDetail = JobBuilder.newJob(RefreshTokenJob.class).build();
                  Trigger trigger = TriggerBuilder.newTrigger().startNow().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(30)).build();
                  try {
                      scheduler.scheduleJob(jobDetail, trigger);
                      scheduler.start();
                  } catch(SchedulerException e) {
                      throw new RuntimeException(e);
                  }
      
          @Deprecated
          public void refreshTokensTimer(){...}
      }
      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • RE: 使用Quartz依赖不能启动Mirai

      @cssxsh 这两次的报错是一样的...
      此外我在debug时发现并没有执行更换类加载器的代码,不知道是不是真的只是quartz库的问题(可是我明明gradle依赖了呀💦💦)

      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • RE: 使用Quartz依赖不能启动Mirai

      @cssxsh 5d6357b1-a9a1-4e46-b642-fe1049f56660-image.png 未能解决,请问这里的类加载器的插件不是当前使用的Bot吗(我这里是MiraiBot extends JavaPlugin),使用JavaPlugin.class也能没能解决

      现在不清楚是解决方案的那一步出了问题
      这里是报错信息

      2023-12-08 00:23:42 E/main: Failed to init MiraiConsole.
      net.mamoe.mirai.console.internal.util.ServiceLoadException: Could not load service com.mirai.MiraiBot.
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadService(PluginServiceHelper.kt:60)
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadAllServices(PluginServiceHelper.kt:42)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:170)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:165)
      	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
      	at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:314)
      	at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
      	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
      	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
      	at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:316)
      	at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
      	at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:786)
      	at kotlin.sequences.SequencesKt___SequencesKt.toSet(_Sequences.kt:827)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.extractPlugins(BuiltInJvmPluginLoaderImpl.kt:191)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.listPlugins(BuiltInJvmPluginLoaderImpl.kt:66)
      	at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.listPlugins(JvmPluginLoader.kt)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.listAndSortAllPlugins(PluginManagerImpl.kt:192)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.findAndSortAllPluginsUsingBuiltInLoaders(PluginManagerImpl.kt:138)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.loadAllPluginsUsingBuiltInLoaders$mirai_console(PluginManagerImpl.kt:148)
      	at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:178)
      	at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:464)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:168)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:167)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:52)
      Caused by: java.lang.NoClassDefFoundError: org/quartz/SchedulerException
      	at java.base/java.lang.Class.forName0(Native Method)
      	at java.base/java.lang.Class.forName(Class.java:467)
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadService(PluginServiceHelper.kt:51)
      Caused by: java.lang.NoClassDefFoundError: org/quartz/SchedulerException
      
      	... 23 more
      Caused by: java.lang.ClassNotFoundException: org.quartz.SchedulerException
      	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
      	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
      Caused by: java.lang.ClassNotFoundException: org.quartz.SchedulerException
      
      	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
      	at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN.loadClass(JvmPluginClassLoader.kt:389)
      	... 26 more
      
      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • 使用Quartz依赖不能启动Mirai

      使用了该依赖无法启动
      implementation 'org.quartz-scheduler:quartz:2.3.2'
      报错没找到类,但我IDEA下jar外部包都能找到,而且引用没有问题

      
      2023-12-07 01:19:44 E/main: Failed to init MiraiConsole.
      net.mamoe.mirai.console.internal.util.ServiceLoadException: Could not load service com.mirai.MiraiBot.
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadService(PluginServiceHelper.kt:60)
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadAllServices(PluginServiceHelper.kt:42)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:170)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:165)
      	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
      	at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:314)
      	at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
      	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
      	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
      	at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:316)
      	at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
      	at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:786)
      	at kotlin.sequences.SequencesKt___SequencesKt.toSet(_Sequences.kt:827)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.extractPlugins(BuiltInJvmPluginLoaderImpl.kt:191)
      	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.listPlugins(BuiltInJvmPluginLoaderImpl.kt:66)
      	at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.listPlugins(JvmPluginLoader.kt)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.listAndSortAllPlugins(PluginManagerImpl.kt:192)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.findAndSortAllPluginsUsingBuiltInLoaders(PluginManagerImpl.kt:138)
      	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.loadAllPluginsUsingBuiltInLoaders$mirai_console(PluginManagerImpl.kt:148)
      	at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:178)
      	at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:464)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:168)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:167)
      	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:52)
      Caused by: java.lang.NoClassDefFoundError: org/quartz/SchedulerException
      	at java.base/java.lang.Class.forName0(Native Method)
      	at java.base/java.lang.Class.forName(Class.java:488)
      	at java.base/java.lang.Class.forName(Class.java:467)
      	at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadService(PluginServiceHelper.kt:51)
      	... 23 more
      Caused by: java.lang.NoClassDefFoundError: org/quartz/SchedulerException
      
      Caused by: java.lang.ClassNotFoundException: org.quartz.SchedulerException
      	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
      	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
      	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
      	at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN.loadClass(JvmPluginClassLoader.kt:389)
      	... 27 more
      
      Caused by: java.lang.ClassNotFoundException: org.quartz.SchedulerException
      
      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • 如何用java异步只阻塞当前事件处理器

      (kotlin,java多线程小白💦💦可能很多术语不太会说很抱歉

      需求:异步发送两个http请求,阻塞获取两个值返回进行处理

      我写了一个CompletableFuture future
      问题:我在event监听器处理的时候调用future.join()和future.get()并不能阻塞event处理,导致get没有返回造成NullPointException,

      我想知道join会不会阻塞subcribleAlways(...)和单个event处理线程

      这个在kotlin里面叫做协程吧,类似这样的需求在java里面怎么实现

      发布在 开发交流
      LingerJAB
      LingerJAB
    • RE: image-combiner 一个快捷制图的库

      @2623277496 addImageElement(Image, Width, Height, Zoom)这个方法也可以

      发布在 技术交流板块
      LingerJAB
      LingerJAB
    • RE: image-combiner 一个快捷制图的库

      @2623277496 可以啊,addImage有个setHeight和setWidth的

      发布在 技术交流板块
      LingerJAB
      LingerJAB
    • RE: OpenAI ChatBot 插件,已添加预设功能(为啥你们都想整猫娘)

      他说他是ai net 不是chatgpt?截图

      发布在 插件发布
      LingerJAB
      LingerJAB
    • RE: 【每日沙雕图】沙雕小别墅

      @Hoshino-Tented 为什么不加一个涩图区

      发布在 摸鱼区
      LingerJAB
      LingerJAB
    • RE: 我写了一个 mirai 登录 App

      咕咕咕加油

      发布在 摸鱼区
      LingerJAB
      LingerJAB
    • RE: MA的问题

      @cssxsh 可是还是app好用🤤有没有能在线生成的(佬你写个网页吧

      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • RE: 【每日沙雕图】沙雕小别墅

      @Hoshino-Tented O(1)算法(

      发布在 摸鱼区
      LingerJAB
      LingerJAB
    • MA的问题

      不能导出device.json,点导出没反应(Android7)
      我打算自己提取的,但是login后bot下的devixe.json没有更新,但是login后的log文件都更新了
      奇奇怪怪的bug

      发布在 BUG反馈
      LingerJAB
      LingerJAB
    • RE: image-combiner 一个快捷制图的库

      如果JDK8以上出现create()报错的,是因为没有sun包,需要改一下jvm参数,具体参考这个帖子
      https://blog.csdn.net/u012448758/article/details/125689992

      发布在 技术交流板块
      LingerJAB
      LingerJAB
    • image-combiner 一个快捷制图的库

      https://gitee.com/dromara/image-combiner

      不是我做的,以下从README复制的

      1.1 项目背景
      最近公司上了不少传播方面的需求,免不了合成各种营销图片,图片合成本身并不是什么高深的技术,但用底层api去搞确实繁琐,于是抽时间封装了一个小工具,初衷是解放生产力,后来发现挺好使,那就开源吧,花了一个整天重新整理了一下代码,作为自己从业十年第一个开源项目(打破零记录,哈哈),希望能够帮助到需要的小伙伴~

      1.2 ImageCombiner能够做什么?
      ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于合成水印也可以),素材上支持图片、文本、矩形三种,支持定位、缩放、旋转、圆角、透明度、颜色、字体、字号、删除线、居中绘制、文本自动换行等特性,足够覆盖图片合成的日常需求。

      1.3 先看一下效果
      75d4375c-18c5-4fdd-8626-2cff5e500ab3-image.png

      基本功能展示(更多效果可自行探索)
      f23a25ed-02e9-49a1-ab08-d5f15b1fe82b-image.png avater

      专门开了一个作品搜集&展示的issue,可以秀一秀成果,顺带分享下思路~

      https://gitee.com/dromara/image-combiner/issues/I4FVGB

      发布在 技术交流板块
      LingerJAB
      LingerJAB
    • 1 / 1