1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как получить значение из void

Тема в разделе "Разработка плагинов для новичков", создана пользователем Aviloo, 6 янв 2022.

Статус темы:
Закрыта.
  1. Автор темы
    Aviloo

    Aviloo Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Aviloo
    Здравствуйте, форумчане. Я пишу плагин , не без вашей помощи , который за определенные действия начисляет или отнимает у игрока очки. Но я ни как не могу вывести эти очки на экран. И так же не работает система наград. был бы рад вашей помощи.
    Код:
    package rStats.pack.mainlab;
    
    import java.util.concurrent.ConcurrentHashMap;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    public class PlayerExp implements Listener {
        private static final ConcurrentHashMap<Player, Integer> playersData = new ConcurrentHashMap<>();
        public static void addValue(Player p, int value) {
            playersData.putIfAbsent(p, playersData.getOrDefault(p, 0) + value);
    
        }
        public static void getValue(Player p) {
            playersData.getOrDefault(p, 0);
        }
        @EventHandler
        public void BlockBreak(BlockBreakEvent e) {
            Player p = e.getPlayer();
            addValue(p, 10);
            p.sendMessage("Вам начислено 10 очков");
            if (value > 50){ // не могу получить значение
                org.*********ventory.ItemStack item = new org.*********ventory.ItemStack(org.bukkit.Material.DIAMOND);
                p.getInventory().addItem(item); // типо система наград
            }
            else {
                return;
            }
        }
        @EventHandler
        public void join(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            p.sendMessage("Твой уровень равен " + value ); // не могу получить значение
        }
        
    
            
    }
        
    
    Надеюсь на вашу помощь . Заранее спасибо.
     
  2. ryfi

    ryfi Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    Код:
     public static int getValue(Player p) {
            return playersData.getOrDefault(p, 0);
        }
    а потом ты можешь получить его как:
    Код:
    int i = getValue(player);
     
  3. mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    void не возвращает никаких значений, в твоем случае тебе нужно сделать метод int и вернуть
    playersData.getOrDefault(p, 0)
     
Статус темы:
Закрыта.

Поделиться этой страницей