Git Product home page Git Product logo

whitelist4qq's Introduction

你好 👋

关于我

关于我的ID

如果你想用中文,请叫我“流光”,我不是很建议你用英文,但你一定要用的话,可以叫我“dream”(不是YouTube上的Dream哟)

我的英文ID:“DreamVoid”。它由“Dream”和“Void”两个单词组成,前一个单词大家都很熟悉,后一个单词是我把虚空(Void)的单词加进来,这样拼凑成的我的 ID。我是这样解释它的:梦想坠入虚空而消失

我的中文ID:“流光”。最初使用“流光”是因为过去有一款黑客软件也叫“流光”。

你知道吗?

  • 虽然我已经用 Github 有两年多了,但是我真正开始开发点什么是在 MiraiMC 后。
  • 虽然我的第一个真正意义上的项目 MiraiMC 是一个很完善的插件并且有很多好评,但其实在创建这个仓库的前一天我根本没有接触过 Java 开发,甚至没有完善的 Java 基础
  • 我有一点强迫症,比如我喜欢(没有意义的)整理代码,但我真的写起代码来完全不拘一格。比如我会把 Java 的方法写成这样:public void AnExampleMethod(String a,boolean b){}(规范的写法逗号b 中间要有空格,并且右括号左花括号也要有空格,开头 AnA 最好是小写以遵循小驼峰命名法)。
  • 我有钱买域名,但我非常喜欢使用免费域名,并且尤其喜欢 .ml 顶域。
  • 我不知道陈春是谁,但是肯定有人把我错认为TA了。不过,我知道顾红光李金涛是谁,如果你也想和他交朋友的话,我可以把他介绍给你。
  • 我只是一个学生,但是我已经通过 GitHub 收到了来自世界各地的工作机会邀请邮件🙏

我的Github数据

Anurag's github stats

whitelist4qq's People

Contributors

dreamvoid avatar

Stargazers

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

Watchers

 avatar

whitelist4qq's Issues

Whitelist4QQ的一个bug

玩家已经在群内通过机器人绑定游戏账号,但依然出现没有申请白名单导致进不去。在删除数据库重新生成文件之后,玩家再次绑定可以正常进服游玩。但是,在登录服关闭再打开之后,之前通过验证的玩家可以正常进入服务器,而新绑定的玩家在绑定之后会显示没有白名单进不去游戏,希望这个bug能修复一下。

服务器无法获取密钥,版本为1.12.2的CatServer

