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

Идея Шерсть из полярного медведя

Тема в разделе "Запросы на разработку плагинов", создана пользователем chief, 15 июл 2016.

Статус темы:
Закрыта.
  1. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Оптимизировал код. Добавил мясо(можно отключить в конфиге если не нужно).

    Cкачать - WoolFromBear-v1.3

    Код:
    package me.derik;
    
    
    
    import java.util.List;
    import java.util.Map;
    import java.util.Random;
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.*********ventory.ItemStack;
    import org.*********ventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    
    
    
    public class Main extends JavaPlugin implements Listener{
    
        //private static Logger log = this.getLogger();
      
        private static int woolrandom;
        private static String woolname;
        private static List<String> woollore;
        private static Boolean woolenabled;
      
        private static int rawbeefrandom;
        private static String rawbeefname;
        private static List<String> rawbeeflore;
        private static Boolean rawbeefenabled;
      
        private static int cookedbeefrandom;
        private static String cookedbeefname;
        private static List<String> cookedbeeflore;
        private static Boolean cookedbeefenabled;
      
        private  static Random random = new Random();
        private static FileConfiguration config;
      
      
        @Override
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
                 saveDefaultConfig();
                 config = getConfig();
               //шерсть
                    woolrandom = config.getInt("wool.drop");
                 woolname = config.getString("wool.name");
                 woollore = config.getStringList("wool.lore");
                 woolenabled = config.getBoolean("wool.enabled");
               
                 woolname = woolname.replace("&", "\u00A7");
                 for (String line : woollore) {
                     String item = line.replace("&", "\u00A7");
                     int index = woollore.indexOf(line);
                     woollore.set(index, item);   
                 }
            //сырая говядина   
                    rawbeefrandom = config.getInt("rawbeef.drop");
                 rawbeefname = config.getString("rawbeef.name");
                 rawbeeflore = config.getStringList("rawbeef.lore");
                 rawbeefenabled = config.getBoolean("rawbeef.enabled");
               
                 rawbeefname = rawbeefname.replace("&", "\u00A7");
                 for (String line : rawbeeflore) {
                     String item = line.replace("&", "\u00A7");
                     int index = rawbeeflore.indexOf(line);
                     rawbeeflore.set(index, item);   
                 }
               //жаренная говядина
                    cookedbeefrandom = config.getInt("cookedbeef.drop");
                 cookedbeefname = config.getString("cookedbeef.name");
                 cookedbeeflore = config.getStringList("cookedbeef.lore");
                 cookedbeefenabled = config.getBoolean("cookedbeef.enabled");
               
                 cookedbeefname = cookedbeefname.replace("&", "\u00A7");
                 for (String line : cookedbeeflore) {
                     String item = line.replace("&", "\u00A7");
                     int index = cookedbeeflore.indexOf(line);
                     cookedbeeflore.set(index, item);   
                 }
        }
    //шерсть
       public ItemStack onWool(){
            int rand = random.nextInt(2)+1;
            ItemStack item = new ItemStack(Material.WOOL, rand);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName(woolname);
            meta.setLore(woollore);
            item.setItemMeta(meta);
            return item;
       }
    //сырая медвежатина
       public ItemStack onRawBeef(){
           int rand = random.nextInt(2)+1;
            ItemStack item = new ItemStack(Material.RAW_BEEF, rand);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName(rawbeefname);
            meta.setLore(rawbeeflore);
            item.setItemMeta(meta);
            return item;
      }
    //жаренная медвежатина
       public ItemStack onCookedBeef(){
           int rand = random.nextInt(2)+1;
            ItemStack item = new ItemStack(Material.COOKED_BEEF, rand);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName(cookedbeefname);
            meta.setLore(cookedbeeflore);
            item.setItemMeta(meta);
            return item;
      }
      
     
        @EventHandler
        public void dropBear(EntityDeathEvent e){
            EntityType type = e.getEntityType();
            if(type != EntityType.POLAR_BEAR)return;
            else{
            e.getDrops().clear();
                int rand = random.nextInt(woolrandom);
                if((rand == 0) && (woolenabled == true)){
                    e.getDrops().add(onWool());
                }
                int rawbeefrand = random.nextInt(rawbeefrandom);
                if((rawbeefrand == 0) && (rawbeefenabled == true)){
                    e.getDrops().add(onRawBeef());
                }
              
    
                //Как найти игрока убившего медведя???
                /*
                Player player = p.getPlayer();
                int cookedbeefrand = random.nextInt(cookedbeefrandom);
                Map<Enchantment, Integer> map = player.getInventory().getItemInMainHand().getEnchantments();
              
                if (map.containsValue(Enchantment.FIRE_ASPECT) && (map.containsValue(Enchantment.ARROW_FIRE))){
                    if((cookedbeefrand == 0) && (cookedbeefenabled == true)){
                        e.getDrops().clear();
                        e.getDrops().add(onRawBeef());
                      
                    }
                }*/
              
              
            }
          
        }
    
    }
     
  2. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Включи мозг, если он у тебя есть и подумай им. Если нет - лезь в гугл.
    А вообще, я в очередной раз убедился что ты говнокодер и что говнокод всегда стоит дёшево.
    Это ужас.
     
  3. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    В чем ужас?
     
  4. ExZo

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

    Баллы:
    66
    Имя в Minecraft:
    mikolovesyou
    Может пора перестать поливать говном всё, что движется?
    Не каждый может писать код идеально, даже ты, так что, чсв своё в жопу себе засунь и поглубже.. мудак.
     
  5. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Соглашусь. Я не супер програмист... Я учел замечания @Deriku и @DiamondDen . Я учусь писать плагины, и по этому на замечания этих програмистов я в полне одекватно ответил. Зделал Работу над ошибками, и вам ее предоставил.
    И опыять нашлись люди, которым код не нравиться?
     
  6. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Лол, если кто тут мудак с чсв - так это ты :)
    Я предоставил адекватную критику. Скинул рабочий код со всеми правками - бери и разбирайся, как говорится. Тебя в этой теме вообще небыло, собственно, ты откуда, мальчик?
     
  7. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Я начинающий плагитно писатель. Поэтому сделал этот плаги бесплатно.
    потом:
    - сделал бесплатно.
    - я работаю над своми ошибками(по вашим коментариям).

    В будущем я хочу писать хорошие плагины. Не надо писать... говнокод...Укажите сразу на ошибку. А лучше если укажите ее решение и сразу в личку. Что вы сделали из темы, говнотему? У нас тут тема плагины. А не Плагины для новичков.
     
  8. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Но ведь я сразу написал рабочий код.
    Почему говнотему?
    Мои "агрессивные" (по большей своей части) сообщения адресованы DiamondDen, но никак не вам.
    Но и ваш код оставляет желать лучшего.
    Я сам - далеко не мастер написания кода на java, однако в некоторых местах ваш код действительно ужасен.
     
  9. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Вот щас обидно было.
    Если используешь static, будь добр использовать правильные имена.
    В этом случае объявлять переменную как статичную не нужно - в плагине один класс, эти поля доступны везде, эти поля изменяются в коде.
    Может и так, но можно ещё лучше.
    Скоро скину ссылку на pastebin от меня.
     
  10. ExZo

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

    Баллы:
    66
    Имя в Minecraft:
    mikolovesyou
    Вот опять.. если ты "агрошкольник" признай это и свали с рубаккита..
     
  11. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Забавно.
    Заявился тип, который пишет, чтобы я ушёл с рубаккита, аргументируя это тем, что я агрошкольник :)
    Ты форточку то открой, может быть действительно душно.
    Если ты по делу ничего написать не можешь, то какого ты вообще делаешь в теме?
     
  12. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Наврал кстати. Не на pastebin, а на целый плагин. Сурсы внутри, так что декомпилировать не нужно.
    http://puu.sh/q64z4/8dcc2f5630.jar
     
  13. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    static переменные инициализируются 1 раз, а дальше просто используется ссылка на переменную, разве нет?

    Нужно было с самого начала тебя позвать :)
     
  14. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Да, это так. И это будет весьма здорово для каких ниб "собирательных" классов (уже забыл как это называется, ужс), где нужно проверять, к примеру, биом, в котором можно создаваться (в примере - класс генератора дерева. Статический финальный лист с биомами).
    Но в нашем случае оно не нужно - весь плагин в одном классе, копии этого класса не создаются, хранить что то глобально нам нет смысла.
    Кстати, в конфиге в блоке meat.item неправильный material - там должно быть RAW_BEEF вместо BEEF.
    Обосрался я что то. Забыл влепить проверку на медведя. Ну и поправил конфиг.
    http://puu.sh/q65ph/c9ea72e066.jar
     
  15. ExZo

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

    Баллы:
    66
    Имя в Minecraft:
    mikolovesyou
    Без разницы, что я делаю в этой теме. Такое существо, как ты, меня уже действительно достало своими оскорбления во все стороны. Вот я тебе и рекомендую свалить с рубаккита.
     
  16. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Порой бывает весьма забавно наблюдать за людьми, которые не принесли пользы ни обществу, ни рубаккиту в целом, но при этом, они смело могут тыкать пальцем в других, говоря что ты, мол, "оскорбляешь" других.
    Складывается впечатление, будто оскорблял других, а в итоге расплакался ты :(

    Ну и так, к слову, свои рекомендации можешь засунуть себе в одно место, да :)
     
Статус темы:
Закрыта.

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