Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Чёт у тебя генератор имён для плагинов лагает.
ИсправилЧёт у тебя генератор имён для плагинов лагает.
Рандомный медведь?
Может хотя бы WoolFromBear?
Было бы прекрасно, если бы вы еще дроп рыбы убратьМогу рыбу очистить, чтобы не падала
Действительно. Эта идея интересная и оригинальнаяМожно замутить еще там название свое и описание. Чтобы не тупо шерсть было написано. А там например ... - "Медвежья шерсть". И лоры с описаниями ниже.. И все это в конфиг вынести.
При использовании JavaPlugin#saveDefaultConfig() не нужно проверять наличие конфига. Так же не нужно использовать JavaPlugin#getConfig().options().copyDefaults(true) - оно не нужно в твоём случае.
public class Main extends JavaPlugin implements Listener {
Logger log = this.getLogger();
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
File config = new File(this.getDataFolder() + File.separator + "config.yml");
if(!config.exists()) {
this.getConfig().options().copyDefaults(true);
this.saveDefaultConfig();
this.log.info("Creating config file...");
}
}
@EventHandler
public void dropBear(EntityDeathEvent e) {
EntityType type = e.getEntityType();
int droprandom = this.getConfig().getInt("drop");
int pcsmax = this.getConfig().getInt("pcsmax");
String name = this.getConfig().getString("name");
List<String> lore = this.getConfig().getStringList("lore");
if(type == EntityType.POLAR_BEAR) {
e.getDrops().clear();
Random rng = new Random();
int rand = rng.nextInt(pcsmax) + 1;
int random = rng.nextInt(droprandom);
if(random == 0) {
ItemStack item = new ItemStack(Material.WOOL, rand);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
meta.setLore(lore);
item.setItemMeta(meta);
e.getDrops().add(item);
}
}
}
}
Плотоядные животные несъедобныНу и по плагину - почему только шерсть? Медведь из шерсти одной состоит? Даёшь говядинки 1-3 штуки!
public class Main extends JavaPlugin implements Listener {
Logger log = this.getLogger();
int droprandom;
int pcsmax;
String name;
List<String> lore;
FileConfiguration config;
public void onEnable() {
saveDefaultConfig();
config = getConfig();
Bukkit.getPluginManager().registerEvents(this, this);
droprandom = config.getInt("drop");
pcsmax = config.getInt("pcsmax");
name = config.getString("name");
lore = config.getStringList("lore");
}
@EventHandler
public void dropBear(EntityDeathEvent e) {
EntityType type = e.getEntityType();
if(type == EntityType.POLAR_BEAR) {
e.getDrops().clear();
Random rng = new Random();
int rand = rng.nextInt(pcsmax) + 1;
int random = rng.nextInt(droprandom);
if(random == 0) {
ItemStack item = new ItemStack(Material.WOOL, rand);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
meta.setLore(lore);
item.setItemMeta(meta);
e.getDrops().add(item);
}
}
}
}
Фу, говнокод.Кинь готовый config.yml в плагин (где plugin.yml находится ту даже)Код:public class Main extends JavaPlugin implements Listener { Logger log = this.getLogger(); int droprandom; int pcsmax; String name; List<String> lore; FileConfiguration config; @Override public void onEnable() { saveDefaultConfig(); config = getConfig(); Bukkit.getPluginManager().registerEvents(this, this); droprandom = config.getInt("drop"); pcsmax = config.getInt("pcsmax"); name = config.getString("name"); lore = config.getStringList("lore"); } @EventHandler public void dropBear(EntityDeathEvent e) { EntityType type = e.getEntityType(); if(type == EntityType.POLAR_BEAR) { e.getDrops().clear(); Random rng = new Random(); int rand = rng.nextInt(pcsmax) + 1; int random = rng.nextInt(droprandom); if(random == 0) { ItemStack item = new ItemStack(Material.WOOL, rand); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(name); meta.setLore(lore); item.setItemMeta(meta); e.getDrops().add(item); } } } }
public class Main
extends JavaPlugin
implements Listener
{
private static final Logger log = this.getLogger();
private static final int droprandom;
private static final int pcsmax;
private static final String name;
private static final List<String> lore;
private static final Random random = new Random();
private FileConfiguration config;
@Override
public void onEnable()
{
saveDefaultConfig();
config = getConfig();
Bukkit.getPluginManager().registerEvents(this, this);
droprandom = config.getInt("drop");
pcsmax = config.getInt("pcsmax");
name = config.getString("name");
lore = config.getStringList("lore");
}
@EventHandler
public void dropBear(EntityDeathEvent event)
{
if (event.getType() == EntityType.POLAR_BEAR)
{
event.getDrops().clear();
int rand = random.nextInt(pcsmax);
int random = rng.nextInt(droprandom);
if (random == 0)
{
ItemStack item = new ItemStack(Material.WOOL, rand);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
meta.setLore(lore);
item.setItemMeta(meta);
e.getDrops().add(item);
}
}
}
}
Зачем static? это же всё в одном классе.Фу, говнокод.
Java:public class Main extends JavaPlugin implements Listener { private static final Logger log = this.getLogger(); private static final int droprandom; private static final int pcsmax; private static final String name; private static final List<String> lore; private static final Random random = new Random(); private FileConfiguration config; @Override public void onEnable() { saveDefaultConfig(); config = getConfig(); Bukkit.getPluginManager().registerEvents(this, this); droprandom = config.getInt("drop"); pcsmax = config.getInt("pcsmax"); name = config.getString("name"); lore = config.getStringList("lore"); } @EventHandler public void dropBear(EntityDeathEvent event) { if (event.getType() == EntityType.POLAR_BEAR) { event.getDrops().clear(); int rand = rng.nextInt(pcsmax) + 1; int random = rng.nextInt(droprandom); if (random == 0) { ItemStack item = new ItemStack(Material.WOOL, rand); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(name); meta.setLore(lore); item.setItemMeta(meta); e.getDrops().add(item); } } } }
Лол, не думал что ты такой тупой. Читай что такое static. Внимательно.Зачем static? это же всё в одном классе.
public class Main
extends JavaPlugin
implements Listener
{
private static Logger log = this.getLogger();
private static int droprandom;
private static int pcsmax;
private static String name;
private static List<String> lore;
private static Random random = new Random();
private static FileConfiguration config;
@Override
public void onEnable()
{
saveDefaultConfig();
config = getConfig();
Bukkit.getPluginManager().registerEvents(this, this);
droprandom = config.getInt("drop");
pcsmax = config.getInt("pcsmax");
name = config.getString("name");
lore = config.getStringList("lore");
}
@EventHandler
public void dropBear(EntityDeathEvent event)
{
if (event.getType() == EntityType.POLAR_BEAR)
{
event.getDrops().clear();
int rand = random.nextInt(pcsmax);
int rnd = random.nextInt(droprandom);
if (random == 0)
{
ItemStack item = new ItemStack(Material.WOOL, rand);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
ArrayList<String> lores = Utils.setLore(lore);
meta.setLore(lores);
item.setItemMeta(meta);
event.getDrops().add(item);
}
}
}
}
public class Utils
{
public static ArrayList<String> setLore(List<String> list)
{
ArrayList<String> lore = new ArrayList<String> ();
for (String methodLore : list)
{
lore.add(ChatColor.translateAlternateColorCodes('&', methodLore);
}
return lore;
}
}
Лол, не думал что ты такой тупой. Читай что такое static. Внимательно.
И да, круто, когда при каждом вызове евента создаётся экземпляр класса Random.
Utils.javaJava:public class Main extends JavaPlugin implements Listener { private static Logger log = this.getLogger(); private static int droprandom; private static int pcsmax; private static String name; private static List<String> lore; private static Random random = new Random(); private static FileConfiguration config; @Override public void onEnable() { saveDefaultConfig(); config = getConfig(); Bukkit.getPluginManager().registerEvents(this, this); droprandom = config.getInt("drop"); pcsmax = config.getInt("pcsmax"); name = config.getString("name"); lore = config.getStringList("lore"); } @EventHandler public void dropBear(EntityDeathEvent event) { if (event.getType() == EntityType.POLAR_BEAR) { event.getDrops().clear(); int rand = random.nextInt(pcsmax); int rnd = random.nextInt(droprandom); if (random == 0) { ItemStack item = new ItemStack(Material.WOOL, rand); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(name); ArrayList<String> lores = Utils.setLore(lore); meta.setLore(lores); item.setItemMeta(meta); event.getDrops().add(item); } } } }
Убрал final, дабы переменные небыли константами. Вдруг захочешь конфиг перезагрузить, а у тебя все поля финальные 🙂Java:public class Utils { public static ArrayList<String> setLore(List<String> list) { ArrayList<String> lore = new ArrayList<String> (); for (String methodLore : list) { lore.add(ChatColor.translateAlternateColorCodes('&', methodLore); } return lore; } }
Написал нормальный, рабочий код, на костях кода diamondDen.
Можешь использовать.
public class Main
extends JavaPlugin
implements Listener
{
private static Logger log = this.getLogger();
private static int droprandom;
private static int pcsmax;
private static String name;
private static List<String> lore;
private static Random random = new Random();
private static FileConfiguration config;
@Override
public void onEnable()
{
saveDefaultConfig();
config = getConfig();
Bukkit.getPluginManager().registerEvents(this, this);
droprandom = config.getInt("drop");
pcsmax = config.getInt("pcsmax");
name = config.getString("name");
lore = Utils.setLore(config.getStringList("lore"));
}
@EventHandler
public void dropBear(EntityDeathEvent event)
{
if (event.getType() == EntityType.POLAR_BEAR)
{
event.getDrops().clear();
int rand = random.nextInt(pcsmax);
int rnd = random.nextInt(droprandom);
if (random == 0)
{
ItemStack item = new ItemStack(Material.WOOL, rand);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
meta.setLore(lore);
item.setItemMeta(meta);
event.getDrops().add(item);
}
}
}
}
Да ты нериально крут, чел. Просто перекопировать мой код - это достойно всех похвал.Код:public class Main extends JavaPlugin implements Listener { private static Logger log = this.getLogger(); private static int droprandom; private static int pcsmax; private static String name; private static List<String> lore; private static Random random = new Random(); private static FileConfiguration config; @Override public void onEnable() { saveDefaultConfig(); config = getConfig(); Bukkit.getPluginManager().registerEvents(this, this); droprandom = config.getInt("drop"); pcsmax = config.getInt("pcsmax"); name = config.getString("name"); lore = Utils.setLore(config.getStringList("lore")); } @EventHandler public void dropBear(EntityDeathEvent event) { if (event.getType() == EntityType.POLAR_BEAR) { event.getDrops().clear(); int rand = random.nextInt(pcsmax); int rnd = random.nextInt(droprandom); if (random == 0) { ItemStack item = new ItemStack(Material.WOOL, rand); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(name); meta.setLore(lore); item.setItemMeta(meta); event.getDrops().add(item); } } } }