[00:04:41] [DefaultDispatcher-worker-1/INFO]: [MiraiMC] ECDH key is invalid, start to fetch ecdh public key from server.
[00:04:41] [DefaultDispatcher-worker-1/ERROR]: [MiraiMC] Failed to fetch ECDH public key from server, using default key instead
java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at io.ktor.utils.io.bits.MemoryJvmKt.sliceSafe(MemoryJvm.kt:211) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.utils.io.bits.Memory.slice-SK3TCg8(MemoryJvm.kt:47) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.utils.io.charsets.CharsetJVMKt.encodeImpl(CharsetJVM.kt:356) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.utils.io.charsets.EncodingKt.encodeToImpl(Encoding.kt:204) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.utils.io.charsets.EncodingKt.encode(Encoding.kt:62) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.utils.io.charsets.EncodingKt.encode$default(Encoding.kt:57) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.CodecsKt.encodeURLParameter(Codecs.kt:123) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.HttpUrlEncodedKt$formUrlEncodeTo$1.invoke(HttpUrlEncoded.kt:68) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.HttpUrlEncodedKt$formUrlEncodeTo$1.invoke(HttpUrlEncoded.kt:67) ~[mirai-core-all-2.10.0-RC2.jar:?]
at kotlin.text.StringsKt__AppendableKt.appendElement(Appendable.kt:85) ~[mirai-core-all-2.10.0-RC2.jar:?]
at kotlin.collections.CollectionsKt___CollectionsKt.joinTo(_Collections.kt:3347) ~[mirai-core-all-2.10.0-RC2.jar:?]
at kotlin.collections.CollectionsKt___CollectionsKt.joinTo$default(_Collections.kt:3341) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.HttpUrlEncodedKt.formUrlEncodeTo(HttpUrlEncoded.kt:67) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.HttpUrlEncodedKt.formUrlEncodeTo(HttpUrlEncoded.kt:108) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.HttpUrlEncodedKt.formUrlEncodeTo(HttpUrlEncoded.kt:90) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.URLUtilsKt.appendUrlFullPath(URLUtils.kt:101) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.URLUtilsKt.getFullPath(URLUtils.kt:79) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.http.Url.toString(URLBuilder.kt:169) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.client.engine.okhttp.OkHttpEngineKt.convertToOkHttpRequest(OkHttpEngine.kt:183) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.client.engine.okhttp.OkHttpEngineKt.access$convertToOkHttpRequest(OkHttpEngine.kt:1) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:71) ~[mirai-core-all-2.10.0-RC2.jar:?]
at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:85) ~[mirai-core-all-2.10.0-RC2.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) [mirai-core-all-2.10.0-RC2.jar:?]
[00:04:41] [nioEventLoopGroup-160-2/ERROR]: [MiraiMC] Exception in decoding packet.
java.lang.IllegalStateException: Cannot find error message, unknown login result type: 180, TLVMap = {353=[B@811fcd0}
at net.mamoe.mirai.internal.network.protocol.packet.login.WtLogin$Login.decode(WtLogin.kt:188) ~[mirai-core-all-2.10.0-RC2.jar:?]
at net.mamoe.mirai.internal.network.components.PacketCodecImpl.processBody(PacketCodec.kt:368) ~[mirai-core-all-2.10.0-RC2.jar:?]
at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$PacketDecodePipeline$send$1.invokeSuspend(NettyNetworkHandler.kt:175) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [mirai-core-all-2.10.0-RC2.jar:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) [mirai-core-all-2.10.0-RC2.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [AbstractEventExecutor.class:4.1.24.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [SingleThreadEventExecutor.class:4.1.24.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [NioEventLoop.class:4.1.24.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [SingleThreadEventExecutor$5.class:4.1.24.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [FastThreadLocalRunnable.class:4.1.24.Final]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]

AsyncPlayerPreLoginEvent

[09:55:20 ERROR]: Could not pass event AsyncPlayerPreLoginEvent to Whitelist4QQ v1.1
java.lang.NullPointerException: Cannot invoke "net.mamoe.mirai.contact.Group.contains(long)" because "this.group" is null
at me.dreamvoid.miraimc.api.bot.MiraiGroup.contains(MiraiGroup.java:59) ~[MiraiMC-Bukkit.jar:?]
at me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$PlayerLogin.onPlayerJoin(BukkitPlugin.java:127) ~[Whitelist4QQ.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor29.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:git-Purpur-1808]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:678) ~[purpur-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.network.ServerLoginPacketListenerImpl$LoginHandler.fireEvents(ServerLoginPacketListenerImpl.java:434) ~[?:?]
at net.minecraft.server.network.ServerLoginPacketListenerImpl$2.run(ServerLoginPacketListenerImpl.java:378) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

bind命令无法在MiraiMC v1.7下执行

【插件版本】
MiraiMC v1.7
Whitelist4QQ v1.1

【重现步骤】
1.在聊天栏执行命令/miraimc bind add
2.什么也没有显示

【MiraiMC/config.yml】

http-api:
  url: http://localhost:8080
  message-fetch:
    interval: 10
    count: 10
httpapi:
  url: http://localhost:8080
  message-fetch:
    interval: 10
    count: 10
general:
  legacy-event-support: false
  check-update: true
  add-properties:
    mirai:
      no-desktop: true
      slider:
        captcha:
          supported: true
  mirai-core-version: 2.11.1
  maven-repo-url: https://maven.aliyun.com/nexus/content/groups/public/
  enable-http-api: false
  
  allow-bStats: true
  
  disable-safe-warning-message: false
  
  mirai-working-dir: default

bot:
  use-minecraft-logger:
    bot-logs: true
    network-logs: true
  
  disable-network-logs: true
  
  disable-bot-logs: true
  
  use-bukkit-logger:
    
    bot-logs: true
    
    network-logs: true
  
  log-events: false
  
  contact-cache:
    
    enable-friend-list-cache: false
    
    enable-group-member-list-cache: false
    
    save-interval-millis: 60000

database:
  
  type: sqlite
  
  mysql:
    
    address: localhost
    
    username: miraimc
    
    password: miraimc
    
    database: miraimc
    
    pool:
      
      connectionTimeout: 30000
      
      idleTimeout: 0
      
      maxLifetime: 0
      
      maximumPoolSize: 15
      
      keepaliveTime: 0
      
      minimumIdle: 5


【Whitelist4QQ/config.yml】

#  _          __  _   _   _   _____   _____   _       _   _____   _____   _   _   _____     _____
# | |        / / | | | | | | |_   _| | ____| | |     | | /  ___/ |_   _| | | | | /  _  \   /  _  \
# | |  __   / /  | |_| | | |   | |   | |__   | |     | | | |___    | |   | |_| | | | | |   | | | |
# | | /  | / /   |  _  | | |   | |   |  __|  | |     | | \___  \   | |   \___  | | | | |   | | | |
# | |/   |/ /    | | | | | |   | |   | |___  | |___  | |  ___| |   | |       | | | |_| |_  | |_| |_
# |___/|___/     |_| |_| |_|   |_|   |_____| |_____| |_| /_____/   |_|       |_| \_______| \_______|
#  Whitelist4QQ 配置文件
#
# 作者:xingxing520, DreamVoid
# Github: https://github.com/DreamVoid/Whitelist4QQ

# 插件配置
general:
  # 允许 bStats 统计
  bStats: true

  # 白名单范围
  # join - 加入服务器 - 玩家加入服务器时检测是否在 MiraiMC 的绑定数据库,如果不在则踢出
  # action - 操作 - 玩家可以加入服务器,但如果不在 MiraiMC 的绑定数据库中则会阻止玩家进行任何操作
  # spec - 旁观者 - 玩家可以加入服务器,但游戏模式将设为旁观者模式。如果 action 同时启用,则不阻止玩家移动。获取白名单后游戏模式将设为 server.prop 设置的默认模式。
  # 注:join 只在玩家加入服务器时检测1次。action 和 spec 在玩家不在数据库中时每 10 秒检测 1 次,如果在数据库就只检测 1 次。
  check-range:
    join: true
    action: false
    spec: false

  # 阻止已经绑定过 QQ 的 ID 重复绑定
  prevent-id-rebind: true

  # 阻止已经绑定过 ID 的 QQ 重复绑定
  prevent-qq-rebind: true

  # 踢出信息。在踢出不在 MiraiMC 数据库的玩家时显示的踢出消息
  # 默认提示消息使用的是 YAML 换行符,如果想使用单行消息可以设为 kick-message: "消息内容"
  kick-message: |-
    &b你还没有白名单,请加&eQQ群 383829380 &b到群内机器人申请。
    &b输入格式(例如):#白名单 JiangQiYan
    &bSorry, you don't have permission to whitelist.
    &bPlease add QQ group 383829380 to apply for permission in the group.
    &bInput format(example):#白名单 JiangQiYan

  # 游戏内消息提示。仅当 check-range 中的 join 设为 false(即允许玩家进入服务器)时才会出现。
  # 默认每3秒提示一次
  notify-message: |-
    &b========================================
    &e你不在本服的白名单内,将无法进行绝大多数操作
    &e要获取本服的白名单,请加入我们的QQ群进行申请
    &eQQ群:383829380
    &e如果你已经获取白名单,请稍等片刻或重新进入服务器
    &b========================================

  # 验证成功提示
  bind-success-message: "&a恭喜%id%成功获取了白名单,现在可以正常游玩服务器了!"

# 机器人配置
bot:
  # 用于接收验证的 QQ,只有存在于以下列表的机器人 QQ 的消息才会被处理
  # 请至少填写一个
  used-bot-accounts:
    - 488345943

  # 用于接收验证的 QQ 群,只有存在于以下列表的 QQ 群的消息才会被处理
  # 请至少填写一个
  used-group-numbers:
    - 383829380

  # 检测玩家绑定的 QQ 是否在群内,如果不在视为没有白名单
  check-qq-in-group: true

  # 有 QQ 退群时自动移除相应的绑定
  # 建议设为 false,这样一来就算熊孩子搞完事退群也有 QQ 留着做记录
  remove-bind-when-qq-quit: false

  # 让 Whitelist4QQ 处理 QQ 群内的绑定命令消息
  # 如果启用,请勿安装 Link2QQ 插件,避免玩家通过 Link2QQ 插件更换绑定从而绕过服务器管理员的审查
  # 如果禁用,除非管理员手动为玩家添加绑定,否则玩家将无法自行绑定 QQ,也就无法获得白名单
  use-group-message-command: true

  # 添加绑定消息前缀
  # 玩家需要发送“消息前缀+自己的ID”才会添加绑定
  # 例如:下方设置为“申请白名单”,玩家的ID是“123456”,则玩家需要在群内发送消息“申请白名单123456”
  bind-command-prefix: "#白名单 "

  # 消息
  # 插件向群内发送的所有消息都在这里配置
  messages:
    # 绑定成功
    bind-success: "白名单获取成功."

    # 绑定失败
    # 无论绑定失败的原因是什么,都只会发这一条
    # 可用变量:%id% - QQ绑定的ID
    bind-failed: |-
      绑定失败,此ID可能已经绑定另一个QQ,或你的QQ已经绑定了一个ID,请联系管理员处理!
      此QQ绑定的ID(游戏名称):%id% 

【后台日志】

[05:11:15 INFO]: JiangQiYan issued server command: /miraimc bind add Tervita 2327311419
[05:11:15 WARN]: [MiraiMC] Plugin MiraiMC v1.7 generated an exception while executing task 210044
java.lang.IllegalArgumentException: Invalid UUID string: Tervita
        at java.util.UUID.fromString1(UUID.java:280) ~[?:?]
        at java.util.UUID.fromString(UUID.java:258) ~[?:?]
        at me.dreamvoid.miraimc.bukkit.commands.MiraiMcCommand$1.run(MiraiMcCommand.java:53) ~[MiraiMC-Bukkit.jar:?]
        at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.18.2.jar:git-Paper-386]
        at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.18.2.jar:git-Paper-386]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.18.2.jar:git-Paper-386]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
>

申请白名单时报错

[01:35:12 ERROR]: Could not pass event MiraiGroupMessageEvent to Whitelist4QQ v1.1
org.bukkit.event.EventException: null
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1620]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:74) ~[patched_1.12.2.jar:git-Paper-1620]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1620]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1620]
at me.dreamvoid.miraimc.bukkit.MiraiEvent.lambda$startListenEvent$8(MiraiEvent.java:106) ~[?:?]
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:574) ~[?:?]
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:574) ~[?:?]
at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:51) ~[?:?]
at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1) ~[?:?]
at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:43) ~[?:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[?:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[?:?]
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) ~[?:?]
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) ~[?:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) ~[?:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749) ~[?:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) ~[?:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) ~[?:?]
Caused by: java.lang.NullPointerException
at java.lang.String.replace(String.java:2143) ~[?:?]
at me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$BotEvent.onGroupMessage(BukkitPlugin.java:262) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor28.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1620]
... 17 more

