mirror of
https://github.com/Zrips/Jobs.git
synced 2024-11-29 14:05:25 +01:00
And maybe like this, BP update and new item recognition method from CMI
This commit is contained in:
parent
eda39ed0d3
commit
d72f7d5f91
208
src/main/java/com/gamingmesh/jobs/CmiItems/CMIItem.java
Normal file
208
src/main/java/com/gamingmesh/jobs/CmiItems/CMIItem.java
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
package com.gamingmesh.jobs.CmiItems;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import com.gamingmesh.jobs.Jobs;
|
||||||
|
import com.gamingmesh.jobs.stuff.Util;
|
||||||
|
|
||||||
|
public class CMIItem {
|
||||||
|
|
||||||
|
private int id = 0;
|
||||||
|
private short data = 0;
|
||||||
|
private int amount = 0;
|
||||||
|
|
||||||
|
private String bukkitName = null;
|
||||||
|
private Material material = null;
|
||||||
|
private ItemStack item;
|
||||||
|
|
||||||
|
public CMIItem(Material material) {
|
||||||
|
this.material = material;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CMIItem clone() {
|
||||||
|
CMIItem cm = new CMIItem(material);
|
||||||
|
cm.setId(id);
|
||||||
|
cm.setData(data);
|
||||||
|
cm.setBukkitName(bukkitName);
|
||||||
|
cm.setItemStack(this.item);
|
||||||
|
return cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTool() {
|
||||||
|
return getMaxDurability() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getDurability() {
|
||||||
|
return this.getItemStack().getDurability();
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getMaxDurability() {
|
||||||
|
return this.material.getMaxDurability();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(short data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem setDisplayName(String name) {
|
||||||
|
if (name == null)
|
||||||
|
return this;
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name));
|
||||||
|
this.getItemStack().setItemMeta(meta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisplayName() {
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
return meta.getDisplayName() == null ? this.getRealName() : meta.getDisplayName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem addLore(String string) {
|
||||||
|
if (string == null)
|
||||||
|
return this;
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
List<String> lore = meta.getLore();
|
||||||
|
if (lore == null)
|
||||||
|
lore = new ArrayList<String>();
|
||||||
|
lore.add(ChatColor.translateAlternateColorCodes('&', string));
|
||||||
|
meta.setLore(lore);
|
||||||
|
this.getItemStack().setItemMeta(meta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem setLore(List<String> lore) {
|
||||||
|
if (lore == null)
|
||||||
|
return this;
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
List<String> t = new ArrayList<String>();
|
||||||
|
for (String one : lore) {
|
||||||
|
t.add(ChatColor.translateAlternateColorCodes('&', one));
|
||||||
|
}
|
||||||
|
meta.setLore(t);
|
||||||
|
this.getItemStack().setItemMeta(meta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem addEnchant(Enchantment enchant, Integer level) {
|
||||||
|
if (enchant == null)
|
||||||
|
return this;
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
meta.addEnchant(enchant, level, true);
|
||||||
|
this.getItemStack().setItemMeta(meta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem addEnchant(HashMap<Enchantment, Integer> enchants) {
|
||||||
|
if (enchants == null || enchants.isEmpty())
|
||||||
|
return this;
|
||||||
|
for (Entry<Enchantment, Integer> oneEnch : enchants.entrySet()) {
|
||||||
|
this.addEnchant(oneEnch.getKey(), oneEnch.getValue());
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem clearEnchants() {
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
meta.getEnchants().clear();
|
||||||
|
this.getItemStack().setItemMeta(meta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getLore() {
|
||||||
|
ItemMeta meta = this.getItemStack().getItemMeta();
|
||||||
|
return meta.getLore();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRealName() {
|
||||||
|
return Jobs.getItemManager().getRealName(this, true).getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBukkitName() {
|
||||||
|
return bukkitName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBukkitName(String bukkitName) {
|
||||||
|
this.bukkitName = bukkitName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Material getMaterial() {
|
||||||
|
return material;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterial(Material material) {
|
||||||
|
this.material = material;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getItemStack() {
|
||||||
|
if (item == null) {
|
||||||
|
this.item = new ItemStack(material, this.amount == 0 ? 1 : this.amount, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.item.getType() == Material.MOB_SPAWNER) {
|
||||||
|
if (data == 0)
|
||||||
|
data = 90;
|
||||||
|
EntityType type = EntityType.fromId(data);
|
||||||
|
if (type != null)
|
||||||
|
this.item = Util.setEntityType(this.item, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CMIItem setItemStack(ItemStack item) {
|
||||||
|
this.item = item;
|
||||||
|
if (item != null) {
|
||||||
|
this.amount = item.getAmount();
|
||||||
|
if ((material.isBlock() || material.isSolid()))
|
||||||
|
data = item.getData().getData();
|
||||||
|
if (item.getType().getMaxDurability() - item.getDurability() < 0)
|
||||||
|
data = item.getDurability();
|
||||||
|
if (item.getType() == Material.MOB_SPAWNER)
|
||||||
|
data = Util.getEntityType(item).getTypeId();
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmount(int amount) {
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSimilar(ItemStack item) {
|
||||||
|
return isSimilar(Jobs.getItemManager().getItem(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSimilar(CMIItem item) {
|
||||||
|
if (item == null)
|
||||||
|
return false;
|
||||||
|
return this.getMaterial().equals(item.material) && this.getData() == item.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
1090
src/main/java/com/gamingmesh/jobs/CmiItems/ItemManager.java
Normal file
1090
src/main/java/com/gamingmesh/jobs/CmiItems/ItemManager.java
Normal file
File diff suppressed because it is too large
Load Diff
@ -39,6 +39,7 @@ import org.bukkit.entity.LivingEntity;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import com.gamingmesh.jobs.CmiItems.ItemManager;
|
||||||
import com.gamingmesh.jobs.Gui.GuiManager;
|
import com.gamingmesh.jobs.Gui.GuiManager;
|
||||||
import com.gamingmesh.jobs.MyPet.MyPetManager;
|
import com.gamingmesh.jobs.MyPet.MyPetManager;
|
||||||
import com.gamingmesh.jobs.MythicMobs.MythicMobInterface;
|
import com.gamingmesh.jobs.MythicMobs.MythicMobInterface;
|
||||||
@ -136,6 +137,8 @@ public class Jobs extends JavaPlugin {
|
|||||||
private static PermissionHandler permissionHandler;
|
private static PermissionHandler permissionHandler;
|
||||||
private static PermissionManager permissionManager;
|
private static PermissionManager permissionManager;
|
||||||
|
|
||||||
|
private static ItemManager itemManager;
|
||||||
|
|
||||||
public static BufferedPaymentThread paymentThread = null;
|
public static BufferedPaymentThread paymentThread = null;
|
||||||
private static DatabaseSaveThread saveTask = null;
|
private static DatabaseSaveThread saveTask = null;
|
||||||
|
|
||||||
@ -673,6 +676,10 @@ public class Jobs extends JavaPlugin {
|
|||||||
return permissionManager;
|
return permissionManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ItemManager getItemManager() {
|
||||||
|
return itemManager;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the economy handler
|
* Sets the economy handler
|
||||||
* @param eco - the economy handler
|
* @param eco - the economy handler
|
||||||
@ -704,6 +711,8 @@ public class Jobs extends JavaPlugin {
|
|||||||
versionCheckManager = new VersionChecker(this);
|
versionCheckManager = new VersionChecker(this);
|
||||||
version = versionCheckManager.getVersion().getShortVersion();
|
version = versionCheckManager.getVersion().getShortVersion();
|
||||||
|
|
||||||
|
itemManager = new ItemManager(this);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Class<?> nmsClass;
|
Class<?> nmsClass;
|
||||||
nmsClass = Class.forName("com.gamingmesh.jobs.nmsUtil." + version);
|
nmsClass = Class.forName("com.gamingmesh.jobs.nmsUtil." + version);
|
||||||
@ -1061,62 +1070,66 @@ public class Jobs extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isBpOk(Player player, ActionInfo info, Block block, boolean inform) {
|
private static boolean isBpOk(Player player, ActionInfo info, Block block, boolean inform) {
|
||||||
if ((block != null) && (getGCManager().useBlockProtection)) {
|
if (block == null || !getGCManager().useBlockProtection)
|
||||||
|
return true;
|
||||||
|
|
||||||
if (info.getType() == ActionType.BREAK) {
|
if (info.getType() == ActionType.BREAK) {
|
||||||
BlockProtection bp = getBpManager().getBp(block.getLocation());
|
BlockProtection bp = getBpManager().getBp(block.getLocation());
|
||||||
if (bp != null) {
|
if (bp != null) {
|
||||||
Long time = bp.getTime();
|
Long time = bp.getTime();
|
||||||
|
Integer cd = getBpManager().getBlockDelayTime(block);
|
||||||
|
|
||||||
if (time == -1L) {
|
if (time == -1L) {
|
||||||
|
getBpManager().add(block, cd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Integer cd = getBpManager().getBlockDelayTime(block);
|
|
||||||
if ((time < System.currentTimeMillis()) && (bp.getAction() != DBAction.DELETE)) {
|
if ((time < System.currentTimeMillis()) && (bp.getAction() != DBAction.DELETE)) {
|
||||||
getBpManager().remove(block);
|
getBpManager().remove(block);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (((time > System.currentTimeMillis()) || (bp.isPaid().booleanValue())) && (bp.getAction() != DBAction.DELETE)) {
|
if (time > System.currentTimeMillis() || bp.isPaid() && bp.getAction() != DBAction.DELETE) {
|
||||||
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
||||||
if (inform) {
|
if (inform) {
|
||||||
getActionBar().send(player, getLanguage().getMessage("message.blocktimer", new Object[] { "[time]", Integer.valueOf(sec) }));
|
getActionBar().send(player, getLanguage().getMessage("message.blocktimer", "[time]", sec));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
getBpManager().add(block, cd);
|
getBpManager().add(block, cd);
|
||||||
if ((cd == null) &&
|
if (cd == 0 && getGCManager().useGlobalTimer) {
|
||||||
(getGCManager().useGlobalTimer)) {
|
getBpManager().add(block, getGCManager().globalblocktimer);
|
||||||
getBpManager().add(block, Long.valueOf(System.currentTimeMillis() + getGCManager().globalblocktimer * 1000));
|
|
||||||
}
|
}
|
||||||
} else if (getGCManager().useGlobalTimer) {
|
} else if (getGCManager().useGlobalTimer) {
|
||||||
getBpManager().add(block, Long.valueOf(System.currentTimeMillis() + getGCManager().globalblocktimer * 1000));
|
getBpManager().add(block, getGCManager().globalblocktimer);
|
||||||
}
|
}
|
||||||
} else if (info.getType() == ActionType.PLACE) {
|
} else if (info.getType() == ActionType.PLACE) {
|
||||||
BlockProtection bp = getBpManager().getBp(block.getLocation());
|
BlockProtection bp = getBpManager().getBp(block.getLocation());
|
||||||
if (bp != null) {
|
if (bp != null) {
|
||||||
Long time = bp.getTime();
|
Long time = bp.getTime();
|
||||||
|
Integer cd = getBpManager().getBlockDelayTime(block);
|
||||||
|
|
||||||
if (time != -1L) {
|
if (time != -1L) {
|
||||||
if ((time < System.currentTimeMillis()) && (bp.getAction() != DBAction.DELETE)) {
|
if (time < System.currentTimeMillis() && bp.getAction() != DBAction.DELETE) {
|
||||||
getBpManager().add(block, getBpManager().getBlockDelayTime(block));
|
getBpManager().add(block, cd);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (((time > System.currentTimeMillis()) || (bp.isPaid().booleanValue())) && (bp.getAction() != DBAction.DELETE)) {
|
if (time > System.currentTimeMillis() || bp.isPaid() && bp.getAction() != DBAction.DELETE) {
|
||||||
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
||||||
|
|
||||||
Debug.D((time - System.currentTimeMillis()) + " " + bp.isPaid().booleanValue() + bp.getAction());
|
|
||||||
|
|
||||||
if (inform) {
|
if (inform) {
|
||||||
getActionBar().send(player, getLanguage().getMessage("message.blocktimer", new Object[] { "[time]", Integer.valueOf(sec) }));
|
getActionBar().send(player, getLanguage().getMessage("message.blocktimer", "[time]", sec));
|
||||||
}
|
}
|
||||||
|
getBpManager().add(block, cd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if ((bp.isPaid().booleanValue()) &&
|
} else if (bp.isPaid().booleanValue() && bp.getTime() == -1L && cd != null && cd == -1) {
|
||||||
(bp.getTime() == -1L) && (getBpManager().getBlockDelayTime(block) != null) && (getBpManager().getBlockDelayTime(block).intValue() == -1)) {
|
getBpManager().add(block, cd);
|
||||||
return false;
|
return false;
|
||||||
}
|
} else
|
||||||
|
getBpManager().add(block, cd);
|
||||||
} else {
|
} else {
|
||||||
getBpManager().add(block, getBpManager().getBlockDelayTime(block));
|
getBpManager().add(block, getBpManager().getBlockDelayTime(block));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,9 @@ public class bp implements Cmd {
|
|||||||
sender.sendMessage(Jobs.getLanguage().getMessage("general.error.ingame"));
|
sender.sendMessage(Jobs.getLanguage().getMessage("general.error.ingame"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
boolean all = false;
|
||||||
|
if (args.length > 0 && args[0].equalsIgnoreCase("-a"))
|
||||||
|
all = true;
|
||||||
|
|
||||||
final Player player = (Player) sender;
|
final Player player = (Player) sender;
|
||||||
|
|
||||||
@ -40,14 +43,18 @@ public class bp implements Cmd {
|
|||||||
BlockProtection bp = Jobs.getBpManager().getBp(l);
|
BlockProtection bp = Jobs.getBpManager().getBp(l);
|
||||||
if (bp != null) {
|
if (bp != null) {
|
||||||
Long time = bp.getTime();
|
Long time = bp.getTime();
|
||||||
|
if (!all) {
|
||||||
if (bp.getAction() == DBAction.DELETE)
|
if (bp.getAction() == DBAction.DELETE)
|
||||||
continue;
|
continue;
|
||||||
if (time != -1 && time < System.currentTimeMillis()) {
|
if (time != -1 && time < System.currentTimeMillis()) {
|
||||||
Jobs.getBpManager().remove(l);
|
Jobs.getBpManager().remove(l);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
changedBlocks.add(l.getBlock());
|
changedBlocks.add(l.getBlock());
|
||||||
if (time == -1)
|
if (bp.getAction() == DBAction.DELETE)
|
||||||
|
player.sendBlockChange(l, Material.STAINED_GLASS, (byte) 14);
|
||||||
|
else if (time == -1)
|
||||||
player.sendBlockChange(l, Material.STAINED_GLASS, (byte) 15);
|
player.sendBlockChange(l, Material.STAINED_GLASS, (byte) 15);
|
||||||
else
|
else
|
||||||
player.sendBlockChange(l, Material.STAINED_GLASS, (byte) 0);
|
player.sendBlockChange(l, Material.STAINED_GLASS, (byte) 0);
|
||||||
|
@ -38,40 +38,48 @@ public class BlockProtectionManager {
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(Block block, boolean paid) {
|
// public void add(Block block, boolean paid) {
|
||||||
add(block, -1L, paid);
|
// add(block, -1L, paid);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// public void add(Block block) {
|
||||||
|
// add(block, -1L, true);
|
||||||
|
// }
|
||||||
|
|
||||||
public void add(Block block) {
|
// public void add(Block block, Long time, boolean paid) {
|
||||||
add(block, -1L, true);
|
// add(block.getLocation(), time, paid);
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void add(Block block, Long time, boolean paid) {
|
|
||||||
add(block.getLocation(), time, paid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void add(Block block, Integer cd) {
|
public void add(Block block, Integer cd) {
|
||||||
add(block, cd, true);
|
add(block, cd, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(Block block, Integer cd, boolean paid) {
|
public void add(Block block, Integer cd, boolean paid) {
|
||||||
|
add(block.getLocation(), cd, paid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(Location loc, Integer cd) {
|
||||||
|
add(loc, cd, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(Location loc, Integer cd, boolean paid) {
|
||||||
if (cd == null)
|
if (cd == null)
|
||||||
return;
|
return;
|
||||||
if (cd != -1)
|
if (cd != -1)
|
||||||
add(block, System.currentTimeMillis() + (cd * 1000), paid);
|
addP(loc, System.currentTimeMillis() + (cd * 1000), paid);
|
||||||
else
|
else
|
||||||
add(block, paid);
|
addP(loc, -1L, paid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(Block block, Long time) {
|
// public void add(Block block, Long time) {
|
||||||
add(block.getLocation(), time, true);
|
// add(block.getLocation(), time, true);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// public void add(Location loc, Long time) {
|
||||||
|
// add(loc, time, true);
|
||||||
|
// }
|
||||||
|
|
||||||
public void add(Location loc, Long time) {
|
public BlockProtection addP(Location loc, Long time, boolean paid) {
|
||||||
add(loc, time, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public BlockProtection add(Location loc, Long time, boolean paid) {
|
|
||||||
String v = loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ();
|
String v = loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ();
|
||||||
HashMap<String, HashMap<String, HashMap<String, BlockProtection>>> regions = map.get(loc.getWorld());
|
HashMap<String, HashMap<String, HashMap<String, BlockProtection>>> regions = map.get(loc.getWorld());
|
||||||
if (regions == null)
|
if (regions == null)
|
||||||
@ -145,14 +153,8 @@ public class BlockProtectionManager {
|
|||||||
return null;
|
return null;
|
||||||
String v = loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ();
|
String v = loc.getBlockX() + ":" + loc.getBlockY() + ":" + loc.getBlockZ();
|
||||||
BlockProtection Bp = chunk.get(v);
|
BlockProtection Bp = chunk.get(v);
|
||||||
|
|
||||||
if (Bp == null)
|
if (Bp == null)
|
||||||
return null;
|
return null;
|
||||||
Debug.D("by " + v);
|
|
||||||
Debug.D("got " + Bp.getPos().toString());
|
|
||||||
for (Entry<String, BlockProtection> one : chunk.entrySet()) {
|
|
||||||
Debug.D("g " + one.getKey());
|
|
||||||
}
|
|
||||||
return Bp;
|
return Bp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +173,8 @@ public class BlockProtectionManager {
|
|||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public Integer getBlockDelayTime(Block block) {
|
public Integer getBlockDelayTime(Block block) {
|
||||||
return Jobs.getRestrictedBlockManager().restrictedBlocksTimer.get(block.getTypeId());
|
Integer c = Jobs.getRestrictedBlockManager().restrictedBlocksTimer.get(block.getTypeId());
|
||||||
|
return c == null ? 0 : c;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
|
@ -73,6 +73,7 @@ public class LanguageManager {
|
|||||||
|
|
||||||
c.get("economy.error.nomoney", "&cSorry, no money left in national bank!");
|
c.get("economy.error.nomoney", "&cSorry, no money left in national bank!");
|
||||||
c.get("limitedItem.error.levelup", "&cYou need to levelup in [jobname] to use this item!");
|
c.get("limitedItem.error.levelup", "&cYou need to levelup in [jobname] to use this item!");
|
||||||
|
c.get("general.Spawner", "&r[type] Spawner");
|
||||||
c.get("general.info.toplineseparator", "&7*********************** &6%playername% &7***********************");
|
c.get("general.info.toplineseparator", "&7*********************** &6%playername% &7***********************");
|
||||||
c.get("general.info.separator", "&7*******************************************************");
|
c.get("general.info.separator", "&7*******************************************************");
|
||||||
c.get("general.info.time.day", "&e%days% &6days ");
|
c.get("general.info.time.day", "&e%days% &6days ");
|
||||||
|
@ -6,10 +6,10 @@ import java.util.HashMap;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
import com.gamingmesh.jobs.Jobs;
|
import com.gamingmesh.jobs.Jobs;
|
||||||
|
import com.gamingmesh.jobs.CmiItems.CMIItem;
|
||||||
import com.gamingmesh.jobs.container.LocaleReader;
|
import com.gamingmesh.jobs.container.LocaleReader;
|
||||||
import com.gamingmesh.jobs.stuff.ChatColor;
|
import com.gamingmesh.jobs.stuff.ChatColor;
|
||||||
|
|
||||||
@ -28,7 +28,6 @@ public class RestrictedBlockManager {
|
|||||||
*
|
*
|
||||||
* loads from Jobs/restrictedAreas.yml
|
* loads from Jobs/restrictedAreas.yml
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public synchronized void load() {
|
public synchronized void load() {
|
||||||
File f = new File(plugin.getDataFolder(), "restrictedBlocks.yml");
|
File f = new File(plugin.getDataFolder(), "restrictedBlocks.yml");
|
||||||
YamlConfiguration config = YamlConfiguration.loadConfiguration(f);
|
YamlConfiguration config = YamlConfiguration.loadConfiguration(f);
|
||||||
@ -151,7 +150,6 @@ public class RestrictedBlockManager {
|
|||||||
c.getC().addDefault("blocksTimer.emeraldore.cd", -1);
|
c.getC().addDefault("blocksTimer.emeraldore.cd", -1);
|
||||||
c.getC().addDefault("blocksTimer.quartzore.id", "quartzore");
|
c.getC().addDefault("blocksTimer.quartzore.id", "quartzore");
|
||||||
c.getC().addDefault("blocksTimer.quartzore.cd", -1);
|
c.getC().addDefault("blocksTimer.quartzore.cd", -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.getC().isConfigurationSection("blocksTimer")) {
|
if (c.getC().isConfigurationSection("blocksTimer")) {
|
||||||
@ -159,12 +157,12 @@ public class RestrictedBlockManager {
|
|||||||
for (String one : lss) {
|
for (String one : lss) {
|
||||||
if (((c.getC().isString("blocksTimer." + one + ".id")) || (c.getC().isInt("blocksTimer." + one + ".id"))) && (c.getC().isInt("blocksTimer." + one
|
if (((c.getC().isString("blocksTimer." + one + ".id")) || (c.getC().isInt("blocksTimer." + one + ".id"))) && (c.getC().isInt("blocksTimer." + one
|
||||||
+ ".cd"))) {
|
+ ".cd"))) {
|
||||||
Material mat = getMaterial(c.getC().getString("blocksTimer." + one + ".id"));
|
CMIItem cm = Jobs.getItemManager().getItem(c.getC().getString("blocksTimer." + one + ".id"));
|
||||||
if ((mat == null) || (!mat.isBlock())) {
|
if ((cm == null) || (!cm.getMaterial().isBlock())) {
|
||||||
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[Jobs] Your defined (" + c.getC().getString(new StringBuilder("blocksTimer.").append(one)
|
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[Jobs] Your defined (" + c.getC().getString(new StringBuilder("blocksTimer.").append(one)
|
||||||
.append(".id").toString()) + ") protected block id/name is not correct!");
|
.append(".id").toString()) + ") protected block id/name is not correct!");
|
||||||
} else {
|
} else {
|
||||||
this.restrictedBlocksTimer.put(mat.getId(), c.getC().getInt("blocksTimer." + one + ".cd"));
|
this.restrictedBlocksTimer.put(cm.getId(), c.getC().getInt("blocksTimer." + one + ".cd"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,29 +176,4 @@ public class RestrictedBlockManager {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
private static Material getMaterial(String id) {
|
|
||||||
id = id.replace("_", "").replace(" ", "");
|
|
||||||
Material material = null;
|
|
||||||
|
|
||||||
for (Material one : Material.values()) {
|
|
||||||
if (one.name().replace("_", "").equalsIgnoreCase(id)) {
|
|
||||||
material = one;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (material == null) {
|
|
||||||
Integer matId = null;
|
|
||||||
try {
|
|
||||||
matId = Integer.valueOf(id);
|
|
||||||
} catch (NumberFormatException localNumberFormatException) {
|
|
||||||
}
|
|
||||||
if (matId != null) {
|
|
||||||
material = Material.getMaterial(matId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return material;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1263,7 +1263,7 @@ public abstract class JobsDAO {
|
|||||||
int z = res.getInt("z");
|
int z = res.getInt("z");
|
||||||
long resets = res.getLong("resets");
|
long resets = res.getLong("resets");
|
||||||
Location loc = new Location(world, x, y, z);
|
Location loc = new Location(world, x, y, z);
|
||||||
BlockProtection bp = Jobs.getBpManager().add(loc, resets, true);
|
BlockProtection bp = Jobs.getBpManager().addP(loc, resets, true);
|
||||||
bp.setId(id);
|
bp.setId(id);
|
||||||
long t = System.currentTimeMillis();
|
long t = System.currentTimeMillis();
|
||||||
bp.setRecorded(res.getLong("recorded"));
|
bp.setRecorded(res.getLong("recorded"));
|
||||||
|
@ -44,13 +44,14 @@ public class PistonProtectionListener implements Listener {
|
|||||||
|
|
||||||
Long bp = Jobs.getBpManager().getTime(oldLoc);
|
Long bp = Jobs.getBpManager().getTime(oldLoc);
|
||||||
if (bp != null) {
|
if (bp != null) {
|
||||||
Jobs.getBpManager().add(newLoc, bp);
|
Jobs.getBpManager().addP(newLoc, bp, true);
|
||||||
|
Jobs.getBpManager().remove(oldLoc);
|
||||||
} else {
|
} else {
|
||||||
Integer cd = Jobs.getBpManager().getBlockDelayTime(one);
|
Integer cd = Jobs.getBpManager().getBlockDelayTime(one);
|
||||||
if (cd != null)
|
if (cd != null)
|
||||||
Jobs.getBpManager().add(newLoc, System.currentTimeMillis() + (cd * 1000));
|
Jobs.getBpManager().add(newLoc, cd);
|
||||||
else if (Jobs.getGCManager().useGlobalTimer)
|
else if (Jobs.getGCManager().useGlobalTimer)
|
||||||
Jobs.getBpManager().add(newLoc, System.currentTimeMillis() + (Jobs.getGCManager().globalblocktimer * 1000));
|
Jobs.getBpManager().add(newLoc, Jobs.getGCManager().globalblocktimer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,13 +79,14 @@ public class PistonProtectionListener implements Listener {
|
|||||||
Location newLoc = oldLoc.clone().add(x, y, z);
|
Location newLoc = oldLoc.clone().add(x, y, z);
|
||||||
Long bp = Jobs.getBpManager().getTime(oldLoc);
|
Long bp = Jobs.getBpManager().getTime(oldLoc);
|
||||||
if (bp != null) {
|
if (bp != null) {
|
||||||
Jobs.getBpManager().add(newLoc, bp);
|
Jobs.getBpManager().addP(newLoc, bp, true);
|
||||||
|
Jobs.getBpManager().remove(oldLoc);
|
||||||
} else {
|
} else {
|
||||||
Integer cd = Jobs.getBpManager().getBlockDelayTime(one);
|
Integer cd = Jobs.getBpManager().getBlockDelayTime(one);
|
||||||
if (cd != null)
|
if (cd != null)
|
||||||
Jobs.getBpManager().add(newLoc, System.currentTimeMillis() + (cd * 1000));
|
Jobs.getBpManager().add(newLoc, cd);
|
||||||
else if (Jobs.getGCManager().useGlobalTimer)
|
else if (Jobs.getGCManager().useGlobalTimer)
|
||||||
Jobs.getBpManager().add(newLoc, System.currentTimeMillis() + (Jobs.getGCManager().globalblocktimer * 1000));
|
Jobs.getBpManager().add(newLoc, Jobs.getGCManager().globalblocktimer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
56
src/main/java/com/gamingmesh/jobs/stuff/Util.java
Normal file
56
src/main/java/com/gamingmesh/jobs/stuff/Util.java
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package com.gamingmesh.jobs.stuff;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.block.CreatureSpawner;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.BlockStateMeta;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import com.gamingmesh.jobs.Jobs;
|
||||||
|
|
||||||
|
public class Util {
|
||||||
|
|
||||||
|
public Util() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public static ItemStack setEntityType(ItemStack is, EntityType type) throws IllegalArgumentException {
|
||||||
|
boolean useMeta;
|
||||||
|
try {
|
||||||
|
ItemStack testis = new ItemStack(Material.MOB_SPAWNER, 1);
|
||||||
|
ItemMeta meta = testis.getItemMeta();
|
||||||
|
useMeta = meta instanceof BlockStateMeta;
|
||||||
|
} catch (Exception e) {
|
||||||
|
useMeta = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useMeta) {
|
||||||
|
BlockStateMeta bsm = (BlockStateMeta) is.getItemMeta();
|
||||||
|
BlockState bs = bsm.getBlockState();
|
||||||
|
((CreatureSpawner) bs).setSpawnedType(type);
|
||||||
|
((CreatureSpawner) bs).setCreatureTypeByName(type.name());
|
||||||
|
bsm.setBlockState(bs);
|
||||||
|
|
||||||
|
String cap = type.name().toLowerCase().replace("_", " ").substring(0, 1).toUpperCase() + type.name().toLowerCase().replace("_", " ").substring(1);
|
||||||
|
bsm.setDisplayName(Jobs.getLanguage().getMessage("general.Spawner", "[type]", cap));
|
||||||
|
is.setItemMeta(bsm);
|
||||||
|
} else {
|
||||||
|
is.setDurability(type.getTypeId());
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public static EntityType getEntityType(ItemStack is) {
|
||||||
|
if (is.getItemMeta() instanceof BlockStateMeta) {
|
||||||
|
BlockStateMeta bsm = (BlockStateMeta) is.getItemMeta();
|
||||||
|
if (bsm.getBlockState() instanceof CreatureSpawner) {
|
||||||
|
CreatureSpawner bs = (CreatureSpawner) bsm.getBlockState();
|
||||||
|
return bs.getSpawnedType();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return EntityType.fromId(is.getData().getData());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user