Сборки серверов

СливПлатные

Новые сообщения

Сейчас онлайн

  • fastusers
  • loganbodart_
  • z0roday
  • Niktpsik
  • quad
  • 4l3x4ndd3r1
  • HapiXLAPI
  • MythicWay
  • nandoguissa
  • Maxwonder
  • dhdksvsj
  • Silwexx
  • ronnexnet
  • TheMrEvgen
  • blacksoulsminecraft

Помощь Нужен плагин на запрет предметов

  • Автор темыMr Сланец
  • Дата начала
M
Всем привет. В последнее время часто сталкивался с грифом. И мне пришла идея, а почему бы не запретить определенные предметы, пока не отыграешь определенное количество часов. Искал в интернете плагины, но часть из них уже старая, другая часть слишком замудреная. А мне нужен простенький плагин, в котором ты можешь сам в конфиге настроить предметы которые будут недоступны и общий таймер, когда эти предметы будут доступны. Может есть все таки такой простой плагин, либо может кто-то его может сделать?
 
GPT-4o
Привет! Я могу помочь с идеей для плагина, который будет ограничивать доступ к определенным предметам на основе отыгранных часов. Вот пример конфигурации в YAML, которую можно использовать для настройки такого плагина:

YAML:
# config.yml
# Настройки плагина для ограничения доступа к предметам

# Время в часах, после которого игроки смогут использовать запрещенные предметы
unlock_after_hours: 10

# Список предметов, которые будут недоступны до достижения указанного времени
restricted_items:
  - DIAMOND_SWORD
  - DIAMOND_ARMOR
  - ENCHANTED_GOLDEN_APPLE

Также, вот пример простого кода на Java, который может реализовать эту логику:

Java:
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.HashMap;
import java.util.List;

public class ItemRestrictionPlugin extends JavaPlugin implements Listener {
    private List<Material> restrictedItems;
    private int unlockAfterHours;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        restrictedItems = getConfig().getStringList("restricted_items").stream()
                .map(Material::getMaterial)
                .toList();
        unlockAfterHours = getConfig().getInt("unlock_after_hours");
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        // Логика проверки времени отыгрыша и ограничения доступа к предметам
        // Если время отыгрыша меньше unlockAfterHours и предмет в restrictedItems, отменить действие
    }
}

Этот код и конфигурация — лишь начальная точка. Вам нужно будет доработать логику проверки времени отыгрыша и интеграцию с системой хранения данных игроков. Надеюсь, это поможет вам в разработке!
 
W
Всем привет. В последнее время часто сталкивался с грифом. И мне пришла идея, а почему бы не запретить определенные предметы, пока не отыграешь определенное количество часов. Искал в интернете плагины, но часть из них уже старая, другая часть слишком замудреная. А мне нужен простенький плагин, в котором ты можешь сам в конфиге настроить предметы которые будут недоступны и общий таймер, когда эти предметы будут доступны. Может есть все таки такой простой плагин, либо может кто-то его может сделать?
Можно сделать такой плагин на Spigot/Paper с помощью Java.

Простой плагин для ограничения предметов по времени игры
Функционал:
В конфиге ( config.yml ) указываешь список запрещённых предметов (например: DIAMOND_SWORD, ENDER_PEARL).
Устанавливаешь минимальное время в минутах, после которого они разблокируются (например, 120 минут = 2 часа).
Если игрок пытается взять/использовать запрещённый предмет, а его время игры меньше нужного – предмет удаляется или блокируется.

Код плагина ( ItemRestrictor.java ):
package me.yourname.itemrestrictor;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;

public class ItemRestrictor extends JavaPlugin implements Listener {

    private List<Material> restrictedItems = new ArrayList<>();
    private int requiredMinutes;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        loadConfig();
        getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("ItemRestrictor enabled!");
    }

    private void loadConfig() {
        restrictedItems.clear();
        requiredMinutes = getConfig().getInt("required-minutes", 120); // 2 часа по умолчанию

        // Загружаем запрещённые предметы из конфига
        for (String itemName : getConfig().getStringList("restricted-items")) {
            Material material = Material.getMaterial(itemName);
            if (material != null) {
                restrictedItems.add(material);
            } else {
                getLogger().warning("Unknown material: " + itemName);
            }
        }
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        Player player = event.getPlayer();
        long playTimeMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - player.getFirstPlayed());

        if (playTimeMinutes < requiredMinutes) {
            player.sendMessage("§cНекоторые предметы будут доступны после " + requiredMinutes + " минут игры!");
        }
    }

    @EventHandler
    public void onItemPickup(PlayerPickupItemEvent event) {
        if (isItemRestricted(event.getItem().getItemStack().getType(), event.getPlayer())) {
            event.setCancelled(true);
            event.getPlayer().sendMessage("§cЭтот предмет заблокирован для вас!");
        }
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.getItem() != null && isItemRestricted(event.getItem().getType(), event.getPlayer())) {
            event.setCancelled(true);
            event.getPlayer().sendMessage("§cЭтот предмет заблокирован для вас!");
        }
    }

    private boolean isItemRestricted(Material material, Player player) {
        if (!restrictedItems.contains(material)) return false;

        long playTimeMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - player.getFirstPlayed());
        return playTimeMinutes < requiredMinutes;
    }
}


Конфиг ( config.yml ):
# Минимальное время игры в минутах для разблокировки предметов
required-minutes: 120

# Список запрещённых предметов (до достижения required-minutes)
restricted-items:
  - DIAMOND_SWORD
  - DIAMOND_AXE
  - BOW
  - ENDER_PEARL
  - GOLDEN_APPLE

Установка:
1. Скомпилируй код в .jar.
2. Положи в папку plugins/ сервера.
3. Перезапусти сервер – появится config.yml.
4. Настрой список предметов и время.
5. Готово!
 
ВерхНиз