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

Помогите Перенос плагина на версию 1.14.4 с 1.12.2

Тема в разделе "Разработка плагинов для новичков", создана пользователем DJam, 19 май 2020.

  1. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Здравствуйте, я вообще пень в написании плагинов для майнкрафта. Только начал. Я решил перенести плагин с версии 1.12.2 на версию 1.14.4. Вышло куча ошибок, которые я смог исправить, осталось лишь две, помогите, буду благодарен. Плюс чему-то и научиться новому смогу.

    2) Ошибка (
    cannot find symbol
    symbol: variable c
    location: class GenericAttributes
    )
    Код:
    public static void setKnockBackResistance(final Entity e, final double knock) {
            final AttributeInstance attributes = ((EntityInsentient)((CraftLivingEntity)e).getHandle()).getAttributeInstance(GenericAttributes.c <---Тут ошибка);
            if (attributes != null) {
                attributes.setValue(knock);
            }
        }
    )
     
    Последнее редактирование: 19 май 2020
  2. Sigvegutt

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

    Баллы:
    96
    1. Офигенная картинка
    upload_2020-5-20_1-24-17.png
    2. Код лучше в [cоde]Код[/cоde] кидать.
     
  3. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    У меня ее показывает...
     
  4. Sigvegutt

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

    Баллы:
    96
    А у нас - нет.
     
  5. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Кхм, а что делать... Ну я пока код вставил
     
  6. Sigvegutt

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

    Баллы:
    96
    Залей куда-нибудь и потом скопируй URL > Вставь изображение.
    upload_2020-5-20_2-13-4.png
    upload_2020-5-20_2-13-13.png
     
  7. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    да я так и сделал, у меня то показывается, я закинул на яндекс диск
     
  8. BestKVanT

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

    Баллы:
    76
    Зайди в сурс код ядра и посмотри на что была изменена эта переменная в классе GenericAttributes.
     
  9. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Код:
    public static void setKnockBackResistance(final Entity e, final double knock) {
            final AttributeInstance attributes = ((EntityInsentient)((CraftLivingEntity)e).getHandle()).getAttributeInstance(GenericAttributes.KNOCKBACK_RESISTANCE);
            if (attributes != null) {
                attributes.setValue(knock);
            }
        }
    )
     
  10. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Спасибо, уже сам додумался, но спасибо, что помогли. Правда все равно плагин при запуске в консоли крашется.
     
  11. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Кидай ошибку
     
  12. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Код:
    Error occurred while enabling Plugin v0.6.3 (Is it up to date?)
    java.lang.IllegalArgumentException: Material cannot be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.*********ventory.ItemStack.<init>(ItemStack.java:70) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.*********ventory.ItemStack.<init>(ItemStack.java:58) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at me.ThaH3lper.com.Items.ItemHandler.getItemStack(ItemHandler.java:17) ~[?:?]
    at me.ThaH3lper.com.Items.EpicItems.getItemStack(EpicItems.java:43) ~[?:?]
    at me.ThaH3lper.com.Drops.EpicItemStack.<init>(EpicItemStack.java:27) ~[?:?]
    at me.ThaH3lper.com.Drops.EpicNormal.<init>(EpicNormal.java:24) ~[?:?]
    at me.ThaH3lper.com.SaveLoad.Load.LoadLoots.LoadAllLoot(LoadLoots.java:17) ~[?:?]
    at me.ThaH3lper.com.SaveLoad.LoadSetup.LoadAll(LoadSetup.java:73) ~[?:?]
    at me.ThaH3lper.com.EpicBoss.onEnable(EpicBoss.java:89) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugin(CraftServer.java:461) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at org.bukkit.craftbukkit.v1_14_R1.CraftServer.enablePlugins(CraftServer.java:375) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:449) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:258) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:776) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
     
  13. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Скинь код класса EpicBoss
     
  14. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Код:
    package me.ThaH3lper.com;
    
    import org.bukkit.plugin.java.*;
    import java.util.logging.*;
    import me.ThaH3lper.com.Drops.Fair.*;
    import me.ThaH3lper.com.Drops.*;
    import me.ThaH3lper.com.Items.*;
    import me.ThaH3lper.com.Mobs.*;
    import me.ThaH3lper.com.Location.*;
    import me.ThaH3lper.com.Skills.*;
    import me.ThaH3lper.com.Timer.*;
    import me.ThaH3lper.com.Timer.Timer;
    import me.ThaH3lper.com.Spawning.*;
    import me.ThaH3lper.com.SaveLoad.*;
    import me.ThaH3lper.com.Commands.*;
    import org.bukkit.command.*;
    import me.ThaH3lper.com.Clock.*;
    import org.bukkit.event.*;
    import me.ThaH3lper.com.Listener.*;
    import org.bukkit.plugin.*;
    import org.bukkit.entity.*;
    import org.bukkit.*;
    import java.util.*;
    
    public class EpicBoss extends JavaPlugin
    {
        public Logger logger;
        public static EpicBoss plugin;
        public String menu;
        public static Random r;
        public SaveLoad mobs;
        public SaveLoad items;
        public SaveLoad loots;
        public SaveLoad skills;
        public SaveLoad savelist;
        public SaveLoad settings;
        public SaveLoad timers;
        public SaveLoad spawning;
        public List<SaveLoad> saveItemList;
        public List<SaveLoad> saveMobList;
        public List<SaveLoad> saveLootList;
        public List<SaveLoad> saveSkillList;
        public List<SaveLoad> saveTimerList;
        public List<SaveLoad> saveSpawningList;
        public List<UUID> allMobs;
        public List<Timer> allTimers;
        public List<FairDrops> listFair;
        public List<Item> fairItems;
        public List<EpicNormal> listLoots;
        public List<EpicItems> listItems;
        public List<EpicMobs> listMobs;
        public List<EpicMobsList> listMobslist;
        public List<EpicLocation> listLoc;
        public List<EpicSkill> listSkills;
        public List<EpicTimer> listTimers;
        public List<EpicSpawning> listSpawning;
        
        static {
            EpicBoss.r = new Random();
        }
        
        public EpicBoss() {
            this.logger = Logger.getLogger("Minecraft");
            this.menu = ChatColor.GREEN + "=====" + ChatColor.GOLD + ChatColor.BOLD + " EpicBoss Updated " + ChatColor.GREEN + "=====";
            this.allMobs = new ArrayList<UUID>();
            this.allTimers = new ArrayList<Timer>();
            this.listFair = new ArrayList<FairDrops>();
            this.fairItems = new ArrayList<Item>();
            this.listLoots = new ArrayList<EpicNormal>();
            this.listItems = new ArrayList<EpicItems>();
            this.listMobs = new ArrayList<EpicMobs>();
            this.listMobslist = new ArrayList<EpicMobsList>();
            this.listLoc = new ArrayList<EpicLocation>();
            this.listSkills = new ArrayList<EpicSkill>();
            this.listTimers = new ArrayList<EpicTimer>();
            this.listSpawning = new ArrayList<EpicSpawning>();
        }
        
        public void onDisable() {
            LoadSetup.SaveAll();
            final PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(String.valueOf(pdfFile.getName()) + " Has Been Disabled!");
        }
        
        public void onEnable() {
            final PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(String.valueOf(pdfFile.getName()) + " " + pdfFile.getVersion() + " Has Been Enabled!");
            EpicBoss.plugin = this;
            LoadSetup.LoadAll(true);
            this.getCommand("EpicBoss").setExecutor((CommandExecutor)new CommandInput());
            this.getServer().getScheduler().scheduleSyncRepeatingTask((Plugin)this, (Runnable)new Clock(), 0L, 20L);
            final PluginManager manager = this.getServer().getPluginManager();
            manager.registerEvents((Listener)new MobDrop(), (Plugin)this);
            manager.registerEvents((Listener)new MobHit(), (Plugin)this);
            manager.registerEvents((Listener)new SignPlace(), (Plugin)this);
            manager.registerEvents((Listener)new LeashEvent(), (Plugin)this);
            manager.registerEvents((Listener)new MobSkill(), (Plugin)this);
            manager.registerEvents((Listener)new SlimeSplit(), (Plugin)this);
            manager.registerEvents((Listener)new MobSpawn(), (Plugin)this);
            manager.registerEvents((Listener)new MobDamaged(), (Plugin)this);
            manager.registerEvents((Listener)new SkillShootProjectileListener(), (Plugin)this);
        }
        
        public List<LivingEntity> getMobsAll() {
            final List<LivingEntity> list = new ArrayList<LivingEntity>();
            for (final World w : Bukkit.getWorlds()) {
                for (final LivingEntity e : w.getLivingEntities()) {
                    if (this.allMobs.contains(e.getUniqueId())) {
                        list.add(e);
                    }
                }
            }
            return list;
        }
    }
    
     
  15. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Класс ItemHandlerстрока 17 , там видимо Material присваивается что-то из конфига(с которым что-то не так) либо устаревший Material
     
  16. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    А как узнать, что именно?
     
  17. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Там должно быть: Material (name) = чему-то;
    Вот это чему-то не существует в системе, скидывай код, посмотрим
     
  18. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    Код:
    package me.ThaH3lper.com.Items;
    
    import org.*********ventory.*;
    import me.ThaH3lper.com.Libs.*;
    import org.bukkit.enchantments.*;
    import java.util.*;
    import org.bukkit.*;
    import org.*********ventory.meta.*;
    import me.ThaH3lper.com.*;
    
    public class ItemHandler
    {
        public static ItemStack getItemStack(final EpicItems ei) {
            final int id = ei.id;
            final short data = (short)ei.data;
            final int amount = ei.amount;
            ItemStack stack = new ItemStack(Material.getMaterial(""+id), amount, (short)data);
            ItemMeta im = stack.getItemMeta();
            if (ei.Lores != null) {
                im = setLores(im, ei.Lores);
            }
            if (ei.Enchants != null) {
                im = setEnchants(im, ei.Enchants);
            }
            if (ei.Display != null) {
                im = setDisplay(im, ei.Display);
            }
            stack.setItemMeta(im);
            if (ei.color != null) {
                stack = setLeatherColor(stack, ei);
            }
            if (ei.player != null) {
                stack = setPlayerName(stack, ei);
            }
            stack = AttributeHandler.addHealth(stack, ei.health);
            stack = AttributeHandler.addDamage(stack, ei.damage);
            stack = AttributeHandler.addSpeed(stack, ei.speed);
            stack = AttributeHandler.addKnockBackRes(stack, ei.knock);
            stack = AttributeHandler.addFollowRange(stack, ei.range);
            return stack;
        }
       
        public static ItemMeta setEnchants(final ItemMeta im, final List<String> enchants) {
            for (final String s : enchants) {
                if (s.contains(":")) {
                    final String[] part = s.split(":");
                    im.addEnchant(Enchantment.getByName(part[0]), Integer.parseInt(part[1]), true);
                }
            }
            return im;
        }
       
        public static ItemMeta setLores(final ItemMeta im, final List<String> lores) {
            final List<String> list = new ArrayList<String>();
            for (String s : lores) {
                s = ChatColor.translateAlternateColorCodes('&', s);
                list.add(s);
            }
            im.setLore((List)list);
            return im;
        }
       
        public static ItemMeta setDisplay(final ItemMeta im, String s) {
            s = ChatColor.translateAlternateColorCodes('&', s);
            im.setDisplayName(s);
            return im;
        }
       
        public static ItemStack setLeatherColor(final ItemStack item, final EpicItems ei) {
            if (item.getType().equals((Object)Material.LEATHER_CHESTPLATE) || item.getType().equals((Object)Material.LEATHER_BOOTS) || item.getType().equals((Object)Material.LEATHER_LEGGINGS) || item.getType().equals((Object)Material.LEATHER_HELMET)) {
                final String[] rgb = ei.color.split(",");
                final int r = Integer.parseInt(rgb[0]);
                final int g = Integer.parseInt(rgb[1]);
                final int b = Integer.parseInt(rgb[2]);
                final ItemMeta im = item.getItemMeta();
                final LeatherArmorMeta la = (LeatherArmorMeta)im;
                la.setColor(Color.fromRGB(r, g, b));
                item.setItemMeta((ItemMeta)la);
            }
            return item;
        }
       
        public static ItemStack setPlayerName(final ItemStack item, final EpicItems ei) {
            if (item.getType().equals((Object)Material.SKELETON_SKULL) || item.getType().equals((Object)Material.SKELETON_WALL_SKULL)) {
                final SkullMeta meta = (SkullMeta)item.getItemMeta();
                meta.setOwner(ei.player);
                item.setItemMeta((ItemMeta)meta);
            }
            return item;
        }
       
        public static EpicItems getEpicItem(final String s) {
            for (final EpicItems ei : EpicBoss.plugin.listItems) {
                if (ei.cmdName.equals(s)) {
                    return ei;
                }
            }
            return null;
        }
    }
    
    
     
  19. WhileInside

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

    Баллы:
    66
    Имя в Minecraft:
    WhileInside
    > Material.getMaterial(""+id),
    я не уверен, но мне кажется, что там должно быть по имени, а не по айди
     
  20. Автор темы
    DJam

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

    Баллы:
    61
    Имя в Minecraft:
    DJam
    То есть заменить на Name?
     

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