Skip to content

Latest commit

 

History

History
119 lines (73 loc) · 4.5 KB

EX-0-1.md

File metadata and controls

119 lines (73 loc) · 4.5 KB

EX-0-1 Hello World?

行动背景

Hello World 中文意思是『你好,世界』。因为 The C Programming Language 中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。

为了继承这一传统,我们需要让 Bukkit 听我们的,输出一行「Hello, world!」。

行动规划

行动名称:Hello World

行动代号:EX-0

行动类别:演习

涉及章节:

  • EX-0-1
  • EX-0-2

难度:绵羊

服务器在运行时,有一个名为控制台(Console)的东西,其中显示着来自各种地方的消息。就像 MCBBS 一样,任何插件都有资格在这里发言。

控制台长得像这样:

CONSOLE.png

这里看上去不错,那我们就在这里说句话吧~

开始行动

创建项目

打开 IDEA,单击「New Project」,选择「Java」,单击「Next」两次。

新窗口要求你输入项目的名字,这里我暂且命名为 RarityPlugins,同时你还可以为项目选择一个合适的存储位置。单击「Finish」完成。

添加依赖

上一节准备好的 Jar 文件还在吧?那就好。

按下 Ctrl + Alt + Shift + S 打开「Project Structure」面板,转到左边的「Modules」,按「-」移除所有现有的 Module。

现在,按「+」、「New Module」,弹出一个新的窗口,选择侧边的「Java」,单击「Next」。

将「Module name」填入 HelloWorld,其它选项保持默认,单击「Finish」。

MODULE.png

单击左边的「Libraries」,点按「+」、「Java」并选择上一节准备好的 Jar 文件,单击「OK」两次。

LIB.png

现在单击右下角的「Apply」、「OK」,项目就创建完成了!

DONE.png

?> 到底怎么回事
一个 Java 项目当然不可能是由一个人完成的,你需要编写的代码往往已经有开发者编写过了,这就叫轮子(Wheel)。如果你的项目要使用它,就要把它导入。导入的轮子就叫依赖(Dependency)。
这里添加了什么依赖呢?spigot-1.16.5.jar……那不就是服务器(Server)嘛!
没错,我们直接将服务端用作依赖就可以了,里面包含了大多数情况下我们需要的代码。
如果你读了前面的故事,这个依赖就在其中扮演着「洞」的角色。

第一个类

创建包

展开「HelloWorld」(单击左侧的小三角形),右键 src 文件夹,「New」、「Package」,在弹出的框中输入 rarityeg.helloworld

?> 到底怎么回事
(Package)是存放下面要创建的(Class)的地方。你可以把包想象成一块空间,里面存放着我们插件的代码。
我们要在 Java 的世界中申请一块空间来创建我们的项目。要向 Java 申请空间,只需要创建包并给它命名
当然了,名字非常多,我们申请这一块空间,Java 是不会介意的。这里你输入的内容开辟了一个名为 helloworld 的空间。

创建类

在新的包下(右键 helloworld 文件夹),「New」、「Java Class」,输入 HelloWorld

IDEA 为你自动补全了代码,像这样:

package rarityeg.helloworld;

public class HelloWorld {
}

一无所知地开始编写代码

现在我们不管三七二十一,将以下代码输入(可以在 IDEA 中按 Ctrl + A 全选后按 Ctrl + V 覆盖原有代码):

package rarityeg.helloworld;

import org.bukkit.plugin.java.JavaPlugin;

public class HelloWorld extends JavaPlugin {
    @Override
    public void onEnable() {
        getLogger().info("Hello, world!");
    }
}

好啦,听我的,快点!写进去!

创建插件标识

接下来我们要告知 Bukkit:「有了插件哦!」

右键 src,「New」、「File」,输入 plugin.yml,这个文件的名字不能修改,否则 Bukkit 不读。

其中输入以下内容:

name: HelloWorld
main: rarityeg.helloworld.HelloWorld
version: 1.0
api-version: 1.16

这样我们的第一个插件就编写好了。

你现在肯定希望我讲一讲你刚刚输入了什么,嗯……不是现在,我们要先测试这个插件。