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

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);
        }
    }
)
 
Последнее редактирование:
1. Офигенная картинка
upload_2020-5-20_1-24-17.png
2. Код лучше в [cоde]Код[/cоde] кидать.
 
да я так и сделал, у меня то показывается, я закинул на яндекс диск
 
Зайди в сурс код ядра и посмотри на что была изменена эта переменная в классе GenericAttributes.
 
Код:
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);
        }
    }
)
 
Код:
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);
        }
    }
)
Спасибо, уже сам додумался, но спасибо, что помогли. Правда все равно плагин при запуске в консоли крашется.
 
Код:
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]
 
Скинь код класса EpicBoss
 
Скинь код класса EpicBoss
Код:
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;
    }
}
 
Класс ItemHandlerстрока 17 , там видимо Material присваивается что-то из конфига(с которым что-то не так) либо устаревший Material
 
Там должно быть: Material (name) = чему-то;
Вот это чему-то не существует в системе, скидывай код, посмотрим
Код:
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;
    }
}
 
> Material.getMaterial(""+id),
я не уверен, но мне кажется, что там должно быть по имени, а не по айди
 
Назад
Верх