- Баллы
- 76
Всем привет!
Суть плагина: выдача наборов (комплектов) предметов с помощью команды
Классы:
В giveConstructor находится конструктор и метод заполнения и выдачи комплектов.
BastionKit: чем заполнится конструктор и метод (который используется в Commands) выдачи этого комплекта
Строки с импортами намеренно не писал на сайте (в коде они есть).
Пробовал сделать подобное (Конструктор-метод-main) в обычной Джаве, там работало. Может нужно сделать какую-то особую связь между классами? Но сам я вряд ли разберусь
Суть плагина: выдача наборов (комплектов) предметов с помощью команды
Классы:
Код:
public class Main extends JavaPlugin {
public void onEnable(){
getCommand("bastion").setExecutor(new Commands(this));
}
public void onDisable(){
}
}
Код:
public class giveConstructor {
Player player;
Inventory inventory = player.getInventory();
ItemStack weapon, helmet, bodyChest, leggins, boots, sp1, sp2, ultimative; String kitName;
public giveConstructor(ItemStack we, ItemStack he, ItemStack bodt, ItemStack leg, ItemStack boot, ItemStack s1, ItemStack s2, ItemStack ult, String Name){
weapon =we;
helmet = he;
bodyChest=bodt;
leggins = leg;
boots = boot;
sp1 = s1;
sp2 =s2;
ultimative = ult;
kitName = Name;
}
public void giveKit(){
inventory.setItem(4, weapon);
inventory.setItem(103, helmet);
inventory.setItem(102, bodyChest);
inventory.setItem(101, leggins);
inventory.setItem(100, boots);
inventory.setItem(3, sp1);
inventory.setItem(5, sp2);
inventory.setItem(8, ultimative);
player.sendMessage(ChatColor.GREEN + "Выдан комплект " + kitName);
}
}
Код:
public class Commands implements CommandExecutor {
BastionKit bKit = new BastionKit();
private Main plugin;
public Commands(Main plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args) {
if(cmd.getName().equalsIgnoreCase("bastion")){
bKit.giveBastionKit();
sender.sendMessage("Команда исполнена");
return true;
}
return false;
}
}
Код:
public class BastionKit {
String kitName = "Bastion";
ItemStack bWeapon = new ItemStack(Material.DIAMOND_SWORD);
ItemStack bHelmet = new ItemStack(Material.DIAMOND_HELMET);
ItemStack bBodyChest = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemStack bLeggins = new ItemStack(Material.DIAMOND_LEGGINGS);
ItemStack bBoots = new ItemStack(Material.DIAMOND_BOOTS);
ItemStack bSP1 = new ItemStack(Material.DIAMOND);
ItemStack bSP2 = new ItemStack(Material.GOLD_INGOT);
ItemStack bUltimate = new ItemStack(Material.DIAMOND_SHOVEL);
giveConstructor giver = new giveConstructor(bWeapon, bHelmet, bBodyChest, bLeggins, bBoots, bSP1, bSP2, bUltimate, kitName);
public void giveBastionKit(){
giver.giveKit();
}
}
В giveConstructor находится конструктор и метод заполнения и выдачи комплектов.
BastionKit: чем заполнится конструктор и метод (который используется в Commands) выдачи этого комплекта
Строки с импортами намеренно не писал на сайте (в коде они есть).
Пробовал сделать подобное (Конструктор-метод-main) в обычной Джаве, там работало. Может нужно сделать какую-то особую связь между классами? Но сам я вряд ли разберусь