Files
java-bukkit-mailings/src/me/Caesar2011/Mailings/Commands/Cmd_ItemMail_Delmail.java
Sebastian Seedorf aae3d62a41 initial commit
2020-12-06 18:26:17 +01:00

72 lines
2.1 KiB
Java

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;
}
}