- Баллы
- 76
- Имя в Minecraft
- Derik
Оптимизировал код. Добавил мясо(можно отключить в конфиге если не нужно).
Cкачать - WoolFromBear-v1.3
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());
}
}*/
}
}
}