initial commit
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package me.Caesar2011.Mailings.Commands;
|
||||
|
||||
import me.Caesar2011.Mailings.Library.EnumCmdExe;
|
||||
import me.Caesar2011.Mailings.Library.EnumPerm;
|
||||
import me.Caesar2011.Mailings.Library.ItemMail;
|
||||
import me.Caesar2011.Mailings.Library.ItemMailManager;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Cmd_ItemMail_Delmail {
|
||||
CommandSender sender;
|
||||
String[] args;
|
||||
|
||||
public Cmd_ItemMail_Delmail(String[] args, CommandSender sender){
|
||||
this.args = args;
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
public EnumCmdExe execute(){
|
||||
if (args.length == 0){
|
||||
return EnumCmdExe.TOFEWARGS;
|
||||
}
|
||||
int mailID = 0;
|
||||
try {
|
||||
mailID = Integer.parseInt(args[0]);
|
||||
} catch (NumberFormatException e) {
|
||||
return EnumCmdExe.NONUMBER.addArg("%input%", args[0]);
|
||||
}
|
||||
|
||||
|
||||
if (mailID != 0 && mailID <= ItemMailManager.getLastMailID()) {
|
||||
if (sender instanceof Player){
|
||||
Player p = (Player) sender;
|
||||
String toPlayerName = ItemMailManager.getString(mailID, "ToPlayer");
|
||||
//Permissioncheck
|
||||
if (EnumPerm.IM_DEL_OWN.noPermission(sender) && p.getName().equals(toPlayerName)){
|
||||
return EnumCmdExe.NOPERM;
|
||||
}
|
||||
if (EnumPerm.IM_DEL_OTHER.noPermission(sender) && !p.getName().equals(toPlayerName)){
|
||||
return EnumCmdExe.NOPERM;
|
||||
}
|
||||
ItemMail mail = ItemMailManager.getMail(mailID);
|
||||
if (mail.item != null){
|
||||
if (checkIfFits(p, mail.item)){
|
||||
p.getInventory().addItem(mail.item);
|
||||
} else {
|
||||
return EnumCmdExe.INVFILLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
ItemMailManager.delMail(mailID);
|
||||
return EnumCmdExe.MAILDEL.addArg("%mailid%", new Integer(mailID).toString()).addArg("%type%", ItemMailManager.typeName);
|
||||
} else {
|
||||
return EnumCmdExe.MAILNOTFOUND.addArg("%mailid%", new Integer(mailID).toString()).addArg("%type%", ItemMailManager.typeName);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkIfFits(Player p, ItemStack i){
|
||||
int a = i.getAmount();
|
||||
for (ItemStack item : p.getInventory().getContents()) {
|
||||
if(item.isSimilar(i) || (item.getType() == Material.AIR)) {
|
||||
a -= item.getMaxStackSize() - item.getAmount();
|
||||
if (a <= 0) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user