Skip to content

Commit

Permalink
Merge pull request #74 from jb-aero/pullable
Browse files Browse the repository at this point in the history
Added Book and Skull metas to the ObGen and fixed set_pinv removing ench...
  • Loading branch information
LadyCailin committed Jan 31, 2013
2 parents 6829a9d + 80dd28d commit c1e36bc
Show file tree
Hide file tree
Showing 13 changed files with 307 additions and 21 deletions.
2 changes: 2 additions & 0 deletions src/main/java/com/laytonsmith/abstraction/Convertor.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ public interface Convertor {
public int SetFutureRepeater(long ms, long initialDelay, Runnable r);

public MCEntity GetCorrectEntity(MCEntity e);

public MCItemMeta GetCorrectMeta(MCItemMeta im);

/**
* Gets the inventory of the specified entity, or null if the entity id
Expand Down
26 changes: 26 additions & 0 deletions src/main/java/com/laytonsmith/abstraction/MCBookMeta.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.laytonsmith.abstraction;

import java.util.List;

/**
*
* @author jb_aero
*/
public interface MCBookMeta extends MCItemMeta {

public boolean hasTitle();
public boolean hasAuthor();
public boolean hasPages();

public String getTitle();
public String getAuthor();
public List<String> getPages();
public int getPageCount();

public void addPage(String... pages);

public boolean setTitle(String title);
public void setAuthor(String author);
public void setPages(List<String> pages);
public void setPages(String... pages);
}
13 changes: 13 additions & 0 deletions src/main/java/com/laytonsmith/abstraction/MCRepairable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.laytonsmith.abstraction;

/**
*
* @author jb_aero
*/
public interface MCRepairable {

public boolean hasRepairCost();
public int getRepairCost();
public void setRepairCost(int cost);

}
13 changes: 13 additions & 0 deletions src/main/java/com/laytonsmith/abstraction/MCSkullMeta.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.laytonsmith.abstraction;

/**
*
* @author jb_aero
*/
public interface MCSkullMeta extends MCItemMeta {

public boolean hasOwner();
public String getOwner();
public boolean setOwner(String owner);

}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.bukkit.event.Listener;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.*;
import org.bukkit.material.MaterialData;

/**
Expand Down Expand Up @@ -241,6 +242,33 @@ public MCEntity GetCorrectEntity(MCEntity e) {
return BukkitConvertor.BukkitGetCorrectEntity(be);
}

public MCItemMeta GetCorrectMeta(MCItemMeta im) {
ItemMeta bim = ((BukkitMCItemMeta) im).asItemMeta();
return BukkitConvertor.BukkitGetCorrectMeta(bim);
}

public static MCItemMeta BukkitGetCorrectMeta(ItemMeta im) {
if (im instanceof BookMeta) {
return new BukkitMCBookMeta((BookMeta) im);
}
if (im instanceof EnchantmentStorageMeta) {

}
if (im instanceof LeatherArmorMeta) {
return new BukkitMCLeatherArmorMeta((LeatherArmorMeta) im);
}
if (im instanceof PotionMeta) {

}
if (im instanceof Repairable) {

}
if (im instanceof SkullMeta) {
return new BukkitMCSkullMeta((SkullMeta) im);
}
return new BukkitMCItemMeta(im);
}

public MCInventory GetEntityInventory(int entityID) {
Entity entity = null;
outer: for(World w : Bukkit.getWorlds()){
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.laytonsmith.abstraction.bukkit;

import java.util.List;

import org.bukkit.inventory.meta.BookMeta;
import com.laytonsmith.abstraction.AbstractionObject;
import com.laytonsmith.abstraction.MCBookMeta;

public class BukkitMCBookMeta extends BukkitMCItemMeta implements MCBookMeta {

BookMeta bm;
public BukkitMCBookMeta(BookMeta im) {
super(im);
this.bm = im;
}

public BukkitMCBookMeta(AbstractionObject o) {
super(o);
this.bm = (BookMeta) o;
}

public boolean hasTitle() {
return bm.hasTitle();
}

public boolean hasAuthor() {
return bm.hasAuthor();
}

public boolean hasPages() {
return bm.hasPages();
}

public String getTitle() {
return bm.getTitle();
}

public String getAuthor() {
return bm.getAuthor();
}

public List<String> getPages() {
return bm.getPages();
}

public int getPageCount() {
return bm.getPageCount();
}

public void addPage(String... pages) {
bm.addPage(pages);
}

public boolean setTitle(String title) {
return bm.setTitle(title);
}

public void setAuthor(String author) {
bm.setAuthor(author);
}

public void setPages(List<String> pages) {
bm.setPages(pages);
}

public void setPages(String... pages) {
bm.setPages(pages);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import org.bukkit.inventory.ItemFactory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;

import com.laytonsmith.abstraction.MCColor;
import com.laytonsmith.abstraction.MCItemFactory;
import com.laytonsmith.abstraction.MCItemMeta;
Expand All @@ -26,13 +24,13 @@ public BukkitMCItemFactory(ItemFactory itemFactory) {
public MCItemMeta asMetaFor(MCItemMeta meta, MCItemStack stack) {
ItemMeta bmeta = ((BukkitMCItemMeta) meta).asItemMeta();
ItemStack bstack = ((BukkitMCItemStack) stack).asItemStack();
return new BukkitMCItemMeta(f.asMetaFor(bmeta, bstack));
return BukkitConvertor.BukkitGetCorrectMeta(f.asMetaFor(bmeta, bstack));
}

public MCItemMeta asMetaFor(MCItemMeta meta, MCMaterial material) {
ItemMeta bmeta = ((BukkitMCItemMeta) meta).asItemMeta();
Material bmat = Material.getMaterial(material.getType());
return new BukkitMCItemMeta(f.asMetaFor(bmeta, bmat));
return BukkitConvertor.BukkitGetCorrectMeta(f.asMetaFor(bmeta, bmat));
}

public boolean equals(MCItemMeta meta1, MCItemMeta meta2) {
Expand All @@ -45,10 +43,7 @@ public MCColor getDefaultLeatherColor() {

public MCItemMeta getItemMeta(MCMaterial material) {
ItemMeta im = f.getItemMeta(Material.getMaterial(material.getType()));
if (im instanceof LeatherArmorMeta) {
return new BukkitMCLeatherArmorMeta((LeatherArmorMeta) im);
}
return new BukkitMCItemMeta(im);
return BukkitConvertor.BukkitGetCorrectMeta(im);
}

public boolean isApplicable(MCItemMeta meta, MCItemStack stack) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
import java.util.Map;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.material.MaterialData;

/**
Expand Down Expand Up @@ -163,12 +161,7 @@ public boolean hasItemMeta() {
}

public MCItemMeta getItemMeta() {
ItemMeta im = is.getItemMeta();
if(im instanceof LeatherArmorMeta){
return new BukkitMCLeatherArmorMeta((LeatherArmorMeta)im);
} else {
return new BukkitMCItemMeta(im);
}
return BukkitConvertor.BukkitGetCorrectMeta(is.getItemMeta());
}

public void setItemMeta(MCItemMeta im) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.laytonsmith.abstraction.bukkit;

import org.bukkit.inventory.meta.Repairable;

import com.laytonsmith.abstraction.AbstractionObject;
import com.laytonsmith.abstraction.MCRepairable;

/**
*
* @author jb_aero
*/
public class BukkitMCRepairable implements MCRepairable {

Repairable r;
public BukkitMCRepairable(Repairable rep) {
this.r = rep;
}

public BukkitMCRepairable(AbstractionObject o) {
this.r = (Repairable) o;
}

public boolean hasRepairCost() {
return r.hasRepairCost();
}

public int getRepairCost() {
return r.getRepairCost();
}

public void setRepairCost(int cost) {
r.setRepairCost(cost);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.laytonsmith.abstraction.bukkit;

import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;

import com.laytonsmith.abstraction.AbstractionObject;
import com.laytonsmith.abstraction.MCSkullMeta;

public class BukkitMCSkullMeta extends BukkitMCItemMeta implements MCSkullMeta {

SkullMeta sm;
public BukkitMCSkullMeta(SkullMeta im) {
super(im);
this.sm = im;
}

public BukkitMCSkullMeta(AbstractionObject o) {
super(o);
this.sm = (SkullMeta) o;
}

public boolean hasOwner() {
return sm.hasOwner();
}

public String getOwner() {
return sm.getOwner();
}

public boolean setOwner(String owner) {
return sm.setOwner(owner);
}

}
Loading

0 comments on commit c1e36bc

Please sign in to comment.