【vps】如何在vps上安装mirai机器人?

前言

由于某位师傅在群里设置了一个bot,吸引了我,所以我之前找他问了点bot的相关知识,这几天正好服务器搬迁,所以就在新服务器上再装一遍bot

1、安装openJDK

使用mirai需要JDK8以上,使用mcl需要JDK11以上,所以我们直接安装openJDK11就ok了

先看一下jdk

yum search jdk

发现openJDK11,下载即可

这里我下载的是java-11-openjdk.x86_64

yum install java-11-openjdk.x86_64 -y

-y 的意思就是全部默认yes

显示下面的就表示安装成功

我们再看看版本信息

java -version

成功就是下图所示

2、安装mcl

如果你是第一次在vps上部署,那么就先在本地将mcl启动一次,启动完了再去把文件压缩为zip包,上传到vps上。因为在本地登录之后的mcl会有登录信息,我们上传zip之后解压到vps上,vps也就有了我们的登录信息。

至于mcl的启动方法,网上有很多,第一次下载可以自行搜素教程。我这边下载的是1.12.0版本的,因为1.x的版本的语句和2.x版本的不一样,我还是选择习惯了的1.x版本。

把文件解压后运行

bash mcl

出现下面即登录成功(我设置了自动登录)

到此mcl的环境就配置好了,下面我们需要通过python来写bot的脚本

3、配置python语言环境

首先在mclplugins文件夹内,放置 mirai-api-http插件,我这边下载的是1.12.0版本的,历史版本下载地址

将这个插件加载完,我们就可以通过python来编写bot脚本了

然后就是插件配置

启动后会生成 config/net.mamoe.mirai-api-http/setting.yml 文件, 有关选项如下说明:

## 该配置为全局配置,对所有Session有效

# 可选,默认值为0.0.0.0
host: '0.0.0.0' # 可选,默认值为8080
port: 8080 # 可选,默认由插件第一次启动时随机生成,建议手动指定
authKey: 12345678 # 可选,缓存大小,默认4096.缓存过小会导致引用回复与撤回消息失败
cacheSize: 4096 # 可选,是否开启websocket,默认关闭,建议通过Session范围的配置设置
enableWebsocket: true # Graia Framework 作者在文档中建议打开 # 可选,配置CORS跨域,默认为*,即允许所有域名
cors:
- '*' ## 消息上报
report:
# 功能总开关
enable: false
# 群消息上报
groupMessage:
report: false
# 好友消息上报
friendMessage:
report: false
# 临时消息上报
tempMessage:
report: false
# 事件上报
eventMessage:
report: false
# 上报URL
destinations: []
# 上报时的额外Header
extraHeaders: {} ## 心跳
heartbeat:
# 功能总开关
enable: false
# 启动延迟
delay: 1000
# 心跳间隔
period: 15000
# 心跳上报URL
destinations: []
# 上报时的额外信息
extraBody: {}
# 上报时的额外头
extraHeaders: {}

输入一个authKey, 以及 Graia Framework 作者在文档中建议 enableWebsocket = true. 我们就完成配置了

然后再给python3按安装graia-application-mirai

pip3 install graia-application-mirai

它这里给我报错,说我有一个库的版本高于了需求版本

那么我们先删除这个版本,再安装它需要的版本

pip3 uninstall pydantic
pip3 install pydantic==1.7.1

再安装一次就好了

pip3 install graia-application-mirai
pip3 install graia-component-selector
pip3 install graia-scheduler

其中graia-scheduler不是必要的,是其中的一个定时任务模块。

当然运行bot脚本还需要其他的库,例如requests、PIL等,如果还没安装,看python的运行报错来安装就行了

4、hello world测试

from graia.broadcast import Broadcast
from graia.application import GraiaMiraiApplication, Session
from graia.application.message.chain import MessageChain
import asyncio from graia.application.message.elements.internal import Plain
from graia.application.friend import Friend loop = asyncio.get_event_loop() bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
broadcast=bcc,
connect_info=Session(
host="http://localhost:8080", # 填入 httpapi 服务运行的地址
authKey="graia-mirai-api-http-authkey", # 填入 authKey
account=1234567890, # 你的机器人的 qq 号
websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
)
) @bcc.receiver("FriendMessage")
async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend):
await app.sendFriendMessage(friend, MessageChain.create([
Plain("hello world!")
])) app.launch_blocking()

