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

Помогите Передать в другой класс тип блока

Тема в разделе "Разработка плагинов для новичков", создана пользователем xBrainRTPx, 24 фев 2017.

  1. Автор темы
    xBrainRTPx

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

    Баллы:
    66
    Имя в Minecraft:
    Brat987
    Доброго времени суток, девы :3. Делаю плагин, и хочу сделать так, что бы писало в чат тип этого блока на русском. Для этого я создал второй класс и там вписал вот это:
    Код:
    package ru;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    public class Type {
        private static String is_it;
        public static String BlockIs(Block block) {
            is_it = "Ничего.";
            if (block.getType().equals(Material.GRASS)) {is_it = "Трава";}
            return getNameBlock();
        }
        public static String getNameBlock() { return is_it; }
    }
    
    От просмотра этого кода у вас может начаться эпилепсия, но не стоит паниковать!
    Этот класс должен возвращать название на русском, к примеру "Трава" или "Ничего.".
    Собственно, вот так вызываю:
    Код:
    String type = Type.BlockIs(e.getClickedBlock());
    e.getPlayer().sendMessage("§7(type: "+type;
    
    p.s да, клац-клац, пустая черепная коробка.
    p.s.s Понял в чем была проблема и исправил. Но, как-нибудь можно сделать код красивее? (помимо того, что я его могу удалить и прописать 'rm -rf /*' и убиться об стенку)
     
    Последнее редактирование: 24 фев 2017
  2. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    package ru;
    
    import org.bukkit.block.Block;
    
    public class Type {
    
        public static String BlockIs(Block block) {
            switch (block.getType()) {
                case GRASS:
                    return "Трава";
                case STONE:
                   return "Камень";
                default:
                    return "Ничего";
            }
        }
    }
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вот держи динамически расширяемый из конфига.

    Код:
        String getName(String s) {
            String x = this.plugin.getConfig().getString(s);
            if(x!=null) {
                return x;
            }
            return s;   
        }
    Тестовый юз.

    Код:
        @EventHandler
        public void on(PlayerInteractEvent e) {
            String s = e.getItem().getTypeId()+"-"+e.getItem().getData().getData();
            e.getPlayer().sendMessage(getName(s));
        }
    Собстно сам конфиг.
    Код:
    1-0: Камень
    1-1: Гранит
    1-2: Гладкий гранит
    1-3: Диорит
    1-4: Гладкий диорит
     

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