rendered paste body public Object setState(State state) {
// remove drops from previous state
if (drops != null) {
for (Iterator<ArrayList<L2DropData>> i = drops.values().iterator(); i.hasNext(); ) {
ArrayList<L2DropData> lst = i.next();
for (Iterator<L2DropData> ds = lst.iterator(); ds.hasNext(); ) {
L2DropData d = ds.next();
String[] states = d.getStateIDs();
for (int k=0; k < states.length; k++) {
if (this.state.getName().equals(states[k])) {
ds.remove();
break;
}
}
}
if (lst == null || lst.size() == 0)
i.remove();
}
}
// set new state
this.state = state;
// add drops from new state
if (state != null && !completed) {
HashMap<Integer, ArrayList<L2DropData>> new_drops = state.getDrops();
if (new_drops != null) {
if (drops == null)
drops = new HashMap<Integer, ArrayList<L2DropData>>();
drops.putAll(new_drops);
}
}
Quest.updateQuestInDb(this);
QuestList ql = new QuestList();
player.sendPacket(ql);
return state;
}