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

  • Автор темы Автор темы chief
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Оптимизировал код. Добавил мясо(можно отключить в конфиге если не нужно).

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

Java:
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());
                  
                }
            }*/
          
          
        }
      
    }

}
 
Посмотреть вложение 41916
Зачем создавать несколько раз лист
Включи мозг, если он у тебя есть и подумай им. Если нет - лезь в гугл.
А вообще, я в очередной раз убедился что ты говнокодер и что говнокод всегда стоит дёшево.
Оптимизировал код. Добавил мясо(можно отключить в конфиге если не нужно).

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

Java:
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());
                 
                }
            }*/
         
         
        }
     
    }

}
Это ужас.
 
Включи мозг, если он у тебя есть и подумай им. Если нет - лезь в гугл.
А вообще, я в очередной раз убедился что ты говнокодер и что говнокод всегда стоит дёшево.

Это ужас.
Может пора перестать поливать говном всё, что движется?
Не каждый может писать код идеально, даже ты, так что, чсв своё в жопу себе засунь и поглубже.. мудак.
 
Соглашусь. Я не супер програмист... Я учел замечания @Deriku и @DiamondDen . Я учусь писать плагины, и по этому на замечания этих програмистов я в полне одекватно ответил. Зделал Работу над ошибками, и вам ее предоставил.
И опыять нашлись люди, которым код не нравиться?
 
Может пора перестать поливать говном всё, что движется?
Не каждый может писать код идеально, даже ты, так что, чсв своё в жопу себе засунь и поглубже.. мудак.
Лол, если кто тут мудак с чсв - так это ты 🙂
Я предоставил адекватную критику. Скинул рабочий код со всеми правками - бери и разбирайся, как говорится. Тебя в этой теме вообще небыло, собственно, ты откуда, мальчик?
 
Я начинающий плагитно писатель. Поэтому сделал этот плаги бесплатно.
потом:
- сделал бесплатно.
- я работаю над своми ошибками(по вашим коментариям).

В будущем я хочу писать хорошие плагины. Не надо писать... говнокод...Укажите сразу на ошибку. А лучше если укажите ее решение и сразу в личку. Что вы сделали из темы, говнотему? У нас тут тема плагины. А не Плагины для новичков.
 
Я начинающий плагитно писатель. Поэтому сделал этот плаги бесплатно.
потом:
- сделал бесплатно.
- я работаю над своми ошибками(по вашим коментариям).

В будущем я хочу писать хорошие плагины. Не надо писать... говнокод...Укажите сразу на ошибку. А лучше если укажите ее решение и сразу в личку. Что вы сделали из темы, говнотему? У нас тут тема плагины. А не Плагины для новичков.
Но ведь я сразу написал рабочий код.
Почему говнотему?
Мои "агрессивные" (по большей своей части) сообщения адресованы DiamondDen, но никак не вам.
Но и ваш код оставляет желать лучшего.
Я сам - далеко не мастер написания кода на java, однако в некоторых местах ваш код действительно ужасен.
 
Я учел замечания @Deriku
Вот щас обидно было.
Лол, не думал что ты такой тупой. Читай что такое static. Внимательно.
Если используешь static, будь добр использовать правильные имена.
В этом случае объявлять переменную как статичную не нужно - в плагине один класс, эти поля доступны везде, эти поля изменяются в коде.
Но ведь я сразу написал рабочий код.
Может и так, но можно ещё лучше.
Скоро скину ссылку на pastebin от меня.
 
Вот опять.. если ты "агрошкольник" признай это и свали с рубаккита..
Забавно.
Заявился тип, который пишет, чтобы я ушёл с рубаккита, аргументируя это тем, что я агрошкольник 🙂
Ты форточку то открой, может быть действительно душно.
Если ты по делу ничего написать не можешь, то какого ты вообще делаешь в теме?
 
Наврал кстати. Не на pastebin, а на целый плагин. Сурсы внутри, так что декомпилировать не нужно.
http://puu.sh/q64z4/8dcc2f5630.jar
 
Вот щас обидно было.
Если используешь static, будь добр использовать правильные имена.
В этом случае объявлять переменную как статичную не нужно - в плагине один класс, эти поля доступны везде, эти поля изменяются в коде.Может и так, но можно ещё лучше.
Скоро скину ссылку на pastebin от меня.
static переменные инициализируются 1 раз, а дальше просто используется ссылка на переменную, разве нет?

Нужно было с самого начала тебя позвать 🙂
 
static переменные инициализируются 1 раз, а дальше просто используется ссылка на переменную, разве нет?

Нужно было с самого начала тебя позвать 🙂
Да, это так. И это будет весьма здорово для каких ниб "собирательных" классов (уже забыл как это называется, ужс), где нужно проверять, к примеру, биом, в котором можно создаваться (в примере - класс генератора дерева. Статический финальный лист с биомами).
Но в нашем случае оно не нужно - весь плагин в одном классе, копии этого класса не создаются, хранить что то глобально нам нет смысла.
Наврал кстати. Не на pastebin, а на целый плагин. Сурсы внутри, так что декомпилировать не нужно.
http://puu.sh/q64z4/8dcc2f5630.jar
Кстати, в конфиге в блоке meat.item неправильный material - там должно быть RAW_BEEF вместо BEEF.
Наврал кстати. Не на pastebin, а на целый плагин. Сурсы внутри, так что декомпилировать не нужно.
http://puu.sh/q64z4/8dcc2f5630.jar
Обосрался я что то. Забыл влепить проверку на медведя. Ну и поправил конфиг.
http://puu.sh/q65ph/c9ea72e066.jar
 
Забавно.
Заявился тип, который пишет, чтобы я ушёл с рубаккита, аргументируя это тем, что я агрошкольник 🙂
Ты форточку то открой, может быть действительно душно.
Если ты по делу ничего написать не можешь, то какого ты вообще делаешь в теме?
Без разницы, что я делаю в этой теме. Такое существо, как ты, меня уже действительно достало своими оскорбления во все стороны. Вот я тебе и рекомендую свалить с рубаккита.
 
Без разницы, что я делаю в этой теме. Такое существо, как ты, меня уже действительно достало своими оскорбления во все стороны. Вот я тебе и рекомендую свалить с рубаккита.
Порой бывает весьма забавно наблюдать за людьми, которые не принесли пользы ни обществу, ни рубаккиту в целом, но при этом, они смело могут тыкать пальцем в других, говоря что ты, мол, "оскорбляешь" других.
Складывается впечатление, будто оскорблял других, а в итоге расплакался ты ☹️

Ну и так, к слову, свои рекомендации можешь засунуть себе в одно место, да 🙂
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх