我的世界java版插件入门——玩家加入/离开向所有在线玩家发送消息

本教程需要使用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找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值