사이트 로그인
2017.01.23 23:10
@SuppressWarnings("unchecked")
@Override
public void executeCommand(Player admin, String[] params)
{
if (admin.getAccessLevel() < AdminConfig.COMMAND_PLAYERINFO)
{
PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command");
return;
}
if(params == null || params.length < 1)
{
PacketSendUtility.sendMessage(admin, "syntax //버그검사 <캐릭터명>");
return;
}
Player target = World.getInstance().findPlayer(Util.convertName(params[0]));
if(target == null)
{
PacketSendUtility.sendMessage(admin, "Selected player cannot online!");
return;
}
StringBuilder strbld = new StringBuilder("-items in inventory:\n");
List<Item> items = target.getInventory().getAllItems();
Iterator it = items.iterator();
if(items.isEmpty())
strbld.append("none\n");
else{
while(it.hasNext()){
Item act = (Item)it.next();
if(act.getItemStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
else if(act.getFusionStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
}
}
items.clear();
items = target.getEquipment().getEquippedItems();
it = items.iterator();
strbld.append("-equipped items:\n");
if(items.isEmpty())
strbld.append("none\n");
else
{
while(it.hasNext())
{
Item act = (Item)it.next();
if(act.getItemStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
else if(act.getFusionStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
}
}
items.clear();
items = target.getWarehouse().getAllItems();
it = items.iterator();
strbld.append("-items in warehouse:\n");
if(items.isEmpty())
strbld.append("none\n");
else
{
while(it.hasNext())
{
Item act = (Item)it.next();
if(act.getItemStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
else if(act.getFusionStones().size() > getMaxSlots(act))
strbld.append(" " + act.getItemCount() + "(s) of " + "[item:"+act.getItemTemplate().getTemplateId() + "]" + "[slot:"+act.getItemStones().size() + "] \n");
}
}
showAllLines(admin, strbld.toString());
}
private void showAllLines(Player admin, String str)
{
int index = 0;
String[] strarray = str.split("\n");
while(index < strarray.length - showLineNumber)
{
StringBuilder strbld = new StringBuilder();
for(int i = 0;i < showLineNumber; i++, index++)
{
strbld.append(strarray[index]);
if(i < showLineNumber - 1) strbld.append("\n");
}
PacketSendUtility.sendMessage(admin, strbld.toString());
}
int odd = strarray.length - index;
StringBuilder strbld = new StringBuilder();
for(int i = 0;i < odd; i++, index++)
{
strbld.append(strarray[index] + "\n");
}
PacketSendUtility.sendMessage(admin, strbld.toString());
}
public static int getMaxSlots(Item item)
{
int slots = 0;
switch(item.getItemTemplate().getItemQuality())
{
case COMMON:
case JUNK:
slots = 1;
break;
case RARE:
slots = 2;
break;
case LEGEND:
slots = 3;
break;
case UNIQUE:
slots = 4;
break;
case EPIC:
slots = 5;
break;
default:
slots = 0;
break;
}
if(item.getItemTemplate().getItemType() == ItemType.DRACONIC)
slots += 1;
if(item.getItemTemplate().getItemType() == ItemType.ABYSS)
slots += 2;
slots += item.getItemTemplate().getOptionSlotBonus();
if(slots > 6)
slots = 6;
return slots;
}
}