Giter Site home page Giter Site logo

mirai-hello-world's Introduction

mirai-hello-world

Mirai Hello World example.

Run src/main/kotlin/KotlinMain.kt or src/kotlin/java/org/example/mirai/JavaMain.java

mirai-hello-world's People

Contributors

him188 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mirai-hello-world's Issues

消息乱码

在使用此过程运行后,使用项目中的Java代码 此org.example.mirai.JavaMain 调用发送消息出现乱码。

Friend friend = bot.getFriend(好友QQ号);
        String s = new String("测试消息".getBytes("GBK"), "GBK");
        String s2 = new String("测试消息".getBytes("UTF8"), "UTF8");
        friend.sendMessage(s);
        friend.sendMessage(s2);

好友接收到为:
image

JavaMain启动中文乱码,KotlinMain启动就不乱码

Task :JavaMain.main()
2021-10-11 16:58:48 I/Mirai: Mirai ����ʹ�����滷��. ��������֤�뽫�ᵯ���Ի���

KotlinMain启动
2021-10-11 17:29:09 I/Mirai: Mirai 正在使用桌面环境. 如遇到验证码将会弹出对话框. 可添加 JVM 属性 mirai.no-desktop 以关闭.

启动时异常

Error(bot=Bot(11218664), code=235, title=温馨提示, message=当前版本过低,请升级到QQ最新版本。, errorInfo= )

官方文档说可能原因为密码错误,经检查密码没问题,启动方式为桌面启动

#6
test.md

关于尝试打包报错

我把这个项目pull下来然后原封不动的用idea自带的打包
出现报错:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
        at java.base/sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:336)
        at java.base/sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:269)
        at java.base/java.util.jar.JarVerifier.processEntry(JarVerifier.java:316)
        at java.base/java.util.jar.JarVerifier.update(JarVerifier.java:230)
        at java.base/java.util.jar.JarFile.initializeVerifier(JarFile.java:749)
        at java.base/java.util.jar.JarFile.ensureInitialization(JarFile.java:1016)
        at java.base/java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:72)
        at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:873)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:811)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:468)
        at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:780)
        at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:675)

manifest.mf

Manifest-Version: 1.0
Main-Class: org.example.mirai.KotlinMainKt

build.gradle.kts

import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile

plugins {
    java

    val kotlinVersion = "1.4.20"
    kotlin("jvm") version kotlinVersion
}

group = "org.example"
version = "0.1.0"

repositories {
    //国内镜像源
    //华为云
    maven { url =uri("https://mirrors.huaweicloud.com/repository/maven") }
    //阿里云
    maven { url =uri("https://maven.aliyun.com/nexus/content/repositories/jcenter")}
    //mirai-console的仓库
    maven {url = uri("https://dl.bintray.com/him188moe/mirai")}
    mavenLocal()
    mavenCentral()
    jcenter()
    maven("https://dl.bintray.com/kotlin/kotlin-eap")
}

tasks.withType(KotlinJvmCompile::class.java) {
    kotlinOptions.jvmTarget = "1.8"
}

dependencies {
    val miraiVersion = "2.3.2"

    // 开发时使用 mirai-core-api,运行时提供 mirai-core
    api("net.mamoe:mirai-core-api:$miraiVersion")
    runtimeOnly("net.mamoe:mirai-core:$miraiVersion")

    // 可以简单地只添加 api("net.mamoe:mirai-core:2.0-M1")
}

生成JDK: 应该是openjdk15
全局本地JDK: openjdk15
目标JDK版本: 应该是 1.8

查了Stackoverflow说是签名冲突
来问下有什么解决方案吗..
谢谢啦

请问自定义设备信息怎么做呢?

问题描述

不清楚怎么把本地的设备信息移植到服务器上
文档链接

详细描述

  1. 我能导出device.json
  2. setDeviceInfo()的时候不知道怎么做了
  3. 有尝试去构造DeviceInfo,但是要塞进去好多变量,感觉很麻烦
  4. 而且对上一步的Version version参数有个问题,导出的device.json文件中没有data.version.sdk参数,但是Version的构造函数中有,如下图示例
    Version构造方法

我尝试的代码

Bot bot = BotFactory.INSTANCE.newBot(2190915232L, "19990113+zjl", new BotConfiguration(){{
    setDeviceInfo(bot1 -> {
        return new DeviceInfo(/* 在这里构造吗? */)
    });
}});

QQ登录不上 当前上网环境异常

错误如下:

2021-01-14 22:49:19 W/stderr: Exception in thread "main" net.mamoe.mirai.network.WrongPasswordException: Error(title=禁止登录, message=当前上网环境异常,请更换网络环境或在常用设备上登录或稍后再试。, errorInfo=), tips=若频繁出现, 请尝试开启设备锁
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler.closeEverythingAndRelogin(QQAndroidBotNetworkHandler.kt:221)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler$closeEverythingAndRelogin$1.invokeSuspend(QQAndroidBotNetworkHandler.kt)
2021-01-14 22:49:19 W/stderr: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
2021-01-14 22:49:19 W/stderr: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:178)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:166)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:362)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:396)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:388)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:293)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.ResumeAwaitOnCompletion.invoke(JobSupport.kt:1411)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:318)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.JobSupport.tryFinalizeSimpleState(JobSupport.kt:295)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:853)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.JobSupport.makeCompleting$kotlinx_coroutines_core(JobSupport.kt:803)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.CompletableDeferredImpl.complete(CompletableDeferred.kt:92)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler$PacketListener.complete(QQAndroidBotNetworkHandler.kt)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler.handlePacket(QQAndroidBotNetworkHandler.kt:558)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler$generifiedParsePacket$2.invokeSuspend(QQAndroidBotNetworkHandler.kt:529)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler$generifiedParsePacket$2.invoke(QQAndroidBotNetworkHandler.kt)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.protocol.packet.KnownPacketFactories.parseOicqResponse(PacketFactory.kt:417)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.protocol.packet.KnownPacketFactories.handleIncomingPacket$mirai_core(PacketFactory.kt:280)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.protocol.packet.KnownPacketFactories.parseIncomingPacket(PacketFactory.kt:232)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler.generifiedParsePacket(QQAndroidBotNetworkHandler.kt:520)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler.parsePacket(QQAndroidBotNetworkHandler.kt:515)
2021-01-14 22:49:19 W/stderr: 	at net.mamoe.mirai.internal.network.QQAndroidBotNetworkHandler$parsePacketAsync$1.invokeSuspend(QQAndroidBotNetworkHandler.kt:498)
2021-01-14 22:49:19 W/stderr: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
2021-01-14 22:49:19 W/stderr: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
> 2021-01-14 22:49:30 I/Bot.2847464879: Bot cancelled: Job was cancelled

启动的时候报上网环境异常,这个是不是device.json需要重新生成
如果是要重新生成
device.json
这些参数都需要怎么获取呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.