Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Запросы на разработку плагинов' started by chief, Jul 15, 2016.

Thread Status:
Not open for further replies.
  1. Derik

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

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

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

    Code:
    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.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.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. Хостинг MineCraft
    <
  3. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Включи мозг, если он у тебя есть и подумай им. Если нет - лезь в гугл.
    А вообще, я в очередной раз убедился что ты говнокодер и что говнокод всегда стоит дёшево.[DOUBLEPOST=1468834859,1468834828][/DOUBLEPOST]
    Это ужас.
     
  4. Derik

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

    Trophy Points:
    76
    Имя в Minecraft:
    Derik
    В чем ужас?
     
  5. ExZo

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

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

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

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

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

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

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

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

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

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

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

    Dereku Старожил

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

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

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

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

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

    Dereku Старожил

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

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

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

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

    Dereku Старожил

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

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

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

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

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

    Ну и так, к слову, свои рекомендации можешь засунуть себе в одно место, да :)
     
Thread Status:
Not open for further replies.

Share This Page