本教程需要使用maven和Intellij,因此在开始之前需要先确定你的电脑上安装了这两个软件并已经配好了maven的环境变量。
打开intellij,点击菜单栏file->new->project,在弹出的菜单中选择Maven,并配置java sdk版本(跟随服务器使用的java版本即可),其余不用管,然后点击next,填入相关信息点击finish完成maven项目的创建。'
完成之后,展开project结构,在java目录上右键创建一个新的package,名称如图所示:
完成后在新创建的包上右键,创建第一个class,起名为PlayerActivityListener,写入如下代码:
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.Set;
public class PlayerActivityListener implements Listener {
Set<String> onlinePlayers;
PlayerActivityListener(Set<String> onlinePlayers) {
this.onlinePlayers = onlinePlayers;
}
@EventHandler
public void onPlayerJoinServer(PlayerJoinEvent event) {
Player player = event.getPlayer();
this.onlinePlayers.add(player.getName());
if (player.isOp()) {
event.setJoinMessage(ChatColor.GREEN + "狗管理" + player.getName() + "悄悄地来了!");
} else {
event.setJoinMessage(ChatColor.GREEN + "玩家" + player.getName() + "加入了游戏!");
}
}
@EventHandler
public void onPlayerLeftServer(PlayerQuitEvent event) {
Player player = event.getPlayer();
this.onlinePlayers.remove(this.onlinePlayers.remove(player.getName()));
if (player.isOp()) {
event.setQuitMessage(ChatColor.GREEN + "狗管理" + player.getName() + "灰溜溜的走了!");
} else {
event.setQuitMessage(ChatColor.GREEN + "玩家" + player.getName() + "离开了游戏!");
}
}
}
上述代码会在玩家加入和离开时向所有玩家发送一条信息。如果你没有在maven引入相关的包的话,在这里会有很多地方飘红,这时需要打开pom.xml文件,并向其中添加如下xml代码:
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
完成之后还需要在org.example包中创建另一个class,起名为MCPlugin并写入如下代码。如果你写过Android的话会发现这个地方和Activity很像。。。
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class MCPlugin extends JavaPlugin {
public Set<String> onlinePlayers = new HashSet();
public MCPlugin() {
}
public void onEnable() {
Iterator var1 = this.getServer().getOnlinePlayers().iterator();
while(var1.hasNext()) {
Player player = (Player)var1.next();
this.onlinePlayers.add(player.getDisplayName());
}
this.getServer().getPluginManager().registerEvents(new PlayerActivityListener(this.onlinePlayers), this);
super.onEnable();
}
public void onDisable() {
super.onDisable();
}
}
这时这个插件基本就完成了,但是海需要一些步骤才能生成能够使用的插件。在resources文件夹上右键new->file,文件名填入plugin.yml,向文件中写入如下内容:
name: MCPlugin
main: org.example.MCPlugin
author: HelloWorldMC_QQqun_184185490
version: 1.0
完成后需要在Intellij左下方找到Terminal,打开一个终端,输入mvn install,便可生成jar文件,jar文件在项目的target目录中。将此文件复制到服务器的plugins文件夹中重启服务器即可生效。 效果如下所示:
大功告成!也欢迎大家加入我的服务器一起玩耍(qq群:184185490),我们会一直跟随最新版本,目前1.18.1正在运营中!官网:https://mc.ee-fans.com
完整代码可以在GitHub找到。