Создание энчантов

l4legenda

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
l4legenda
Кто может дать статью где в подробностях объеснятся как создать энчант?
Сделал по какому-то зарубежному сайту энчант. И он не отображаеться на предмете, не инчантит в столе. И много другое.
 
че блин ?
Скинь скрины кода и ошибки.
 
ТВОЙ КОД СКИНЬ
 
Код:
package org.interactive.Enchantments;

import org.bukkit.enchantments.Enchantment;
import org.bukkit.enchantments.EnchantmentTarget;
import org.*********ventory.ItemStack;

public class CustomEnchantment extends Enchantment{

    public CustomEnchantment(int id) {
        super(id);
    }
  
    @Override
    public int getId(){
    return 101;
    }
  
    @Override
    public boolean canEnchantItem(ItemStack arg0) {
        return true;
    }

    @Override
    public boolean conflictsWith(Enchantment arg0) {
        return false;
    }

    @Override
    public EnchantmentTarget getItemTarget() {
        return null;
    }

    @Override
    public int getMaxLevel() {
        return 2;
    }

    @Override
    public String getName() {
        return "Megolovania";
    }

    @Override
    public int getStartLevel() {
        return 1;
    }

    @Override
    public boolean isCursed() {
        return false;
    }

    @Override
    public boolean isTreasure() {
        return false;
    }

}

Код:
package org.interactive.bot;

import java.lang.reflect.Field;
import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.interactive.Enchantments.CustomEnchantment;
import org.interactive.crafts.regCrafts;
import org.interactive.events.regEvent;

public class Main extends JavaPlugin{
   
    public static CustomEnchantment ench = new CustomEnchantment(101);
   
    public void onEnable(){//Старт плагина
        getServer().getPluginManager().registerEvents(new regEvent(), this);
        new regCrafts();
        regArmor();
        LoadEnchantments();
        getLogger().info("Start plugin");
       
    }
   
    public void onDisable(){//Окончание плагина
        try {
            Field byIdField = Enchantment.class.getDeclaredField("byId");
            Field byNameField = Enchantment.class.getDeclaredField("byName");
            
            byIdField.setAccessible(true);
            byNameField.setAccessible(true);
            
            @SuppressWarnings("unchecked")
            HashMap<Integer, Enchantment> byId = (HashMap<Integer, Enchantment>) byIdField.get(null);
            @SuppressWarnings("unchecked")
            HashMap<String, Enchantment> byName = (HashMap<String, Enchantment>) byNameField.get(null);
            
            if(byId.containsKey(ench.getId()))
            byId.remove(ench.getId());
            
            if(byName.containsKey(getName()))
            byName.remove(getName());
            } catch (Exception ignored) { }
        getLogger().info("finish");
    }
   
    private void LoadEnchantments(){
        try{
            try {
            Field f = Enchantment.class.getDeclaredField("acceptingNew");
            f.setAccessible(true);
            f.set(null, true);
            } catch (Exception e) {
            e.printStackTrace();
            }
            try {
            Enchantment.registerEnchantment(ench);
            } catch (IllegalArgumentException e){
            //if this is thrown it means the id is already taken.
            }
            }catch(Exception e){
            e.printStackTrace();
            }
    }
 
Назад
Верх