Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="lib" path="C:/Users/Toshiba/Desktop/OctopusMC/Test Servers/spigot1.8.jar"/>
<classpathentry kind="lib" path="C:/Users/Mauricio/Dropbox/Java/Spigots/spigot_1_8_R3.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
1 change: 1 addition & 0 deletions bin/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/src/
/me/
2 changes: 1 addition & 1 deletion plugin.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
name: ChestGUI
version: 1.0
main: me.elietgm.chestgui
main: me.elietgm.chestgui.ChestCore
19 changes: 7 additions & 12 deletions src/me/elietgm/chestgui/ChestCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,17 @@

import org.bukkit.plugin.java.JavaPlugin;

import me.elietgm.chestgui.api.ItemCreator;
import me.elietgm.chestgui.api.SkullCreator;

public class ChestCore extends JavaPlugin {

//4e879827186621dab1f4e52e9d3936e3bd7eb824//

private static ChestCore instance;
public static ChestCore getInstance() { return instance; }

public static ItemCreator getItemCreator() {return new ItemCreator(); }
public static SkullCreator getSkullCreator() {return new SkullCreator(); }

public static ChestCore getInstance() {
return instance;
}

@Override
public void onEnable() {
instance = this;
instance = this;
}

}
72 changes: 36 additions & 36 deletions src/me/elietgm/chestgui/api/ChestGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,64 +14,64 @@

public class ChestGUI implements Listener {

public Player p;
public Inventory i;
public GUICallback c;
public String playerName;
public Inventory inventory; // Try to use descriptive names!
public GUICallback guiCallback;
public boolean aC;
public boolean iO;

private boolean iO; // Lets make this field private cause its not
// configurable!

public ChestGUI iN;

public ChestGUI(Player player, int size, String title, boolean allowClick, GUICallback callback) {
this.p = player;
this.i = Bukkit.createInventory(null, size, title);
this.c = callback;
playerName = player.getName(); // Not need to store the Player object!
this.inventory = Bukkit.createInventory(null, size, title);
this.guiCallback = callback;
this.aC = allowClick;
this.iO = true;
this.iN = this;
c.callback(this, GUICallback.CallbackType.INIT, null);
p.openInventory(i);

guiCallback.firstCall(this, GUICallback.CallbackType.INIT, null);

player.openInventory(inventory);

ChestCore.getInstance().getServer().getPluginManager().registerEvents(this, ChestCore.getInstance());

new BukkitRunnable() {
public void run() {
new BukkitRunnable() {
public void run() {
if(iO) {
c.onSecond(iN);
} else {
this.cancel();
}
}
}.runTaskTimer(ChestCore.getInstance(), 0, 20L);
if (iO) {
guiCallback.secondCall(iN);
} else {
this.cancel();
}
}
}.runTaskLater(ChestCore.getInstance(), 10L);
}.runTaskTimer(ChestCore.getInstance(), 10L, 20L);
}

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if(event.getWhoClicked().getName() == p.getName()) {
if (event.getWhoClicked().getName().equals(playerName)) { // Always
// compare
// String
// with
// equals
try {
if(!aC) {
if (!aC)
event.setCancelled(true);
}

c.callback(this, GUICallback.CallbackType.CLICK, event.getCurrentItem());

guiCallback.firstCall(this, GUICallback.CallbackType.CLICK, event.getCurrentItem());
} catch (Exception e) {
//Nope
// Nope
}
}
}

@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
if(event.getPlayer().getName() == p.getName()) {
if (event.getPlayer().getName().equals(playerName)) {
HandlerList.unregisterAll(this);
c.callback(this, GUICallback.CallbackType.CLOSE, null);

guiCallback.firstCall(this, GUICallback.CallbackType.CLOSE, null);
}
}
}
4 changes: 2 additions & 2 deletions src/me/elietgm/chestgui/api/GUICallback.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public static enum CallbackType {
CLOSE,
}

public abstract void callback(ChestGUI gui, CallbackType callback, ItemStack item);
public abstract void firstCall(ChestGUI gui, CallbackType callback, ItemStack item);

public abstract void onSecond(ChestGUI gui);
public abstract void secondCall(ChestGUI gui); //More descriptive names?
}
80 changes: 37 additions & 43 deletions src/me/elietgm/chestgui/api/ItemCreator.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package me.elietgm.chestgui.api;

import java.util.ArrayList;
import java.util.List;
import org.bukkit.Color;
import org.bukkit.Material;
Expand All @@ -12,78 +13,71 @@

