это какой промпт дать надо
“напиши аукцион для люми java пжпжпжпж”
желание обучаться никогда не заостряет нейросети, это просто ■■■■■ от которой ты наоборот деградируешь
ага нейронка писала я сам писал нейронка не сможет 10 ка строк написать кода вот часть кода package com.example.rankkit;
import cn.nukkit.Player;
import cn.nukkit.Server;
import cn.nukkit.command.Command;
import cn.nukkit.command.CommandSender;
import cn.nukkit.form.element.ElementButton;
import cn.nukkit.form.handler.FormResponseHandler;
import cn.nukkit.form.window.FormWindowSimple;
import cn.nukkit.item.Item;
import cn.nukkit.item.enchantment.Enchantment;
import cn.nukkit.nbt.tag.CompoundTag;
import cn.nukkit.potion.Potion;
import cn.nukkit.utils.TextFormat;
import com.chelimus4078.RankManagerNukkitMOT;
import me.iwareq.fakeinventories.FakeInventory;
import cn.nukkit.inventory.InventoryType;
import cn.nukkit.utils.Config;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class KitManager extends Command {
private final RankManagerNukkitMOT rankManager;
private final RankKitMain plugin;
private final Config kitsConfig;
private static final Item RED_STAINED_GLASS_PANE = Item.get(Item.STAINED_GLASS_PANE, 14, 1);
private final Map<UUID, String> playerKitContext = new HashMap<>();
private static final String[] KITS = {
"start", "titan", "olympus", "zeus", "mystic", "legendary", "inferno",
"cosmic", "earthkeeper", "warlord", "immortal", "celestial", "ares",
"dstaff", "youtube", "tiktok", "helper", "moder", "sr_moder",
"admin", "sr_admin", "curator", "manager", "root"
};
public KitManager(RankKitMain plugin, RankManagerNukkitMOT rankManager) {
super("kit", TextFormat.GREEN + "Выбрать кит", TextFormat.YELLOW + "/kit");
this.plugin = plugin;
this.rankManager = rankManager;
this.kitsConfig = plugin.getKitsConfig();
}
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(TextFormat.RED + "Эта команда только для игроков.");
return true;
}
Player player = (Player) sender;
showKitSelectionForm(player);
return true;
}
private void showKitSelectionForm(Player player) {
FormWindowSimple form = new FormWindowSimple(TextFormat.AQUA + "Наборы", TextFormat.WHITE + "Выберите кит для просмотра или получения:");
for (String kit : KITS) {
form.addButton(new ElementButton(getKitDisplayName(kit)));
}
form.addHandler(FormResponseHandler.withoutPlayer(ignored -> {
if (form.wasClosed()) return;
int clickedButton = form.getResponse().getClickedButtonId();
if (clickedButton >= 0 && clickedButton < KITS.length) {
playerKitContext.put(player.getUniqueId(), KITS[clickedButton]);
showKitActionForm(player, KITS[clickedButton]);
}
}));
player.showFormWindow(form);
}
private void showKitActionForm(Player player, String kitName) {
String playerRank = rankManager.getPlayerRank(player);
if (playerRank == null) {
playerRank = "player";
}
final String finalPlayerRank = playerRank.toLowerCase();
String playerName = player.getName().toLowerCase();
String kitForRank = getKitForRank(finalPlayerRank);
boolean canClaim = kitForRank.equals(kitName);
String savedRank = kitsConfig.getString(playerName + "." + kitName + ".rank", "");
boolean isClaimed = kitsConfig.getBoolean(playerName + "." + kitName + ".claimed", false);
if (!savedRank.equals(finalPlayerRank)) {
kitsConfig.set(playerName + "." + kitName + ".claimed", false);
kitsConfig.set(playerName + "." + kitName + ".rank", finalPlayerRank);
kitsConfig.save();
isClaimed = false;
}
final boolean finalIsClaimed = isClaimed;
FormWindowSimple form = new FormWindowSimple(TextFormat.AQUA + "Кит: " + kitName,
TextFormat.WHITE + "Выберите действие:\n" +
(canClaim ? TextFormat.GREEN + "Кит доступен для получения" : TextFormat.RED + "Кит недоступен для вашего ранга") + "\n" +
(finalIsClaimed ? TextFormat.RED + "Кит уже получен" : TextFormat.GREEN + "Кит еще не получен"));
form.addButton(new ElementButton(TextFormat.GREEN + "Посмотреть содержимое"));
form.addButton(new ElementButton(canClaim && !finalIsClaimed ? TextFormat.YELLOW + "Получить кит" : TextFormat.RED + (finalIsClaimed ? "Уже получен" : "Недоступно")));
form.addButton(new ElementButton(TextFormat.MATERIAL_NETHERITE + "Назад"));
form.addHandler(FormResponseHandler.withoutPlayer(ignored -> {
if (form.wasClosed()) return;
int clickedButton = form.getResponse().getClickedButtonId();
String currentKit = playerKitContext.getOrDefault(player.getUniqueId(), kitName);
if (clickedButton >= 0 && clickedButton <= 2) {
switch (clickedButton) {
case 0:
showKitContents(player, currentKit);
break;
case 1:
if (canClaim && !finalIsClaimed) {
claimKit(player, currentKit);
kitsConfig.set(playerName + "." + currentKit + ".claimed", true);
kitsConfig.set(playerName + "." + currentKit + ".rank", finalPlayerRank);
kitsConfig.save();
player.sendMessage(TextFormat.GREEN + "✔ Кит " + currentKit + " получен!");
} else {
player.sendMessage(TextFormat.RED + "✘ Вы не можете получить этот кит: " +
(finalIsClaimed ? "кит уже получен" : "недостаточно прав"));
}
break;
case 2:
showKitSelectionForm(player);
break;
}
}
playerKitContext.remove(player.getUniqueId());
}));
player.showFormWindow(form);
}
private void showKitContents(Player player, String kitName) {
switch (kitName.toLowerCase()) {
case "start":
populateStartKitContents(player);
break;
case "titan":
populateTitanKitContents(player);
break;
case "olympus":
populateOlympusKitContents(player);
break;
case "zeus":
populateZeusKitContents(player);
break;
case "mystic":
populateMysticKitContents(player);
break;
case "legendary":
populateLegendaryKitContents(player);
break;
case "inferno":
populateInfernoKitContents(player);
break;
case "cosmic":
populateCosmicKitContents(player);
break;
case "earthkeeper":
populateEarthkeeperKitContents(player);
break;
case "warlord":
populateWarlordKitContents(player);
break;
case "immortal":
populateImmortalKitContents(player);
break;
case "celestial":
populateCelestialKitContents(player);
break;
case "ares":
populateAresKitContents(player);
break;
case "dstaff":
populateDstaffKitContents(player);
break;
case "youtube":
populateYoutubeKitContents(player);
break;
case "tiktok":
populateTiktokKitContents(player);
break;
case "helper":
populateHelperKitContents(player);
break;
case "moder":
populateModerKitContents(player);
break;
case "sr_moder":
populateSrModerKitContents(player);
break;
case "admin":
populateAdminKitContents(player);
break;
case "sr_admin":
populateSrAdminKitContents(player);
break;
case "curator":
populateCuratorKitContents(player);
break;
case "manager":
populateManagerKitContents(player);
break;
case "root":
populateRootKitContents(player);
break;
default:
player.sendMessage(TextFormat.RED + "Кит " + kitName + " не найден!");
}
}
private FakeInventory createKitInventory(Player player, String kitName) {
FakeInventory chest = new FakeInventory(InventoryType.DOUBLE_CHEST, TextFormat.AQUA + "Кит: " + kitName);
chest.setDefaultItemHandler((item, event) -> {
event.setCancelled(true);
player.sendMessage(TextFormat.YELLOW + "Нельзя взять предметы из просмотра кита!");
});
Item glassPane = RED_STAINED_GLASS_PANE.clone();
glassPane.addEnchantment(Enchantment.getEnchantment(Enchantment.ID_PROTECTION_ALL));
glassPane.setCustomName(TextFormat.GRAY + "Декорация");
int[] borderSlots = {9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 28, 37, 46};
for (int slot : borderSlots) {
chest.setItem(slot, glassPane);
}
Item arrow = Item.get(Item.ARROW, 0, 1).setCustomName(TextFormat.RED + "Назад");
chest.setItem(53, arrow, (item, event) -> {
event.setCancelled(true);
player.removeWindow(chest);
Server.getInstance().getScheduler().scheduleDelayedTask(plugin, new Runnable() {
@Override
public void run() {
showKitActionForm(player,kitName);
}
}, 20);
});
return chest;
}
private void claimKit(Player player, String kitName) {
switch (kitName.toLowerCase()) {
case "start":
kitStart(player);
break;
case "titan":
kitTitan(player);
break;
case "olympus":
kitOlympus(player);
break;
case "zeus":
kitZeus(player);
break;
case "mystic":
kitMystic(player);
break;
case "legendary":
kitLegendary(player);
break;
case "inferno":
kitInferno(player);
break;
case "cosmic":
kitCosmic(player);
break;
case "earthkeeper":
kitEarthkeeper(player);
break;
case "warlord":
kitWarlord(player);
break;
case "immortal":
kitImmortal(player);
break;
case "celestial":
kitCelestial(player);
break;
case "ares":
kitAres(player);
break;
case "dstaff":
kitDstaff(player);
break;
case "youtube":
kitYoutube(player);
break;
case "tiktok":
kitTiktok(player);
break;
case "helper":
kitHelper(player);
break;
case "moder":
kitModer(player);
break;
case "sr_moder":
kitSrModer(player);
break;
case "admin":
kitAdmin(player);
break;
case "sr_admin":
kitSrAdmin(player);
break;
case "curator":
kitCurator(player);
break;
case "manager":
kitManager(player);
break;
case "root":
kitRoot(player);
break;
default:
player.sendMessage(TextFormat.RED + "Кит " + kitName + " не найден!");
}
}
private int getFreeSlots(Player player) {
int freeSlots = 0;
for (int i = 0; i < player.getInventory().getSize(); i++) {
Item item = player.getInventory().getItem(i);
if (item == null || item.getId() == Item.AIR) {
freeSlots++;
}
}
return freeSlots;
}
private String getKitForRank(String rank) {
switch (rank.toLowerCase()) {
case "player":
return "start";
case "titan":
return "titan";
case "olympus":
return "olympus";
case "zeus":
return "zeus";
case "mystic":
return "mystic";
case "legendary":
return "legendary";
case "inferno":
return "inferno";
case "cosmic":
return "cosmic";
case "earthkeeper":
return "earthkeeper";
case "warlord":
return "warlord";
case "immortal":
return "immortal";
case "celestial":
return "celestial";
case "ares":
return "ares";
case "dstaff":
return "dstaff";
case "youtube":
return "youtube";
case "tiktok":
return "tiktok";
case "helper":
return "helper";
case "moder":
return "moder";
case "sr_moder":
return "sr_moder";
case "admin":
return "admin";
case "sr_admin":
return "sr_admin";
case "curator":
return "curator";
case "manager":
return "manager";
case "root":
return "root";
default:
return "start";
}
}
private String getKitDisplayName(String kitName) {
switch (kitName.toLowerCase()) {
case "start":
return TextFormat.GREEN + "Start";
case "titan":
return TextFormat.LIGHT_PURPLE + "Titan";
case "olympus":
return TextFormat.BLUE + "Olympus";
case "zeus":
return TextFormat.YELLOW + "Zeus";
case "mystic":
return TextFormat.AQUA + "Mystic";
case "legendary":
return TextFormat.GOLD + "Legendary";
case "inferno":
return TextFormat.RED + "Inferno";
case "cosmic":
return TextFormat.DARK_PURPLE + "Cosmic";
case "earthkeeper":
return TextFormat.GREEN + "Earthkeeper";
case "warlord":
return TextFormat.DARK_RED + "Warlord";
case "immortal":
return TextFormat.WHITE + "Immortal";
case "celestial":
return TextFormat.LIGHT_PURPLE + "Celestial";
case "ares":
return TextFormat.DARK_GRAY + "Ares";
case "dstaff":
return TextFormat.DARK_AQUA + "Dstaff";
case "youtube":
return TextFormat.WHITE + "Youtube";
case "tiktok":
return TextFormat.AQUA + "Tiktok";
case "helper":
return TextFormat.GREEN + "Helper";
case "moder":
return TextFormat.DARK_GREEN + "Moder";
case "sr_moder":
return TextFormat.DARK_AQUA + "Sr Moder";
case "admin":
return TextFormat.RED + "Admin";
case "sr_admin":
return TextFormat.DARK_RED + "Sr Admin";
case "curator":
return TextFormat.LIGHT_PURPLE + "Curator";
case "manager":
return TextFormat.GOLD + "Manager";
case "root":
return TextFormat.DARK_PURPLE + "Root";
default:
return kitName;
}
}
private Item createColoredLeatherArmor(int id, String name, String[] lore, int r, int g, int b) {
Item item = Item.get(id, 0, 1);
item.setCustomName(name);
item.setLore(lore);
CompoundTag nbt = item.getNamedTag();
if (nbt == null) {
nbt = new CompoundTag();
}
int color = (r << 16) | (g << 8) | b;
nbt.putInt("customColor", color);
item.setNamedTag(nbt);
return item;
}
private void populateStartKitContents(Player player) {
FakeInventory chest = createKitInventory(player, "Стартовый набор");
// Броня
Item helmet = createColoredLeatherArmor(
Item.LEATHER_HELMET,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный шлем",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
"",
TextFormat.DARK_GRAY + "Базовая защита головы"
},
255, 0, 0
);
Item chestplate = createColoredLeatherArmor(
Item.LEATHER_CHESTPLATE,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный нагрудник",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+3",
"",
TextFormat.DARK_GRAY + "Защита корпуса"
},
255, 0, 0
);
Item leggings = createColoredLeatherArmor(
Item.LEATHER_LEGGINGS,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные штаны",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+2",
"",
TextFormat.DARK_GRAY + "Защита ног"
},
255, 0, 0
);
Item boots = createColoredLeatherArmor(
Item.LEATHER_BOOTS,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные ботинки",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
"",
TextFormat.DARK_GRAY + "Защита ступней"
},
255, 0, 0
);
Item sword = Item.get(Item.STONE_SWORD, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "⚔ Каменный меч")
.setLore(
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "5",
"",
TextFormat.DARK_GRAY + "Основное оружие ближнего боя"
);
Item crossbow = Item.get(Item.CROSSBOW, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Арбалет")
.setLore(
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "6-11",
TextFormat.GREEN + "▪ Дальность: " + TextFormat.WHITE + "50 блоков",
"",
TextFormat.DARK_GRAY + "Требует стрелы для стрельбы"
);
Item pickaxe = Item.get(Item.IRON_PICKAXE, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "\uE157 Железная кирка")
.setLore(
TextFormat.BLUE + "▪ Скорость добычи: " + TextFormat.WHITE + "6",
TextFormat.LIGHT_PURPLE + "▪ Удача: " + TextFormat.WHITE + "I",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
"",
TextFormat.DARK_GRAY + "Добывает: уголь, железо, медь",
TextFormat.DARK_GRAY + "Ломает: камень, руды"
);
Item shovel = Item.get(Item.STONE_SHOVEL, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменная лопата")
.setLore(
TextFormat.BLUE + "▪ Скорость копания: " + TextFormat.WHITE + "5",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "2.5",
"",
TextFormat.DARK_GRAY + "Эффективна против земли, песка, гравия"
);
Item axe = Item.get(Item.STONE_AXE, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменный топор")
.setLore(
TextFormat.BLUE + "▪ Скорость рубки: " + TextFormat.WHITE + "4",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4"
);
Item arrows = Item.get(Item.ARROW, 0, 16).setCustomName(TextFormat.GREEN + "Стрелы (16)");
Item bread = Item.get(Item.BREAD, 0, 16).setCustomName(TextFormat.GREEN + "Хлеб (16)");
Item iron = Item.get(Item.IRON_INGOT, 0, 8).setCustomName(TextFormat.GREEN + "Железо (8)");
Item coal = Item.get(Item.COAL, 0, 8).setCustomName(TextFormat.GREEN + "Уголь (8)");
chest.setItem(18, helmet);
chest.setItem(27, chestplate);
chest.setItem(36, leggings);
chest.setItem(45, boots);
chest.setItem(0, sword);
chest.setItem(1, crossbow);
chest.setItem(2, arrows);
chest.setItem(3, pickaxe);
chest.setItem(4, shovel);
chest.setItem(5, axe);
chest.setItem(20, bread);
chest.setItem(21, iron);
chest.setItem(22, coal);
player.addWindow(chest);
}
private void kitStart(Player player) {
Item[] kitItems = new Item[] {
// Броня
createColoredLeatherArmor(
Item.LEATHER_HELMET,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный шлем",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
"",
TextFormat.DARK_GRAY + "Базовая защита головы"
},
255, 0, 0
),
createColoredLeatherArmor(
Item.LEATHER_CHESTPLATE,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный нагрудник",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+3",
"",
TextFormat.DARK_GRAY + "Защита корпуса"
},
255, 0, 0
),
createColoredLeatherArmor(
Item.LEATHER_LEGGINGS,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные штаны",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+2",
"",
TextFormat.DARK_GRAY + "Защита ног"
},
255, 0, 0
),
createColoredLeatherArmor(
Item.LEATHER_BOOTS,
TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные ботинки",
new String[]{
TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
"",
TextFormat.DARK_GRAY + "Защита ступней"
},
255, 0, 0
),
Item.get(Item.STONE_SWORD, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "⚔ Каменный меч")
.setLore(
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "5",
"",
TextFormat.DARK_GRAY + "Основное оружие ближнего боя"
),
Item.get(Item.CROSSBOW, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Арбалет")
.setLore(
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "6-11",
TextFormat.GREEN + "▪ Дальность: " + TextFormat.WHITE + "50 блоков",
"",
TextFormat.DARK_GRAY + "Требует стрелы для стрельбы"
),
Item.get(Item.IRON_PICKAXE, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "\uE157 Железная кирка")
.setLore(
TextFormat.BLUE + "▪ Скорость добычи: " + TextFormat.WHITE + "6",
TextFormat.LIGHT_PURPLE + "▪ Удача: " + TextFormat.WHITE + "I",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
"",
TextFormat.DARK_GRAY + "Добывает: уголь, железо, медь",
TextFormat.DARK_GRAY + "Ломает: камень, руды"
),
Item.get(Item.STONE_SHOVEL, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменная лопата")
.setLore(
TextFormat.BLUE + "▪ Скорость копания: " + TextFormat.WHITE + "5",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "2.5",
"",
TextFormat.DARK_GRAY + "Эффективна против земли, песка, гравия"
),
Item.get(Item.STONE_AXE, 0, 1)
.setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменный топор")
.setLore(
TextFormat.BLUE + "▪ Скорость рубки: " + TextFormat.WHITE + "4",
TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
"",
TextFormat.DARK_GRAY + "Для рубки дерева и как оружие"
),
Item.get(Item.ARROW, 0, 16).setCustomName(TextFormat.GREEN + "Стрелы (16)"),
Item.get(Item.BREAD, 0, 16).setCustomName(TextFormat.GREEN + "Хлеб (16)"),
Item.get(Item.IRON_INGOT, 0, 8).setCustomName(TextFormat.GREEN + "Железо (8)"),
Item.get(Item.COAL, 0, 8).setCustomName(TextFormat.GREEN + "Уголь (8)")
};
int freeSlots = getFreeSlots(player);
if (freeSlots < kitItems.length) {
int needed = kitItems.length - freeSlots;
player.sendMessage(TextFormat.RED + "Ошибка: Недостаточно места в инвентаре!");
player.sendMessage(TextFormat.YELLOW + "Освободите " + needed + " слотов для получения набора");
return;
}
player.getInventory().addItem(kitItems);
player.sendTitle(
TextFormat.GOLD + "▎ Стартовый набор",
TextFormat.GREEN + "Успешно выдан!",
10, 40, 10
);
player.sendMessage(TextFormat.GOLD + "► Вы получили стартовый набор!");
}
окей напишу какую экономическую систему использовать?
и тг напиши свой
еще вопрос сделать сортировку типо етсь же сервак LootMC могу примерно такующе сделать аукцион
Я правильно понимаю, что с Генезисом и его плагинами ты дел не имел?
Я его незнаю
Странно, обычно с него все начинают. Всеми любимое ядро на 1.1.5, написанное на php.
Я начал с ядра Nukkit CloudBurst както так назывался
Стоит посмотреть его код?
Думаю, что стоит. Прикоснуться к истории, так сказать.
У меня на нëм сервер 7 лет живëт, если на чрезмерные хотелки игроков класть арбалетный болт, то всë отлично!
да иди ты н#### со своим генезисом
внатуре gpt хахахаха
скажу кратко и обьективно, весь код писал ИИ
@batonka333
интресно, ии реально способен на накките чо то сделать
Пруфы будут?