MyFirstPlugin.java
package me.nathan.myfirstplugin;
import me.nathan.myfirstplugin.commands.PluginCommands;
import me.nathan.myfirstplugin.events.PluginEvents;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
public final class MyFirstPlugin extends JavaPlugin {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new PluginEvents(), this);
getCommand("heal").setExecutor(new PluginCommands(this));
getServer().getConsoleSender().sendMessage(ChatColor.AQUA + "[MyFirstPlugin]: Plugin is enabled!");
}
@Override
public void onDisable() {
// Plugin shutdown logic
getServer().getConsoleSender().sendMessage(ChatColor.RED + "[MyFirstPlugin]: Plugin is disabled!");
}
}
PluginCommands.java
package me.nathan.myfirstplugin.commands;
import me.nathan.myfirstplugin.MyFirstPlugin;
import org.bukkit.ChatColor;
import org.bukkit.attribute.Attribute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Objects;
public class PluginCommands implements CommandExecutor {
private final MyFirstPlugin main;
public PluginCommands(MyFirstPlugin main){
this.main = main;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (sender instanceof Player){
Player player = (Player) sender;
if (player.isOp() || player.hasPermission("canHeal")){
double maxHealth = Objects.requireNonNull(player.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getDefaultValue();
player.setHealth(maxHealth);
player.sendMessage("§e§l(!) §eYou have been healed!");
return true;
} else {
player.sendMessage(ChatColor.RED + "You do not have the required permissions to use this command!");
return true;
}
} else {
main.getLogger().info(ChatColor.RED + "You have to be a player to use that command!");
return true;
}
}
}
plugin.yml
name: FirstPlugin
author: N8TheDev
description: First Plugin
version: 1.0
api-version: 1.17.1
main: me.nathan.myfirstplugin.MyFirstPlugin
commands:
heal:
description: Heals you
usage: /<command>