use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class QuestInstance method getPartyPlayers.
private List<EntityPlayerMP> getPartyPlayers(EntityPlayerMP player) {
List<EntityPlayerMP> list = new ArrayList<EntityPlayerMP>();
IParty party = PartyManager.INSTANCE.getUserParty(QuestingAPI.getQuestingUUID(player));
if (party == null) {
list.add(player);
return list;
} else {
MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
for (UUID mem : party.getMembers()) {
for (EntityPlayerMP p : server.getPlayerList().getPlayers()) {
if (p != null && QuestingAPI.getQuestingUUID(p).equals(mem)) {
list.add(p);
}
}
}
return list;
}
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class QuestInstance method claimReward.
@Override
public void claimReward(EntityPlayer player) {
for (IReward rew : rewards.getAllValues()) {
rew.claimReward(player, this);
}
UUID pID = QuestingAPI.getQuestingUUID(player);
IParty party = PartyManager.INSTANCE.getUserParty(pID);
if (party != null && this.qInfo.getProperty(NativeProps.PARTY_LOOT)) {
for (UUID mem : party.getMembers()) {
EnumPartyStatus pStat = party.getStatus(mem);
if (pStat == null || pStat == EnumPartyStatus.INVITE) {
continue;
}
UserEntry entry = GetUserEntry(mem);
if (entry == null) {
entry = new UserEntry(mem);
this.completeUsers.add(entry);
}
entry.setClaimed(true, player.world.getTotalWorldTime());
}
} else {
UserEntry entry = GetUserEntry(pID);
if (entry == null) {
entry = new UserEntry(pID);
this.completeUsers.add(entry);
}
entry.setClaimed(true, player.world.getTotalWorldTime());
}
PacketSender.INSTANCE.sendToAll(getSyncPacket());
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class QuestInstance method detect.
/**
* Fired when someone clicks the detect button for this quest
*/
@Override
public void detect(EntityPlayer player) {
UUID playerID = QuestingAPI.getQuestingUUID(player);
if (isComplete(playerID) && (qInfo.getProperty(NativeProps.REPEAT_TIME).intValue() < 0 || rewards.size() <= 0)) {
return;
} else if (!canSubmit(player)) {
return;
}
if (isUnlocked(playerID) || QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) {
int done = 0;
boolean update = false;
for (ITask tsk : tasks.getAllValues()) {
if (!tsk.isComplete(playerID)) {
tsk.detect(player, this);
if (tsk.isComplete(playerID)) {
IParty party = PartyManager.INSTANCE.getUserParty(playerID);
if (// Ensures task is marked as complete for all team members
party != null) {
for (UUID mem : party.getMembers()) {
tsk.setComplete(mem);
}
}
done += 1;
update = true;
}
} else {
done += 1;
}
}
if ((tasks.size() > 0 || !QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) && qInfo.getProperty(NativeProps.LOGIC_TASK).getResult(done, tasks.size())) {
setComplete(playerID, player.world.getTotalWorldTime());
if (!QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE) && !qInfo.getProperty(NativeProps.SILENT)) {
postPresetNotice(player, 2);
}
} else if (update && qInfo.getProperty(NativeProps.SIMULTANEOUS)) {
resetUser(playerID, false);
PacketSender.INSTANCE.sendToAll(getSyncPacket());
} else if (update) {
if (!QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE) && !qInfo.getProperty(NativeProps.SILENT)) {
postPresetNotice(player, 1);
}
}
PacketSender.INSTANCE.sendToAll(getSyncPacket());
}
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class EventHandler method onLivingDeath.
@SubscribeEvent
public void onLivingDeath(LivingDeathEvent event) {
if (event.getEntityLiving().world.isRemote || !QuestSettings.INSTANCE.getProperty(NativeProps.HARDCORE)) {
return;
}
if (event.getEntityLiving() instanceof EntityPlayer) {
UUID uuid = QuestingAPI.getQuestingUUID(((EntityPlayer) event.getEntityLiving()));
IParty party = PartyManager.INSTANCE.getUserParty(uuid);
if (party == null || !party.getProperties().getProperty(NativeProps.PARTY_LIVES)) {
int lives = LifeDatabase.INSTANCE.getLives(uuid);
LifeDatabase.INSTANCE.setLives(uuid, lives - 1);
} else {
int lives = LifeDatabase.INSTANCE.getLives(party);
LifeDatabase.INSTANCE.setLives(party, lives - 1);
}
}
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class PartyManager method writeToNBT.
@Override
public NBTTagList writeToNBT(NBTTagList json, EnumSaveType saveType) {
if (saveType != EnumSaveType.CONFIG) {
return json;
}
for (Entry<Integer, IParty> entry : partyList.entrySet()) {
NBTTagCompound jp = entry.getValue().writeToNBT(new NBTTagCompound(), saveType);
jp.setInteger("partyID", entry.getKey());
json.appendTag(jp);
}
return json;
}
Aggregations