code=45, title=禁止登录, message=登录失败,建议升级最新版本后重试,或通过问题反馈与我们联系。

news2025/1/22 18:56:57

如果你是采用 java 开发的,你可以参考本文章,java 和 kotlin 都是可以相互转换的。 

在解决之前,先说明环境:

  1. JDK版本:java version "17.0.3.1" 【Oracle JDK】
  2. Kotlin版本:1.8.20

  3. 采取simbot核心包开发:simbot-core 3.0.0-RC.3 【最新版本: 3.0.0-RC.3】

  4. mirai 组件: 3.0.0.0-RC.2 【最新版本 3.0.0.0-RC.2】

 🤩更多信息,我会放在文末【pom.xml文件

讲讲我是怎么解决的?

根据 simpot mirai组件介绍,我们可以添加 mirai 原生配置。

 我们接着在我们的项目中去添加吧!【这里采取协议:MACOS】

添加完了,你现在就可以运行你的代码了 。

💖原理

核心:更改协议

协议?具体有哪些?【更多信息可以查看 github mirai】

在这里我会简单介绍有哪几种,每个协议都去尝试一遍。

  1.  "ANDROID_PHONE"
  2.  "ANDROID_PAD"
  3.  "ANDROID_WATCH"
  4.  "MACOS" 【主要是这个协议,我成功了
  5.  "IPAD" 

 介绍到这里,就差不多了,总结:更换协议,多尝试几遍,你也行

🙌效果展示:

 

机器人登录的账号是 783707308 ,那么用另外一个QQ号(自己的小号或者其他人的,随便你)

向 机器人账号发送消息

根据匹配规则,我可以让机器人发送我自己想要的信息

 


 

😎文末 