public class ItemCreator {

public ItemStack createItem(Material type, int amount, int data, String name) {
// ItemStack item = new ItemStack(type, 1, (short) data);
// ItemMeta meta = item.getItemMeta();
//
// item.setAmount(amount);
//
// meta.setDisplayName(Colorizer.color(name));
//
// item.setItemMeta(meta);
// Repeated code!
return createItem(type, amount, data, name, new ArrayList<>());
}

public ItemStack createItem(Material type, int amount, int data, String name, List<String> lore) {
ItemStack item = new ItemStack(type, 1, (short) data);
ItemMeta meta = item.getItemMeta();

item.setAmount(amount);

meta.setDisplayName(Colorizer.color(name));
meta.setLore(Colorizer.colorList(lore));

item.setItemMeta(meta);

return item;
}


public ItemStack createItemPotion(Material type, int amount, int data, String name) {
return createItemPotion(type, amount, data, name, new ArrayList<>());
}

public ItemStack createItemPotion(Material type, int amount, int data, String name, List<String> lore) {
ItemStack item = new ItemStack(type, 1, (short) data);
PotionMeta meta = (PotionMeta) item.getItemMeta();

meta.clearCustomEffects();

item.setAmount(amount);

meta.setDisplayName(Colorizer.color(name));
meta.setLore(Colorizer.colorList(lore));

item.setItemMeta(meta);

return item;
}

public ItemStack createItem(Material type, int amount, int data, String name) {
ItemStack item = new ItemStack(type, 1, (short) data);
ItemMeta meta = item.getItemMeta();

item.setAmount(amount);

meta.setDisplayName(Colorizer.color(name));


item.setItemMeta(meta);

return item;
}

public ItemStack createArmour(Material type, int amount, Color color, String name) {
ItemStack item = new ItemStack(type, 1, (short) 0);
LeatherArmorMeta meta = (LeatherArmorMeta) item.getItemMeta();

item.setAmount(amount);

meta.setDisplayName(Colorizer.color(name));

meta.setColor(color);

item.setItemMeta(meta);

return item;
return createArmour(type, amount, color, name, new ArrayList<>());
}

public ItemStack createArmour(Material type, int amount, Color color, String name, List<String> lore) {
ItemStack item = new ItemStack(type, 1, (short) 0);
LeatherArmorMeta meta = (LeatherArmorMeta) item.getItemMeta();

item.setAmount(amount);

meta.setDisplayName(Colorizer.color(name));

meta.setLore(Colorizer.colorList(lore));

meta.setColor(color);

item.setItemMeta(meta);

return item;
}
}
102 changes: 102 additions & 0 deletions src/me/elietgm/chestgui/api/ItemCreatorBeta.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package me.elietgm.chestgui.api;

import java.util.List;

import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.potion.PotionEffect;

import me.elietgm.chestgui.utils.Colorizer;

public class ItemCreatorBeta {

private Material type = Material.GRASS; // Default values!
private int amount = 1; // Default values!
private int data = 0; // Default values!
private String name;
private String owner; // Support for skulls!? Yes too!
private List<String> lore;
private List<PotionEffect> effects; // Also support for effects!?
private Color color;

public ItemCreatorBeta(Material mat) {
type = mat;
}

public ItemCreatorBeta withType(Material newType) {
type = newType;
return this;
}

public ItemCreatorBeta withName(String newName) { // Can be named
// setCustomName!
name = newName;
return this;
}

public ItemCreatorBeta withAmount(int newAmount) {
amount = newAmount;
return this;
}

public ItemCreatorBeta withData(int newData) {
data = newData;
return this;
}

public ItemCreatorBeta withLore(List<String> newLore) {
lore = newLore;
return this;
}

public ItemCreatorBeta withEffects(List<PotionEffect> newEffects) {
effects = newEffects;
return this;
}

public ItemCreatorBeta withOwner(String newOwner) {
owner = newOwner;
return this;
}

public ItemCreatorBeta withColor(Color newColor) {
color = newColor;
return this;
}

public ItemStack build() {
ItemStack item = new ItemStack(type, amount, (short) data);
ItemMeta im = item.getItemMeta();

if (effects != null && !effects.isEmpty())
if (im instanceof PotionMeta) {
((PotionMeta) im).clearCustomEffects();
effects.forEach(e -> ((PotionMeta) im).addCustomEffect(e, true));
}

if (owner != null && !owner.isEmpty())
if (im instanceof SkullMeta)
((SkullMeta) im).setOwner(owner);

if (color != null)
if (im instanceof LeatherArmorMeta)
((LeatherArmorMeta) im).setColor(color);

if (name != null && !name.isEmpty())
im.setDisplayName(Colorizer.color(name)); // Color just in case!

if (lore != null && !lore.isEmpty())
im.setLore(Colorizer.colorList(lore)); // Color just in case!

item.setItemMeta(im);

return item;

}

}
Loading