我在微信公众号里面做了个机器人(仿QQ娱乐机器人)

  🔈【我的小窝】文字游戏依赖于微信订阅号实现。大家可以关注公众号【舞动幽都】进行最新功能的体验。
  🔈本文主要用于记录文字游戏开发进度,由于源码可获取,这里就不贴代码了。

前言

  大家可能在QQ群里面接触过QQ群娱乐机器人。或者腾讯推出的针对QQ频道开放的QQ机器人。我这里将在公众号中实现,不使用魔法。
  遗憾的是由于订阅号不同于服务号,所支持的API有限,导致一些功能不能实现。比如点歌台,图文,活动推送等等。
  本文将持续更新至项目完结,同时也会将实现过程更新在B站上

关于项目

🔈springboot框架开发。
🔈使用MongoDB作为数据库。
🔈依赖于订阅号开发。

关于源码

  🔈目前源码放在私有的gitLab中,需要相关源码的可以下方留言或私信,我拉你进项目组,方便获取最新源码。

关于视频

  🔈视频地址:https://space.bilibili.com/409291881/video

环境搭建

一.项目搭建及简单回复

可前往微信公众平台注册申请订阅号。

🎟️使用指令

指令名说明
小窝主菜单获取
关注用户关注公众号后给的反馈

💡相关实现

1.创建表my_order,用户存储指令,字段如下👇
参数说明
orderName指令名称
movementContent动作内容-(回复内容)

2.相关代码
  可参考👉微信公众号开发-公众号被动回复用户消息。与视频所演示代码基本一致,这里就不单独列了。

📱实现演示


二.wxHelper包引入

引入微信开发工具wxHelper wxHelper使用教程🔗


视频目录

  前两集属于是环境的搭建了,从这里开始,我们就开始正式的去实现文字游戏了

1.用户存储及昵称修改

✨实现说明

1.用户存储实现
2.昵称修改实现
3.个人信息的展示

🎟️使用指令

指令名说明
个人中心查看个人信息
修改昵称#修改客户昵称

💡相关实现

1.user表,用于存储用户。字段如下👇
参数说明
nickName昵称
openIdopenId
juewei爵位
jingyan经验
2.当用户输入指令后判断当前用户是否已经存在,存在则跳过,不存在则保存
3.昵称修改
  判断截取用户输入的指令,然后修改用户的昵称,我这里使用split()获取昵称,代码如下👇
        //修改昵称#不要喷香水
        String[] nickNames = receiveMsg.getContent().split("#");
        if (nickNames.length==2){
            String  nickName = nickNames[1];
            User user = userRepository.findByOpenId(receiveMsg.getFromUserName());
            user.setNickName(nickName);
            mongoTemplate.save(user);
        }else {
            replyContent="修改昵称失败";
        }
3.个人信息展示
  查询个人信息时,使用replace()将指令对应的返回内容进行替换即可。

📱实现演示

2.天气查询

✨实现说明

1.天气数据爬取
2.天气数据回显

🎟️使用指令

指令名说明
天气查询#查询某个城市的天气

💡相关实现

1.创建WeatherItem类,用户暂存查询的天气
参数说明
weatherName天气城市名称
time日期
nowWeather当前温度
todayWeatherTQ今日天气
todayWeatherWD今日温度
shidu湿度
fengxiang风向
ziwaixian紫外线
kongqiTitle空气标题
pmpm
kongqiOth日出日落时间
2.天气情况抓取(由于天气是爬取的数据,这里不贴全部代码了,只贴获取元素值的部分代码了。还是比较简单的。)这里大概说下怎么利用jsoup获取页面元素的值
①引入依赖
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.8.3</version>
        </dependency>
假如我们现在获取到了这样一段html元素👇,想要获取温度和天气
	 <dd class="weather">
		 <p class="now"><b>17</b><i></i></p>
			 <span><b></b>7 ~ 18℃</span>
	  </dd>
我们只需要进行如下的操作既可以获取到元素值👇
		String html="获取到的页面元素字符串"
        //将页面元素字符串转换成dom
        Document doc = Jsoup.parse(html);
        //现在温度 17
        String nowwendu=doc.getElementsByTag("b").get(0).text();
        //今天天气 阴 7 ~ 18℃
        String tianqi=doc.getElementsByTag("span").text();

📱实现演示

3.每日签到

✨实现说明

1.签到获取经验,每天只能签到一次,凌晨重置签到状态

🎟️使用指令

指令名说明
签到用户签到

💡相关实现

   签到可以获得经验,同时每天只能签到一次,这个时候就需要用到定时器,每日凌晨重置用户的签到状态。
1.修改user表,添加字段isSignIn,用于标识用户签到状态。
2.使用定时任务,每天凌晨更新用户的签到状态
3.主要通过注解@Scheduled(cron = "0 0 0 * * ?")去实现签到状态重置功能,还是比较简单的

📱实现演示

4.爵位升级

✨实现说明

1.通过签到获得的经验,对爵位进行升级。
2.个人的经验回显修改,显示成 [当前经验/下个等级所需经验]

💡相关实现

  爵位的升级,实现起来还是比较简单的,无非就是拿到现在的经验和爵位表的经验值进行一个对比,然后获得相应的爵位即可。视频中演示了两种比较的方法,一种是普通的for循环比较。一种是采用二分法的方式进行比较处理。没什么特别之处,这里就不贴代码了

📱实现演示

5.签到及菜单优化

✨实现说明

1.代码优化,指令表添加指令类型
2.指令优化,对指令修改归类。同时将签到指令添加到了指令表中
3.签到优化,追加了签到赠送金币
4.个人中心优化,追加显示了金币和魅力值

💡相关实现

  这一期视频主要是对之前的指令进行优化,修改了指令的返回内容。同时呢改了下签到,在签到的时候追加了金币的获取。主要用于之后的物品购买。

6.金币商城实现

✨实现说明

1.物品添加维护
2.金币商城展示

📱实现演示

7.我的背包

✨实现说明

1.物品购买
2.背包物品展示
3.背包物品详情查看

🎟️使用指令

指令名说明
购买#购买商城物品
我的背包查看背包物品
查看#查看物品详情

📱实现演示

在这里插入图片描述

8.农场-土地购买

✨实现说明

1.农场设计说明
2.土地 购买实现

💡相关实现

土地购买存在上限,随着农场等级的提升,可以购买更多的土地

🎟️使用指令

指令名说明
小窝农场查看农场情况
购买土地购买土地

📱实现演示

在这里插入图片描述

9.农场-作物品维护

✨实现说明

1.维护种植物与对应的采集物关系
2.种植物的成熟时间维护 以及采集物数量维护
3.将采集物维护到物品表中

10.农场-作物种植

✨实现说明

种植作物

🎟️使用指令

种植#说明

📱实现演示

在这里插入图片描述

11.农场-作物成长

✨实现说明

对作物进行成熟处理
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要喷香水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值