use of betterquesting.api.questing.tasks.IItemTask in project BetterQuesting by Funwayguy.
the class TileSubmitStation method update.
@Override
public void update() {
if (world.isRemote || QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) {
return;
}
IQuest q = getQuest();
IItemTask t = getItemTask();
if (world.getTotalWorldTime() % 10 == 0) {
if (owner != null && q != null && t != null && owner != null && !itemStack.get(0).isEmpty() && itemStack.get(1).isEmpty()) {
ItemStack inStack = itemStack.get(0).copy();
if (t.canAcceptItem(owner, inStack)) {
// Even if this returns an invalid item for submission it will be moved next pass
itemStack.set(0, t.submitItem(owner, inStack));
if (((ITask) t).isComplete(owner)) {
PacketSender.INSTANCE.sendToAll(q.getSyncPacket());
reset();
world.getMinecraftServer().getPlayerList().sendToAllNearExcept(null, pos.getX(), pos.getY(), pos.getZ(), 128, world.provider.getDimension(), getUpdatePacket());
} else {
needsUpdate = true;
}
} else {
itemStack.set(1, inStack);
itemStack.set(0, ItemStack.EMPTY);
}
}
if (needsUpdate) {
needsUpdate = false;
if (q != null && !world.isRemote) {
PacketSender.INSTANCE.sendToAll(q.getSyncPacket());
}
} else if (t != null && ((ITask) t).isComplete(owner)) {
reset();
world.getMinecraftServer().getPlayerList().sendToAllNearExcept(null, pos.getX(), pos.getY(), pos.getZ(), 128, world.provider.getDimension(), getUpdatePacket());
}
}
}