申请未成功

在按照MCBBS上的步骤一步一步来之后 在群里申请白名单没有任何的反馈信息
并且在后台都能打印出来我发的申请信息 但是机器人就是没有任何回应
插件貌似没有日志文件
望解决

报错

"Whitelist4QQ v1.0" has registered a listener for me.dreamvoid.miraimc.bukkit.event.MiraiGroupMemberLeaveEvent on method "public void me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$BotEvent.onGroupQuit(me.dreamvoid.miraimc.bukkit.event.MiraiGroupMemberLeaveEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [xingxing520, DreamVoid].

意见建议

支持申请白名单ID正则校验防止中文ID、超短ID、超长ID。
支持群名片比对,让玩家将群名片修改为游戏ID。
支持把机器人QQ反馈信息 调整为服务器反馈信息防止被腾讯当广告机器人封号。

选择使用id保存而非uuid/增加指令

1.服务器未开启正版验证,正版玩家在群内申请白名单后,会出现存储的uuid和实际进入在游戏内的uuid不同,导致验证失败无法进入.
希望能做个开关(布尔)选择是否使用id而非uuid保存玩家信息.
2.增加一个可以手动删除玩家信息的指令(监听q群或者游戏指令),对id相关数据或qq号相关数据进行删除(现在需要删除数据只能连接数据库删除记录,部分用户不会操作)