因为我们是在vps上运行mcl的,所以没有本地的多窗口,我们需要安装一个screen

yum install screen

建立一个mclrun的窗口来运行mcl

再建立一个mclpy窗口来运行python脚本

运行成功应该是这样的

那么到此bot安装就完成了,其他的bot接口可以参考github上的官方文档

【vps】如何在vps上安装mirai机器人?的更多相关文章

  1. 如何在Zabbix上安装MySQL监控插件PMP

    PMP,全称是Percona Monitoring Plugins,是Percona公司为MySQL监控写的插件.支持Nagios,Cacti.从PMP 1.1开始,支持Zabbix. 下面,看看如何 ...

  2. 如何在windows7上安装启明星系统。

    启明星系统提供多种安装方式.安装包里自带了setup.exe.每个程序的 install下有在线安装(例如请假应用程序为book,则默认为 http://localhost/book/install ...

  3. (转)如何在Windows上安装多个MySQL

    原文:http://www.blogjava.net/hongjunli/archive/2009/03/01/257216.html 如何在Windows上安装多个MySQL 本文以免安装版的mys ...

  4. Redis简介以及如何在Windows上安装Redis

    Redis简介 Redis是一个速度非常快的非关系型内存数据库. Redis提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erla ...

  5. 如何在centos7上安装源码包

    在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...

  6. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  7. 如何在Centos7上安装zookeeper 多实例

    一.如何在Centos7上安装zookeeper 多实例 cd /usr/local/src/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zoo ...

  8. 如何在 Linux 上安装应用程序

    如何在 Linux 上安装应用程序 编译自:https://opensource.com/article/18/1/how-install-apps-linux作者: Seth Kenlon原创:LC ...

  9. 如何在kalilinux上安装docker

    如何在kalilinux上安装docker 0X00安装背景 在windows上安装docker使用未果后,便决定在kalilinux上安装一个docker 0X01安装步骤 分别在linux终端执行 ...

随机推荐

  1. 对ORM的理解

    1. 在面试中可能会问到这个问题,什么是ORM? ORM是对象关系映射(Object Relational Mapping),简称ORM,或O/RM,或O/R mapping,是一种程序技术. 白话理 ...

  2. CF893B Beautiful Divisors 题解

    Content 给定一个数 \(n\),求出 \(n\) 最大的可以表示成 \((2^k-1)\cdot2^{k-1}\) 形式的因数 \(x\). 数据范围:\(1\leqslant n\leqsl ...

  3. 【LeetCode】1101. The Earliest Moment When Everyone Become Friends 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetcod ...

  4. 一、SQL高级语句

    摘抄别的博主的博客主要总去CSDN看不太方便自己整理一下加深记忆! 导入文件至数据库 #将脚本导入 source 加文件路径 mysql> source /backup/test.sql; se ...

  5. Implicit Neural Representations with Periodic Activation Functions

    目录 概 主要内容 初始化策略 其它的好处 Sitzmann V., Martel J. N. P., Bergman A. W., Lindell D. B., Wetzstein G. Impli ...

  6. Python Revisited Day10 (进程与线程)

    目录 10.1 使用多进程模块 10.2 将工作分布到多个线程 <Python 3 程序开发指南>学习笔记 有俩种方法可以对工作载荷进行分布,一种是使用多进程,另一种是使用多线程. 10. ...

  7. uniapp使用uni.openDocument打开文件时,安卓打开成功,iOS打开失败【原因:打开的文件的文件名是中文】

    解决办法:使用escape进行文件名编码 uni.downloadFile({ url: url, success: function(res) { var filePath = res.tempFi ...

  8. 移动端的样式重置(CSS RESET)

    /********** * reset *********/ * {box-sizing: border-box; -webkit-tap-highlight-color: rgba(0,0,0,0) ...

  9. 从零开始学springboot-2.配置项目

    ### 配置项目 #### 将application.properties改名为application.yml #### 在resources文件夹中(和上面那个配置文件同一路径下)新建一个文件app ...

  10. openmesh - src - trimesh delete and add elements

    openmesh - src - trimesh delete and add elements openmesh 版本 8.1 About 本文主要介绍openmesh的如下接口 add_verte ...