How to get DyeColorData from the config?

Discussion in 'Plugin Development' started by MAYBE, Jun 30, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    MAYBE

    Hello i just wanted to make a plugin where he can select a DyeColor in the config but i dont really know how it works could you help me?
    my code is:
    Code:
    s0 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.1")),
    getConfig().getInt("players."+p.getName()+".ItemAmount.1"), DyeColor.getByColor(getConfig().getString("players."+p.getName()+".DyeColor.1")));
    
    
    thanks.
     
  2. Online

    timtower Administrator Administrator Moderator

  3. Offline

    MAYBE

    @timtower that doesnt answer my question it tells me what it returns but i`d like to know how i can get the dyecolor from a string
     
  4. Online

    timtower Administrator Administrator Moderator

    @MAYBE So you didn't try this?
    Code:
    DyeColor.getByColor(stringToColor("black"))
     
  5. Offline

    MAYBE

    @timtower theres no such thing as stringToColor eclipse sais
     
  6. Online

    timtower Administrator Administrator Moderator

    @MAYBE I posted 2 links. Click the second one.
     
  7. Offline

    MAYBE

    that what he posted isnt working for me an error comes up at the
    Code:
    return Color.decode(value);
    
    bit it sais "The method decode(String) is undefined for the type Color"
     
  8. Online

    timtower Administrator Administrator Moderator

  9. Offline

    MAYBE

    i only have 1 class
     
  10. Online

    timtower Administrator Administrator Moderator

    @MAYBE Could you post the entire class?
     
  11. Offline

    MAYBE

    sure
    Code:
    package dev.krille;
    
    
    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.StringTokenizer;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Color;
    import org.bukkit.DyeColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerLoginEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class HarryPotter extends JavaPlugin implements Listener{
        @Override
        public void onEnable(){
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            getConfig().options().copyDefaults(true);
            saveConfig();
        }
        @Override
        public void onDisable(){
           
        }
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
           
           
            return false;
        }
        @EventHandler
        public void JoinItemAdding(PlayerJoinEvent e){
            Player ep = (Player) e.getPlayer();
            PlayerInventory epi = (PlayerInventory) ep.getInventory();
            ItemStack skills = new ItemStack(Material.BOOK);
            ItemStack storage = new ItemStack(Material.CHEST);
            ItemMeta skillsm = skills.getItemMeta();
            ItemMeta storagem = storage.getItemMeta();
           
            //----------------------------------
            //skills editing item meta
            skillsm.setDisplayName("§aSkills §c - Closed");
            skills.setItemMeta(skillsm);
           
            //storage editing item meta
            storagem.setDisplayName("§aStorage");
            storage.setItemMeta(storagem);
            //----------------------------------
           
            epi.setItem(0, skills);
            epi.setItem(1, storage);
        }
        @EventHandler
        public void onclick(PlayerInteractEvent e){
            Player ep = (Player) e.getPlayer();
            PlayerInventory inv = (PlayerInventory) ep.getInventory();
            ItemStack ej = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.PURPLE.getData());
            ItemStack bh = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.BLACK.getData());
            ItemStack b = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.GREEN.getData());
            ItemStack l = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.RED.getData());
            ItemStack skills = new ItemStack(Material.BOOK, 1);
            ItemStack none = new ItemStack(Material.AIR);
            ItemStack storage = new ItemStack(Material.CHEST);
            ItemMeta storagem = storage.getItemMeta();
            ItemMeta ejm = ej.getItemMeta();
            ItemMeta bhm = bh.getItemMeta();
            ItemMeta bm = b.getItemMeta();
            ItemMeta lm = l.getItemMeta();
            ItemMeta skillsm = skills.getItemMeta();
            if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
                if (ep.getItemInHand().getItemMeta().getDisplayName().equals("§aSkills §c - Closed")){
                    //-------------------------------------
                    //ej editing item meta
                    ejm.setDisplayName("§dEagle Jump");
                    ej.setItemMeta(ejm);
                    //bh editing item meta
                    bhm.setDisplayName("§0Black hole");
                    bh.setItemMeta(bhm);
                    //b editing item meta
                    bm.setDisplayName("§2Berserk");
                    b.setItemMeta(bm);
                    //l editing item meta
                    lm.setDisplayName("§cLightning");
                    l.setItemMeta(lm);
                    //skills editing item meta
                    skillsm.setDisplayName("§aSkills §9 - Opened");
                    skills.setItemMeta(skillsm);
                    //storage editing item meta
                    storagem.setDisplayName("§aStorage");
                    storage.setItemMeta(storagem);
                    //-------------------------------------
                    //l = Lightning (the last block), b = Beserk (the second block), bh = blackhole (the third block), ej = eagle jump (the first block)
                    inv.setItem(0, skills);
                    inv.setItem(1, ej);
                    inv.setItem(2, b);
                    inv.setItem(3, bh);
                    inv.setItem(4, l);
                    inv.setItem(5, storage);
                    ep.updateInventory();
                }else if (ep.getItemInHand().getItemMeta().getDisplayName().equals("§aSkills §9 - Opened")){
                    //---------------------------------------
                    //skills editing item meta
                    skillsm.setDisplayName("§aSkills §c - Closed");
                    skills.setItemMeta(skillsm);
                    //storage editing item meta
                    storagem.setDisplayName("§aStorage");
                    storage.setItemMeta(storagem);
                    //-----------------------------------------
                    //l = Lightning (the last block), b = Beserk (the second block), bh = blackhole (the third block), ej = eagle jump (the first block)
                    inv.setItem(0, skills);
                    inv.setItem(1, storage);
                    inv.setItem(2, none);
                    inv.setItem(3, none);
                    inv.setItem(4, none);
                    inv.setItem(5, none);
                    ep.updateInventory();
            }
            }
        }
        @EventHandler
        public void PlayerJoin(PlayerLoginEvent e){
            Player ep = (Player) e.getPlayer();
            if (!getConfig().contains("players."+ep.getName())){
                getConfig().set("players."+ep.getName()+".slots.1", "AIR");
                getConfig().set("players."+ep.getName()+".slots.2", "AIR");
                getConfig().set("players."+ep.getName()+".slots.3", "AIR");
                getConfig().set("players."+ep.getName()+".slots.4", "AIR");
                getConfig().set("players."+ep.getName()+".slots.5", "AIR");
                getConfig().set("players."+ep.getName()+".slots.6", "AIR");
                getConfig().set("players."+ep.getName()+".slots.7", "AIR");
                getConfig().set("players."+ep.getName()+".slots.8", "AIR");
                getConfig().set("players."+ep.getName()+".slots.9", "AIR");
                getConfig().set("players."+ep.getName()+".slots.10", "AIR");
                getConfig().set("players."+ep.getName()+".slots.11", "AIR");
                getConfig().set("players."+ep.getName()+".slots.12", "AIR");
                getConfig().set("players."+ep.getName()+".slots.13", "AIR");
                getConfig().set("players."+ep.getName()+".slots.14", "AIR");
                getConfig().set("players."+ep.getName()+".slots.15", "AIR");
                getConfig().set("players."+ep.getName()+".slots.16", "AIR");
                getConfig().set("players."+ep.getName()+".slots.17", "AIR");
                getConfig().set("players."+ep.getName()+".slots.18", "AIR");
                getConfig().set("players."+ep.getName()+".slots.19", "AIR");
                getConfig().set("players."+ep.getName()+".ItemAmount.1", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.2", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.3", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.4", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.5", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.6", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.7", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.8", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.9", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.10", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.11", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.12", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.13", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.14", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.15", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.16", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.17", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.18", "1");
                getConfig().set("players."+ep.getName()+".ItemAmount.19", "1");
                getConfig().set("players."+ep.getName()+".DyeColor.1", "");
                getConfig().set("players."+ep.getName()+".DyeColor.2", "");
                getConfig().set("players."+ep.getName()+".DyeColor.3", "");
                getConfig().set("players."+ep.getName()+".DyeColor.4", "");
                getConfig().set("players."+ep.getName()+".DyeColor.5", "");
                getConfig().set("players."+ep.getName()+".DyeColor.6", "");
                getConfig().set("players."+ep.getName()+".DyeColor.7", "");
                getConfig().set("players."+ep.getName()+".DyeColor.8", "");
                getConfig().set("players."+ep.getName()+".DyeColor.9", "");
                getConfig().set("players."+ep.getName()+".DyeColor.10", "");
                getConfig().set("players."+ep.getName()+".DyeColor.11", "");
                getConfig().set("players."+ep.getName()+".DyeColor.12", "");
                getConfig().set("players."+ep.getName()+".DyeColor.13", "");
                getConfig().set("players."+ep.getName()+".DyeColor.14", "");
                getConfig().set("players."+ep.getName()+".DyeColor.15", "");
                getConfig().set("players."+ep.getName()+".DyeColor.16", "");
                getConfig().set("players."+ep.getName()+".DyeColor.17", "");
                getConfig().set("players."+ep.getName()+".DyeColor.18", "");
                getConfig().set("players."+ep.getName()+".DyeColor.19", "");
                saveConfig();
               
            }
        }
        public void Chest(Player p){
            Inventory inv = Bukkit.getServer().createInventory(null, 18, "§aStorage");
           
            ItemStack s0 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.1")), getConfig().getInt("players."+p.getName()+".ItemAmount.1"));
            if (getConfig().getString("players."+p.getName()+"slots.1") == "wool" || getConfig().getString("players."+p.getName()+"slots.1") == "stained_glass"){
                s0 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.1")), getConfig().getInt("players."+p.getName()+".ItemAmount.1"), DyeColor.getByColor(StringToColor()));
            }
            ItemStack s1 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.2")), getConfig().getInt("players."+p.getName()+".ItemAmount.2"));
            ItemStack s2 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.3")), getConfig().getInt("players."+p.getName()+".ItemAmount.3"));
            ItemStack s3 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.4")), getConfig().getInt("players."+p.getName()+".ItemAmount.4"));
            ItemStack s4 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.5")), getConfig().getInt("players."+p.getName()+".ItemAmount.5"));
            ItemStack s5 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.6")), getConfig().getInt("players."+p.getName()+".ItemAmount.6"));
            ItemStack s6 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.7")), getConfig().getInt("players."+p.getName()+".ItemAmount.7"));
            ItemStack s7 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.8")), getConfig().getInt("players."+p.getName()+".ItemAmount.8"));
            ItemStack s8 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.9")), getConfig().getInt("players."+p.getName()+".ItemAmount.9"));
            ItemStack s9 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.10")), getConfig().getInt("players."+p.getName()+".ItemAmount.10"));
            ItemStack s10 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.11")), getConfig().getInt("players."+p.getName()+".ItemAmount.11"));
            ItemStack s11 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.12")), getConfig().getInt("players."+p.getName()+".ItemAmount.12"));
            ItemStack s12 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.13")), getConfig().getInt("players."+p.getName()+".ItemAmount.13"));
            ItemStack s13 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.14")), getConfig().getInt("players."+p.getName()+".ItemAmount.14"));
            ItemStack s14 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.15")), getConfig().getInt("players."+p.getName()+".ItemAmount.15"));
            ItemStack s15 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.16")), getConfig().getInt("players."+p.getName()+".ItemAmount.16"));
            ItemStack s16 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.17")), getConfig().getInt("players."+p.getName()+".ItemAmount.17"));
            ItemStack s17 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.18")), getConfig().getInt("players."+p.getName()+".ItemAmount.18"));
            ItemStack s18 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.19")), getConfig().getInt("players."+p.getName()+".ItemAmount.19"));
        }
         public static Color stringToColor(final String value) {
               if (value == null) {
                 return Color.BLACK;
               }
               try {
                 // get color by hex or octal value
                 return Color.decode(value);
               } catch (NumberFormatException nfe) {
                 // if we can't decode lets try to get it by name
                 try {
                   // try to get a color by name using reflection
                   final Field f = Color.class.getField(value);
    
                   return (Color) f.get(null);
                 } catch (Exception ce) {
                   // if we can't get any color return black
                   return Color.BLACK;
                 }
               }
             }
    }
    
    
     
  12. Online

    timtower Administrator Administrator Moderator

    @MAYBE Did you look at the imports of the example code?
     
  13. Offline

    MAYBE

    ok i noticed it i imported the wrong color but thanks :)
    but theres still one more problem
    the error "The method getByColor(org.bukkit.Color) in the type DyeColor is not applicable for the arguments (java.awt.Color)"
    at the
    Code:
    s0 = new ItemStack(Material.getMaterial(getConfig().getString("players."+p.getName()+".slots.1")), getConfig().getInt("players."+p.getName()+".ItemAmount.1"), DyeColor.getByColor(stringToColor(getConfig().getString("players."+p.getName()+".DyeColor.1"))));
    
    @timtower can you help me please i dont get how to fix that

    EDIT by Timtower: merged posts
     
    Last edited by a moderator: Jul 1, 2015
Thread Status:
Not open for further replies.

Share This Page