ps:希望数据库可以独立设置,独立于miraimc的数据库设置

申请白名单时报错

版本paper1.19.2
Mirai1.7
插件版本1.1
[15:21:15 INFO]: [MiraiMC] [GroupMessage/2655751334] [「基岩互通」Cloudsdale丨玩家交流群(1022382128)] 游戏ID:TTANG726(27189795) -> 申请白名单 TTANG726\n
[15:21:15 ERROR]: Could not pass event MiraiGroupMessageEvent to Whitelist4QQ v1.1
java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "replacement" is null
at java.lang.String.replace(String.java:2959) ~[?:?]
at me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$BotEvent.onGroupMessage(BukkitPlugin.java:262) ~[Whitelist4QQ.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor130.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:git-Paper-"476ef25"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:670) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
at me.dreamvoid.miraimc.bukkit.MiraiEventLegacy.lambda$startListenEvent$8(MiraiEventLegacy.java:102) ~[MiraiMC-Bukkit.jar:?]
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:626) ~[MiraiMC-Bukkit.jar:?]
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:626) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:51) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:43) ~[MiraiMC-Bukkit.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) ~[MiraiMC-Bukkit.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) ~[MiraiMC-Bukkit.jar:?]

提几个建议

1.增加一个QQ最多绑定个数限制,而不是是否可以绑定多个账号,如最高X个。
2.查询有多少人绑定了,能查询到哪个QQ号绑定了那些游戏ID