😍项目结构:

 

 ❤️pom.xml 文件:【仅供参考】

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.fly.simbot</groupId>
  <artifactId>mirai-demo-1</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <kotlin.version>1.8.20</kotlin.version>
  </properties>

  <dependencies>

    <!-- Simple Robot 核心库 -->
    <dependency>
      <groupId>love.forte.simbot</groupId>
      <artifactId>simbot-core</artifactId>
      <version>3.0.0-RC.3</version>
    </dependency>
    <!-- mirai组件-->
    <dependency>
      <groupId>love.forte.simbot.component</groupId>
      <artifactId>simbot-component-mirai-core</artifactId>
      <version>3.0.0.0-RC.2</version>
    </dependency>
    <!-- 日志 -->
    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.21</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/log4j/log4j-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib-jdk8</artifactId>
      <version>${kotlin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-test</artifactId>
      <version>${kotlin.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-plugin</artifactId>
        <version>${kotlin.version}</version>
        <executions>
          <execution>
            <id>compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>test-compile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>test-compile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <jvmTarget>17</jvmTarget>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

💕 MainApplication.kt 【main 方法】

package com.fly.simbot

import love.forte.simbot.application.Application
import love.forte.simbot.component.mirai.miraiBots
import love.forte.simbot.component.mirai.useMirai
import love.forte.simbot.core.application.SimpleApplicationBuilder
import love.forte.simbot.core.application.createSimpleApplication
import love.forte.simbot.core.event.listeners
import love.forte.simbot.event.FriendMessageEvent
import net.mamoe.mirai.utils.BotConfiguration

/**
 * @author: fly
 * @Date: 2023-04-15 17:23
 * @Description: 入口类
 */

suspend fun main() {
    val app = createSimpleApplication {
        // 配置 mirai
        configApplication()
    }

    app.apply {
        // 配置事件处理器
        configEventProcessor()
        // 注册 rot
        configBots()
    }

    // 加入线程
    app.join()
}

// 基本配置
private fun SimpleApplicationBuilder.configApplication() {
    useMirai()
}

// 配置事件处理
private fun Application.configEventProcessor() {
    eventListenerManager.listeners {
        // 监听好友消息
        listen(FriendMessageEvent) {
            // 匹配函数
            // 当朋友发送你好时,将会进行触发
            match { event -> "你好" in event.messageContent.plainText.trim() }

            // 处理
            process {
                event -> event.friend().send("我是人工智能——风")
            }
        }
    }
}

private fun BotConfiguration.botConfig() {
    // 指定协议: MACOS
    protocol = BotConfiguration.MiraiProtocol.MACOS
}

// 注册 bot
private suspend fun Application.configBots() {
    miraiBots {
        val bot = register(783707308L,"你的密码") {
            // mirai 原生配置
            botConfiguration {
                botConfig()
            }
        }
        bot.start()
    }
}

💖 log4j.xml 【这个文件在 idea中标红部分不用管

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/>
        </layout>
    </appender>

    <!-- specify the logging level for loggers from other libraries -->
    <logger name="com.fly.simbot">
        <level value="ERROR" />
    </logger>

    <!-- for all other loggers log only debug and above log messages -->
    <root>
        <priority value="DEBUG"/>
        <appender-ref ref="STDOUT" />
    </root>

</log4j:configuration>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PLATO-2: Towards Building an Open-Domain Chatbot via Curriculum Learning论文学习

一、概述 Motivation&#xff1a;直接提升PLATO的size训练不work Methods&#xff1a; 通过curriculum learning技术来构建一个高质量的开放领域机器人第一阶段&#xff1a;coarse-gained generation model&#xff1a;再简单的one-to-one框架下学习粗力度的回复生成模型第二…

【Micropython】ESP8266驱动mpu6050读取数据

【Micropython】ESP8266驱动mpu6050读取数据 &#x1f4cc;相关篇《【MicroPython ESP32】ssd1306驱动0.96“I2C屏幕mpu6050图形控制》 ✨本案例基于Thonny平台开发。✨ &#x1f516;esp8266固件版本&#xff1a;MicroPython v1.19.1 on 2022-06-18 &#x1f4cd;本篇需要使…

2023 年打破认知,这个开源 API 管理工具你应该知道

关于 API 管理工具&#xff0c;如今的市场已经把用户教育的差不多了&#xff0c;毫不夸张地说&#xff0c;如果我随机抽取一位幸运读者&#xff0c;他都能给我罗列出一二三四款大家耳熟能详的工具&#xff0c;但我今天还是要推荐这一款我上手后&#xff0c;亲测觉得不错的开源 …

深入浅出OpenGL三维渲染管线

1 前言 在计算机图形学中&#xff0c;渲染是根据模型描述在显示器上生成图像的过程。3D图形渲染管线输入根据图元顶点(如三角形、点、线和四边形)对3D模型的描述&#xff0c;并为显示器上的像素生成颜色值。 如下图所示的是3D图形渲染管线的流程。 3D图形渲染管线主要包含以…

JVM知识

类加载机制 虚拟机把class文件加载到内存&#xff0c;并对数据进行校验&#xff0c;转换解析和初始化&#xff0c;形成虚拟机可以直接使用的Java类型&#xff0c;即java.lang.class 装载(Load) ClassFile -> 字节流 ->类加载器 查找和导入class文件 1&#xff1a;通…

解决方案|以大数据为抓手,打造粮食安全智慧监管平台

食为政首&#xff0c;粮安天下&#xff0c;粮食问题一直深受总书记记挂&#xff0c;总书记多次提到&#xff1a;“中国十三亿多人口&#xff0c;吃饭主要靠自己&#xff0c;不能靠外面来解决。” 近年来粮食安全事件频发&#xff0c;中央纪委国家监委在全国开展粮食购销领域腐败…

程序员的那些事儿

作者主页&#xff1a;爱笑的男孩。 持续分享&#xff1a;机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。 如发现文章有误&#xff0c;麻烦请指出&#xff0c;我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666foxmail.com 目…

编译后的hue 替换cdh默认版本hue步骤

基于hue源码编译的hue 进行替换cdh6.x.x默认带的hue版本,主要解决hue滚动条 拉的时候,一下就到末尾的bug,通过源码编译githu上的hue解决问题 一. 拷贝编译好的hue到cdh目录替换原来hue目录 三.启动hue报错 问题一:没有pip命令 pip list -bash: pip: command not found …

4.17、TCP三次握手

4.17、TCP三次握手 1.TCP三次握手2.TCP通信具体流程①三次握手②服务器客户端进行通信 1.TCP三次握手 TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务器的内存里保存的一…

热点数据监测方法

在日常开发中&#xff0c;我们需要着重注意一种场景-热点数据。他可能是一种请求&#xff0c;每次请求的数据类型都是一样的&#xff1b;可能是同一个数据&#xff0c;比如页面上公用的类型数据&#xff1b;可能是同一个用户大量的请求。他们都有着同一个特点&#xff0c;瞬时爆…

Redis---哨兵服务

一、配置哨兵服务 1、哨兵服务介绍 监视 master 服务器&#xff0c;发现 master 宕机后&#xff0c;将 slave 服务器提升为 master 服务器 主配置文件&#xff1a;sentinel.conf 模板文件&#xff1a;redis-4.0.8/sentinel.conf 哨兵服务&#xff1a;类似于mha的管理节点&#…

ELK日志

思维导图 一、ELK介绍 ELK是Elasticsearch、Logstash、Kibana首字母大写缩写&#xff0c;后续加入了Beats&#xff08;Beats是负责单一用途数据采集并推送给Logstash或Elasticsearch的轻量级产品&#xff09;&#xff0c;就更名为 Elastic Stack。 Elastic Stack技术栈的功能…

JVM-GC回收机制

目录 1.判定垃圾 1.引用计数 2.可达性分析 2.清理垃圾 1.标记清除 2.复制算法 3.标记整理 4.分代回收 上文讲述的Java运行时内存划分,对于程序计数器,虚拟机栈,本地方法栈来说,生命周期是和线程有关的,随着线程而生,随线程而灭,当方法结束或者线程结束时,它们的内存就自…

细讲const与引用的关系

目录 先了解语言层面的权限 进入正题引用与const权限关系 引用权限的概念 const引用返回值时错误情况 一&#xff1a;返回到临时空间时权限问题 二&#xff1a;临时空间到调用处保存问题 结论&#xff1a;如果不对子函数内部数据修改、那么在父函数变量ret的类型可以设置…

vite+vue3+ts开发流程

目录 vue页面开发 数据类型开发 组件开发 API开发 页面中使用组件、API、数据类型 vue页面开发 <template><!-- 卡片区域--><el-card style"padding:0px;"><!-- 搜索与添加区域--><div style"margin-bottom: 15px;&quo…

SAP ABAP selection screen 动态获取字段名不需要回车触发

SAP ABAP selection screen &#xff0c;get field vaule without click Enter key. 有个需求&#xff0c;界面上几个字段的搜索帮助需要根据已输入值联动&#xff0c;比如AOP version 根据已输入的BU 过滤。 但尴尬的是在事件AT SELECTION-SCREEN ON VALUE-REQUEST FOR 中&a…

.Net中的标识框架Identity

中间件&#xff1a; 1、Authentication对访问者的用户身份进行验证&#xff0c;“用户是否登录成功”。 2、Authorization验证访问者的用户身份是否有对资源访问的访问权限&#xff0c;“用户是否有权限访问这个地址”。 简单描述 1、标识&#xff08;Identity&#xff09;框架…

TCP协议二:TCP状态转换(重要)

TCP状态转换分析https://www.bilibili.com/video/BV1iJ411S7UA?p44&spm_id_frompageDriver&vd_sourced239c7cf48aa4f74eccfa736c3122e65 TCP状态转换图 粗实线&#xff1a;主动端 虚线&#xff1a; 被动端 细实线&#xff1a;内核操作 状态分析 CLOSED&#xff1…

RabbitMQ:消息中间件

文章目录 概念管理界面简介4中常见交换器类型1.Direct交换器:2.Fanout交换器3.Topic交换器4.headers交换器 对象类型消息传递同步等待使用代码创建队列待续...... 概念 在微服务架构中项目之间项目A调用项目B 项目B调用项目C项目C调用项目D。。 用户必须等待项目之间内容依次的…

后端太难了,不 All in 了

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「256」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2200 小伙伴加入&#xff01;去年认真准备和走下来的基…