云计算百科
云计算领域专业知识百科平台

我的世界Bukkit插件开发-第五章-搭建基于spigot核心的服务器-自定义命令-通过命令获取一把钻石剑

文章目录

  • 我的世界Bukkit插件开发【自定义命令】(spogit核心)
  • 前言
  • 一、自定义命令
    • 1. 创建一个插件项目
    • 2.配置命令
  • 二、自定义命令执行器对象
    • 1. CommandExecutor 接口
      • 1.1 onCommand 方法
      • 1.2 代码如下
    • 2.自定义执行器
  • 三、注册命令
    • 1.在插件中注册命令对象
  • 四、插件打包
  • 五、运行插件
  • 总结

我的世界Bukkit插件开发【自定义命令】(spogit核心)

前言

  • 本章实现完成【自定义命令-获取一把钻石剑】
  • 基于Spigot核心的插件开发
  • 前置开发工具:IDEA
  • JDK环境-JKD-17
  • 构建工具:maven
  • 必备idea插件:Minecraft Development
  • 服务器核心: Spigot-1.20.jar
  • mc客户端
  • 小部分内容来自AI大模型,如需深入,请联系博主或自行了解
  • 持续更新中…

一、自定义命令

通过bukkit插件,注册一个命令

1. 创建一个插件项目

打开idea – new project 选择Minecraft-填写项目信息,我是在原有的项目上新增了一个新的module,实际是一样的 没有Minecraft选项的需要下载idea插件 Minecraft Development,可以看下前面的章节 在这里插入图片描述 创建完成后项目结构如下 在这里插入图片描述 查看主类信息 onEnable 插件开启时执行(注册事件监听器、注册命令、初始化数据等) onDisable 插件关闭时执行(关闭资源、处理结束数据等)

package com.shunxin;

import org.bukkit.plugin.java.JavaPlugin;

public final class GenerateDiamondSword extends JavaPlugin {

@Override
public void onEnable() {
// Plugin startup logic

}

@Override
public void onDisable() {
// Plugin shutdown logic
}
}

查看plugin.yml文件

name: GenerateDiamondSword
version: '1.0'
main: com.shunxin.GenerateDiamondSword
api-version: '1.20'
authors: [ shuxnin ]
description: 获取一把钻石剑

2.配置命令

在plugin.yml文件中定义命令配置。 配置如下,命令的名称为:generateDiamondSword ,玩家需要输入 /generateDiamondSword

name: GenerateDiamondSword
version: '1.0'
main: com.shunxin.GenerateDiamondSword
api-version: '1.20'
authors: [ shuxnin ]
description: 获取一把钻石剑
commands:
generateDiamondSword:
description: 生成一个钻石剑
usage: /generateDiamondSword

二、自定义命令执行器对象

在bukkit插件开发中,自定义一个命令,需要实现 CommandExecutor 接口,并重写接口的 onCommand方法

1. CommandExecutor 接口

ommandExecutor 是一个接口,属于 org.bukkit.command 包,用于处理玩家输入的命令。当插件需要响应特定的命令时,需要创建一个类实现这个接口。 CommandExecutor 接口中包含一个核心方法 onCommand,该方法会在玩家执行命令时被调用

1.1 onCommand 方法

onCommand:这个方法入参包含四个参数,返回值为布尔值类型,代表成功或失败

  • CommandSender sender:命令的发送者,可以是玩家、控制台或其他
  • Command command:被执行的命令对象
  • String label:使用的命令别名
  • String[] args:传递的命令参数,不包含命令主体

1.2 代码如下

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

return false;
}

2.自定义执行器

在主类目录下建立一个包 命名为 commands ,创建类GenerateDiamondSwordCms符合Java规范即可 在这里插入图片描述 GenerateDiamondSwordCms类需要实现CommandExecutor接口并重写onCommand方法 代码如下

package com.shunxin.commands;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;

/**
* @version 1.0
* @ClassName GenerateDiamondSwordCms
* @Author huitailang
* @Description 生成一个钻石剑 -命令
*/

public class GenerateDiamondSwordCms implements CommandExecutor {

@Override
public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) {

// 判断命令和发送对象
if (command.getName().equalsIgnoreCase("generateDiamondSword")
&& commandSender instanceof Player) {
commandSender.sendMessage("正在生产一把钻石剑…");
// 创建钻石剑
_generate((Player) commandSender);

return true;
}
return false;
}

private void _generate(Player player) {
// 定义钻石剑
ItemStack sword = new ItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
// 获取玩家物品栏
PlayerInventory inventory = player.getInventory();
inventory.addItem(sword);
// 提示玩家
player.sendMessage("你获得了一把钻石剑");
}
}

三、注册命令

1.在插件中注册命令对象

在插件主类中的 onEnable方法中注册,增加一个提示

@Override
public void onEnable() {
// 设置插件开启提示
CommandSender sender = Bukkit.getConsoleSender();
sender.sendMessage("generateDiamondSword 命令已部署");
// Plugin startup logic
getCommand("generateDiamondSword").setExecutor(new GenerateDiamondSwordCms());

}

四、插件打包

使用maven进行打包,打包后生成target目录,详细操作及介绍前章节有,不做多复述 在这里插入图片描述

五、运行插件

将打包后的GenerateDiamondSword-1.0.jar 文件放到服务器中的plugins文件夹中,启动服务器 输入命令: generateDiamondSword 在这里插入图片描述

本章完

总结

提示:本章小结:持续更新中…… 【文章实现总结】 实现自定义命令并完成指定效果 如果对您有帮助,别忘了收藏点赞评论留言,有问题评论区回答,后续继续更新插件相关文章

赞(0)
未经允许不得转载:网硕互联帮助中心 » 我的世界Bukkit插件开发-第五章-搭建基于spigot核心的服务器-自定义命令-通过命令获取一把钻石剑
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!