给一个登录建议

我看bbs上有人写了,那我随便提交个issues吧
能不能使用qq登录服务器:
流程:
新人:
1.服务器要求绑定(单qq不能绑定多个)
2.绑定完成后,服务器说:“请在QQ群内回复 **确定登录 游戏内名称 验证码**以登录”
3.玩家在QQ群回复后放行
第二次进入服务器:
1.服务器说:“请在QQ群内回复 **确定登录 游戏内名称 验证码**以登录”
2.玩家在QQ群回复后放行

没有响应

按照配置设置了QQ与QQ群,但是没有响应关键字
的白名单请求

使用HTTPAPI后本插件无法使用

Whitelist4QQ的配置文件都调过了,群号和机器人号也没输入错误,服务器后台miraimc能看到qq群发的消息,但是发送“申请白名单+ID”机器人没有任何回应(前缀没改) 机器人并没有被屏蔽

无法正常启动Whitelist4QQ

复现方法

  1. 把Whitelist4QQ.jar拖入plugins
  2. 正常启动服务器
  3. 启动中报错
  4. 报错后自动禁用Whitelist4QQ

服务端类型

Bukkit

服务端版本

git-Purpur-1632 (MC: 1.18.2)

控制台报错

[01:09:21 WARN]: "Whitelist4QQ v1.0" has registered a listener for me.dreamvoid.miraimc.bukkit.event.MiraiGroupMessageEvent on method "public void me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$BotEvent.onGroupMessage(me.dreamvoid.miraimc.bukkit.event.MiraiGroupMessageEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [xingxing520, DreamVoid].
[01:09:21 WARN]: "Whitelist4QQ v1.0" has registered a listener for me.dreamvoid.miraimc.bukkit.event.MiraiGroupMemberLeaveEvent on method "public void me.dreamvoid.whitelist4qq.bukkit.BukkitPlugin$BotEvent.onGroupQuit(me.dreamvoid.miraimc.bukkit.event.MiraiGroupMemberLeaveEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [xingxing520, DreamVoid].

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.