Minecraft(我的世界)中文论坛

标题: [sponge]插件开发实战-模拟一个登录插件

作者: Fa_de    时间: 2018-6-13 09:57
标题: [sponge]插件开发实战-模拟一个登录插件
本帖最后由 Fa_de 于 2018-6-13 11:28 编辑
距离上次发教程贴是很久远的事了。直接进入正题。
今天带来的教程是实战,模拟登录插件。为什么叫模拟呢?因为没有连接数据库!!!
在做用户登录之
前,首先要想一想有几个步骤。就好比冰箱装大象。

第一步是不是打开冰箱啊,接着把大象放进去,然后关闭冰箱。


说这些呢,是想让你具备一点基础的编程思维。把复杂的事物简单化,抽象化。

那么用户登录怎么做呢?


经过简单化,抽象化之后我们再来把它复杂化,具体化甚至多样化。

那我们要通过什么来办法传递参数呢?

有了解过的人应该知道可以通过命令来传递参数,不了解的人呢跟着做



首先我们要创建一个基于maven管理的项目,不会的话自行去b战搜索maven

既然我们知道指令可以传递参数那么思维导图是不是变成这样了。


这里说下我的模式是三层架构+mvc

你问我见这么多包是不是有什么好处,那是当然程序员是最“偷懒”的职业之一,

好处就是高内聚低耦合
听不懂?多百度谢谢!



那我们从哪里开头?还是一样看思维导图


一眼看过去是不是发现数据这个词很频繁的出现,对的我们先从数据入手。不是先写什么


来看看这数据,你看又是输入又是提交又是接受那它是不是一个实体啊。

就好像你一样会吃饭,会跑,会叫是一个实实在在的人,一个具体的实体。

为什么叫User啊?我们传递的数据是不是就是用户的数据啊!!!

User里面有什么呢?是不是用户名和密码啊,这个数据能让别人看见嘛?肯定是不能所以我们要private

你不让看见但是我又要用怎么办?get()和set()啊,对不对。

这里要注意一下因为sponge是依赖JAVA8,JAVA8里面有个Optional
看了sponge的源码大多类都写入了Optional,因为我们的实体类中为了避免null异常要加个静态常量。

好的用户实体写完了,来想想之后我们写什么?


哎,这同学说对了看思维导图

这些数据是不是要进行查询啊。唉,所以我们要来到dao层。面向接口编程。

这个接口里面写什么呢?是不是查询传递进来的数据对,还是不对啊?所以


插座(接口)写好了,我们是不是要去写插头(实现)了啊。


由于我们没有连接数据库所以用户名要自己先设置

然后写判断语句



来看思维导图

我们是不是已经完成了数据的建立和查询啦,现在应该干嘛?

对,舒服了是不是接受数据啦。所以我们要跑去service层。当然还是面向接口


好了去写插头之前想一想,接受之后是不是要判断一下,但是我自己判断不了。我的任务只是

接受数据那怎么办?是不是要请人帮忙?所以我们要调用Dao层。然后Dao层给我答案




还是一样思维导图
我们看看前面写的是不是查询和接受写完了,是不是轮到客户端了。
好的我们开始写插件入口了。
命令生成器
命令执行器中我们要去调用service层接受数据等待结果在返回给用户

命令写完之后记得去插件入口处注册这个命令!!!!!


插件我们已经制作完成了,来测试下吧

登录失败


登陆成功



这里布置下课后作业吧,用户登录是不是还缺少一个注册啊?这个就留给各位同学了。
不会做?思维导图,思维导图,思维导图

多看看我的思维导图你就明白了。我的思维导图工具是XMind。
上图的代码中有错误,这里的错误不是编译错误。而是运行错误。
遇到错误不要急。虽然没有测试环境,但是我们可以
System.out.println();或者logger再或者sendMessage 对不对。

给点提示那就是新手很容易犯的错误,实在解决不了?那就下载源码对比吧。

源码

这里没有看过我上期命令教程的同学呢







作者: SevenC    时间: 2018-6-13 18:05
折叠和分页很让人不舒服.....

建议修改一下优化阅读

在照葫芦画瓢的时候也会有很多阻碍。
作者: Fa_de    时间: 2018-6-13 18:25
SevenC 发表于 2018-6-13 18:05
折叠和分页很让人不舒服.....

建议修改一下优化阅读

谢谢你的建议,由于发表再编辑已无法预览。所以不做大修改了。

下篇教程贴会改变风格。

作者: hunsu    时间: 2018-6-14 09:03
谢谢楼主分享
作者: dakuo    时间: 2019-12-28 22:05
支持楼主,