Advertisement
DPOH-VAR

Untitled

Nov 7th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package me.dpohvar.varscript.utils.minecraft;
  2.  
  3. import net.minecraft.server.NBTTagCompound;
  4. import org.bukkit.craftbukkit.inventory.CraftItemStack;
  5. import org.bukkit.inventory.ItemStack;
  6.  
  7. import java.nio.ByteBuffer;
  8.  
  9. /**
  10.  * Created by IntelliJ IDEA.
  11.  * User: DPOH-VAR
  12.  * Date: 10.08.12
  13.  * Time: 22:35
  14.  * To change this template use File | Settings | File Templates.
  15.  */
  16. public class ColorEdit{
  17.     public final ItemStack item;
  18.     private NBTTagCompound tagData;
  19.  
  20.     public ColorEdit(ItemStack s){
  21.         this.item = s;
  22.         net.minecraft.server.ItemStack i = ((CraftItemStack) s).getHandle();
  23.         if (i.tag == null) {
  24.             tagData = new NBTTagCompound();
  25.             i.tag = tagData;
  26.         } else {
  27.             tagData = i.tag;
  28.         }
  29.     }
  30.  
  31.     public int getColor(){
  32.         if (!tagData.hasKey("display")) {
  33.             return -1;
  34.         }
  35.         NBTTagCompound t = tagData.getCompound("display");
  36.         if (!t.hasKey("color")) {
  37.             return -1;
  38.         }
  39.         return tagData.getCompound("display").getInt("color");
  40.     }
  41.  
  42.     public ColorEdit setColor(int color){
  43.         if(color==-1){
  44.             removeColor();
  45.             return this;
  46.         }
  47.         if(tagData.hasKey("display")){
  48.             NBTTagCompound d = tagData.getCompound("display");
  49.             d.setInt("color", color);
  50.         } else {
  51.             NBTTagCompound d = new NBTTagCompound();
  52.             d.setInt("color", color);
  53.             tagData.setCompound("display",d);
  54.         }
  55.         return this;
  56.     }
  57.  
  58.     public void removeColor(){
  59.         tagData.getCompound("display").remove("color");
  60.     }
  61.  
  62.     private byte[] getColors(){
  63.         int color = getColor();
  64.         if (color==-1) return new byte[4];
  65.         return ByteBuffer.allocate(4).putInt(color).array();
  66.     }
  67.  
  68.     private ColorEdit setColors(byte[] colors){
  69.         setColor(ByteBuffer.wrap(colors).getInt());
  70.         return this;
  71.     }
  72.  
  73.     private ColorEdit setColorById(byte value,int id){
  74.         byte[] colors = getColors();
  75.         colors[id]=value;
  76.         setColors(colors);
  77.         return this;
  78.     }
  79.  
  80.     private int getColorById(int id){
  81.         int color = getColor();
  82.         if(color==-1) return -1;
  83.         return ByteBuffer.allocate(4).putInt(color).array()[id];
  84.     }
  85.  
  86.     public ColorEdit setRGB(byte red,byte green,byte blue){
  87.         byte[] colors = getColors();
  88.         colors[1]=red;
  89.         colors[2]=green;
  90.         colors[3]=blue;
  91.         setColors(colors);
  92.         return this;
  93.     }
  94.     public ColorEdit setRed(byte red){return setColorById(red,1);}
  95.     public ColorEdit setGreen(byte green){return setColorById(green,2);}
  96.     public ColorEdit setBlue(byte blue){return setColorById(blue,3);}
  97.     @Deprecated public ColorEdit setAlpha(byte alpha){return setColorById(alpha,0);}
  98.     public int getRed(){return getColorById(1);}
  99.     public int getGreen(){return getColorById(2);}
  100.     public int getBlue(){return getColorById(3);}
  101.     @Deprecated public int getAlpha(){return getColorById(0);}
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement