Guard party packets server-side

This commit is contained in:
Kam committed 2025-10-06 20:34:53 -04:00
1 parent 3d0c814861
commit d9b5aa6b3d
13 files changed
+261 -125

No files matched your search

@@ -451,18 +451,7 @@ public class PacketHandler {
// Trader Packets
REQUEST_PACKET.registerPacket(new TraderMarketSavePacket());
// Party Packets
REQUEST_PACKET.registerPacket(new PartySavePacket());
REQUEST_PACKET.registerPacket(new PartyInfoPacket());
REQUEST_PACKET.registerPacket(new PartyDisbandPacket());
REQUEST_PACKET.registerPacket(new PartySetLeaderPacket());
REQUEST_PACKET.registerPacket(new PartyKickPacket());
REQUEST_PACKET.registerPacket(new PartyLeavePacket());
REQUEST_PACKET.registerPacket(new PartySetQuestPacket());
REQUEST_PACKET.registerPacket(new PartyInvitePacket());
REQUEST_PACKET.registerPacket(new PartyAcceptInvitePacket());
REQUEST_PACKET.registerPacket(new PartyIgnoreInvitePacket());
REQUEST_PACKET.registerPacket(new PartyLogToServerPacket());
// Party Packets moved to player channel
// Animation Packets
REQUEST_PACKET.registerPacket(new AnimationsGetPacket());
@@ -604,6 +593,19 @@ public class PacketHandler {
PLAYER_PACKET.registerPacket(new ProfileChangePacket());
PLAYER_PACKET.registerPacket(new ProfileGetPacket());
PLAYER_PACKET.registerPacket(new ProfileGetInfoPacket());
// Party Packets
PLAYER_PACKET.registerPacket(new PartySavePacket());
PLAYER_PACKET.registerPacket(new PartyInfoPacket());
PLAYER_PACKET.registerPacket(new PartyDisbandPacket());
PLAYER_PACKET.registerPacket(new PartySetLeaderPacket());
PLAYER_PACKET.registerPacket(new PartyKickPacket());
PLAYER_PACKET.registerPacket(new PartyLeavePacket());
PLAYER_PACKET.registerPacket(new PartySetQuestPacket());
PLAYER_PACKET.registerPacket(new PartyInvitePacket());
PLAYER_PACKET.registerPacket(new PartyAcceptInvitePacket());
PLAYER_PACKET.registerPacket(new PartyIgnoreInvitePacket());
PLAYER_PACKET.registerPacket(new PartyLogToServerPacket());
}
public void registerChannels() {
@@ -9,6 +9,7 @@ import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumRequestPacket;
import kamkeel.npcs.util.ByteBufUtils;
import net.minecraft.entity.player.EntityPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.data.PlayerData;
import java.io.IOException;
@@ -33,10 +34,9 @@ public final class PartyAcceptInvitePacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -45,9 +45,16 @@ public final class PartyAcceptInvitePacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
PlayerData playerData = PlayerData.get(player);
String uuidString = ByteBufUtils.readString(in);
if (uuidString != null) {
if (!ConfigMain.PartiesEnabled) {
return;
}
if (uuidString != null && !uuidString.isEmpty()) {
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
return;
}
UUID uuid = UUID.fromString(uuidString);
playerData.acceptInvite(uuid);
}
@@ -11,7 +11,9 @@ import kamkeel.npcs.network.packets.data.large.PartyDataPacket;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.data.Party;
import noppes.npcs.controllers.data.PlayerData;
import java.io.IOException;
@@ -30,10 +32,9 @@ public final class PartyDisbandPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -42,9 +43,17 @@ public final class PartyDisbandPacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
PartyController.Instance().disbandParty(playerData.partyUUID);
if (!ConfigMain.PartiesEnabled || playerData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party)) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
PartyController.Instance().disbandParty(playerData.partyUUID);
NBTTagCompound compound = new NBTTagCompound();
compound.setBoolean("Disband", true);
PartyDataPacket.sendPartyData((EntityPlayerMP) player, compound);
@@ -9,6 +9,7 @@ import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumRequestPacket;
import kamkeel.npcs.util.ByteBufUtils;
import net.minecraft.entity.player.EntityPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.data.PlayerData;
import java.io.IOException;
@@ -33,10 +34,9 @@ public final class PartyIgnoreInvitePacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -45,9 +45,13 @@ public final class PartyIgnoreInvitePacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
PlayerData playerData = PlayerData.get(player);
String uuidString = ByteBufUtils.readString(in);
if (uuidString != null) {
if (!ConfigMain.PartiesEnabled) {
return;
}
if (uuidString != null && !uuidString.isEmpty()) {
PlayerData playerData = PlayerData.get(player);
UUID uuid = UUID.fromString(uuidString);
playerData.ignoreInvite(uuid);
}
@@ -45,10 +45,9 @@ public final class PartyInfoPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -62,6 +61,11 @@ public final class PartyInfoPacket extends AbstractPacket {
return;
if (isNew) {
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
sendPartyData((EntityPlayerMP) player);
return;
}
Party party = PartyController.Instance().createParty();
party.addPlayer(player);
party.setLeader(player);
@@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagList;
import noppes.npcs.EventHooks;
import noppes.npcs.NoppesUtilServer;
import noppes.npcs.api.entity.IPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.data.Party;
import noppes.npcs.controllers.data.PlayerData;
@@ -45,10 +46,9 @@ public final class PartyInvitePacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -57,19 +57,31 @@ public final class PartyInvitePacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
EntityPlayer invitedPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in));
String invitedName = ByteBufUtils.readString(in);
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData senderData = PlayerData.get(player);
if (senderData.partyUUID == null || invitedName == null || invitedName.isEmpty()) {
return;
}
Party party = PartyController.Instance().getParty(senderData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party) || party.getIsLocked()) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
EntityPlayer invitedPlayer = NoppesUtilServer.getPlayerByName(invitedName);
if (invitedPlayer != null) {
PlayerData senderData = PlayerData.get(player);
PlayerData invitedData = PlayerData.get(invitedPlayer);
if (senderData.partyUUID != null && invitedData.partyUUID == null) {
Party party = PartyController.Instance().getParty(senderData.partyUUID);
if (!party.getIsLocked()) {
PartyEvent.PartyInviteEvent partyEvent = new PartyEvent.PartyInviteEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(invitedPlayer));
EventHooks.onPartyInvite(party, partyEvent);
if (!partyEvent.isCancelled()) {
invitedData.inviteToParty(party);
sendInviteData((EntityPlayerMP) invitedPlayer);
}
if (invitedData.partyUUID == null) {
PartyEvent.PartyInviteEvent partyEvent = new PartyEvent.PartyInviteEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(invitedPlayer));
EventHooks.onPartyInvite(party, partyEvent);
if (!partyEvent.isCancelled()) {
invitedData.inviteToParty(party);
sendInviteData((EntityPlayerMP) invitedPlayer);
}
}
}
@@ -13,6 +13,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import noppes.npcs.EventHooks;
import noppes.npcs.NoppesUtilServer;
import noppes.npcs.api.entity.IPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.PlayerDataController;
import noppes.npcs.controllers.data.Party;
@@ -44,10 +45,9 @@ public final class PartyKickPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -57,40 +57,54 @@ public final class PartyKickPacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
String kickPlayerName = ByteBufUtils.readString(in);
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData senderData = PlayerData.get(player);
if (senderData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(senderData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party) || party.getIsLocked()) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
EntityPlayer kickPlayer = NoppesUtilServer.getPlayerByName(kickPlayerName);
PlayerData playerData = null;
UUID playerUUID = null;
if (kickPlayer != null) {
playerData = PlayerData.get(player);
} else {
UUID targetUUID = kickPlayer != null ? kickPlayer.getUniqueID() : null;
if (targetUUID == null && kickPlayerName != null && !kickPlayerName.isEmpty()) {
String uuid = PlayerDataController.Instance.getPlayerUUIDFromName(kickPlayerName);
if (!uuid.isEmpty()) {
playerData = PlayerDataController.Instance.getPlayerDataCache(uuid);
playerUUID = UUID.fromString(uuid);
targetUUID = UUID.fromString(uuid);
}
}
if (playerData != null) {
if (playerData.partyUUID != null) {
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!party.getIsLocked()) {
PartyEvent.PartyKickEvent partyEvent = new PartyEvent.PartyKickEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(kickPlayer));
EventHooks.onPartyKick(party, partyEvent);
if (!partyEvent.isCancelled()) {
boolean successful = party.removePlayer(kickPlayer);
if (!successful)
successful = party.removePlayer(playerUUID);
if (kickPlayer == null && targetUUID == null) {
return;
}
if (successful) {
if (kickPlayer != null) {
sendInviteData((EntityPlayerMP) kickPlayer);
}
PartyController.Instance().pingPartyUpdate(party);
PartyController.Instance().sendKickMessages(party, kickPlayer, kickPlayerName);
}
}
}
PartyEvent.PartyKickEvent partyEvent = new PartyEvent.PartyKickEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(kickPlayer));
EventHooks.onPartyKick(party, partyEvent);
if (partyEvent.isCancelled()) {
return;
}
boolean successful = false;
if (kickPlayer != null) {
successful = party.removePlayer(kickPlayer);
}
if (!successful && targetUUID != null) {
successful = party.removePlayer(targetUUID);
}
if (successful) {
if (kickPlayer != null) {
sendInviteData((EntityPlayerMP) kickPlayer);
}
PartyController.Instance().pingPartyUpdate(party);
PartyController.Instance().sendKickMessages(party, kickPlayer, kickPlayerName);
}
}
}
@@ -13,6 +13,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import noppes.npcs.EventHooks;
import noppes.npcs.NoppesUtilServer;
import noppes.npcs.api.entity.IPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.data.Party;
import noppes.npcs.controllers.data.PlayerData;
@@ -42,10 +43,9 @@ public final class PartyLeavePacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -54,20 +54,37 @@ public final class PartyLeavePacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
EntityPlayer leavingPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in));
if (leavingPlayer != null) {
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
Party party = PartyController.Instance().getParty(playerData.partyUUID);
boolean successful = party.removePlayer(leavingPlayer);
if (successful) {
PartyEvent.PartyLeaveEvent partyEvent = new PartyEvent.PartyLeaveEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(leavingPlayer));
EventHooks.onPartyLeave(party, partyEvent);
sendInviteData((EntityPlayerMP) leavingPlayer);
PartyController.Instance().pingPartyUpdate(party);
PartyController.Instance().sendLeavingMessages(party, leavingPlayer);
}
}
String leavingName = ByteBufUtils.readString(in);
if (!ConfigMain.PartiesEnabled) {
return;
}
EntityPlayer leavingPlayer = NoppesUtilServer.getPlayerByName(leavingName);
if (leavingPlayer == null) {
return;
}
if (!leavingPlayer.getUniqueID().equals(player.getUniqueID()) && !NoppesUtilServer.isOp(player)) {
return;
}
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (party == null) {
return;
}
boolean successful = party.removePlayer(leavingPlayer);
if (successful) {
PartyEvent.PartyLeaveEvent partyEvent = new PartyEvent.PartyLeaveEvent(party, party.getQuest(), (IPlayer) NpcAPI.Instance().getIEntity(leavingPlayer));
EventHooks.onPartyLeave(party, partyEvent);
sendInviteData((EntityPlayerMP) leavingPlayer);
PartyController.Instance().pingPartyUpdate(party);
PartyController.Instance().sendLeavingMessages(party, leavingPlayer);
}
}
}
@@ -11,6 +11,8 @@ import kamkeel.npcs.util.ByteBufUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import noppes.npcs.NoppesUtilPlayer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.data.PlayerData;
import java.io.IOException;
@@ -33,7 +35,7 @@ public final class PartyLogToServerPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@@ -44,6 +46,15 @@ public final class PartyLogToServerPacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID == null) {
return;
}
NoppesUtilPlayer.updatePartyQuestLogData(in, (EntityPlayerMP) player);
}
@@ -0,0 +1,20 @@
package kamkeel.npcs.network.packets.request.party;
import net.minecraft.entity.player.EntityPlayer;
import noppes.npcs.NoppesUtilServer;
import noppes.npcs.controllers.data.Party;
final class PartyPacketUtil {
private PartyPacketUtil() {
}
static boolean canManageParty(EntityPlayer player, Party party) {
if (party == null) {
return false;
}
if (NoppesUtilServer.isOp(player)) {
return true;
}
return party.getLeaderUUID() != null && party.getLeaderUUID().equals(player.getUniqueID());
}
}
@@ -9,7 +9,9 @@ import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumRequestPacket;
import kamkeel.npcs.util.ByteBufUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.data.Party;
import noppes.npcs.controllers.data.PlayerData;
@@ -35,10 +37,9 @@ public final class PartySavePacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -47,11 +48,23 @@ public final class PartySavePacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
Party party = PartyController.Instance().getParty(playerData.partyUUID);
party.readClientNBT(ByteBufUtils.readNBT(in));
PartyController.Instance().pingPartyUpdate(party);
NBTTagCompound data = ByteBufUtils.readNBT(in);
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party)) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
party.readClientNBT(data);
PartyController.Instance().pingPartyUpdate(party);
}
}
@@ -9,7 +9,9 @@ import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumRequestPacket;
import kamkeel.npcs.util.ByteBufUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import noppes.npcs.NoppesUtilServer;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.data.Party;
import noppes.npcs.controllers.data.PlayerData;
@@ -35,10 +37,9 @@ public final class PartySetLeaderPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -47,13 +48,29 @@ public final class PartySetLeaderPacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
String newLeaderName = ByteBufUtils.readString(in);
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!party.getIsLocked()) {
party.setLeader(NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in)));
PartyController.Instance().pingPartyUpdate(party);
}
if (playerData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party) || party.getIsLocked()) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
EntityPlayer newLeader = NoppesUtilServer.getPlayerByName(newLeaderName);
if (newLeader == null || !party.hasPlayer(newLeader)) {
return;
}
if (party.setLeader(newLeader)) {
PartyController.Instance().pingPartyUpdate(party);
}
}
}
@@ -8,7 +8,9 @@ import kamkeel.npcs.network.PacketChannel;
import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumRequestPacket;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import noppes.npcs.EventHooks;
import noppes.npcs.config.ConfigMain;
import noppes.npcs.controllers.PartyController;
import noppes.npcs.controllers.QuestController;
import noppes.npcs.controllers.data.Party;
@@ -38,10 +40,9 @@ public final class PartySetQuestPacket extends AbstractPacket {
@Override
public PacketChannel getChannel() {
return PacketHandler.REQUEST_PACKET;
return PacketHandler.PLAYER_PACKET;
}
@SideOnly(Side.CLIENT)
@Override
public void sendData(ByteBuf out) throws IOException {
@@ -50,35 +51,40 @@ public final class PartySetQuestPacket extends AbstractPacket {
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
int questID = in.readInt();
if (!ConfigMain.PartiesEnabled) {
return;
}
PlayerData playerData = PlayerData.get(player);
if (playerData.partyUUID != null) {
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (party != null) {
if (party.getLeaderUUID().equals(player.getUniqueID())) {
int questID = in.readInt();
party.setQuest(null);
if (questID != -1) {
Quest foundQuest = QuestController.Instance.quests.get(questID);
if (foundQuest != null) {
if (foundQuest.partyOptions.allowParty) {
if (party.validateQuest(questID, true)) {
PartyEvent.PartyQuestSetEvent partyEvent = new PartyEvent.PartyQuestSetEvent(party, foundQuest);
EventHooks.onPartyQuestSet(party, partyEvent);
if (!partyEvent.isCancelled()) {
if (playerData.questData.hasActiveQuest(questID)) {
QuestData questdata = new QuestData(foundQuest);
playerData.questData.activeQuests.put(questID, questdata);
}
party.setQuest(foundQuest);
PartyController.Instance().sendQuestChat(party, "party.setChat", " ", foundQuest.title);
}
}
}
if (playerData.partyUUID == null) {
return;
}
Party party = PartyController.Instance().getParty(playerData.partyUUID);
if (!PartyPacketUtil.canManageParty(player, party)) {
PartyInfoPacket.sendPartyData((EntityPlayerMP) player);
return;
}
party.setQuest(null);
if (questID != -1) {
Quest foundQuest = QuestController.Instance.quests.get(questID);
if (foundQuest != null && foundQuest.partyOptions.allowParty) {
if (party.validateQuest(questID, true)) {
PartyEvent.PartyQuestSetEvent partyEvent = new PartyEvent.PartyQuestSetEvent(party, foundQuest);
EventHooks.onPartyQuestSet(party, partyEvent);
if (!partyEvent.isCancelled()) {
if (playerData.questData.hasActiveQuest(questID)) {
QuestData questdata = new QuestData(foundQuest);
playerData.questData.activeQuests.put(questID, questdata);
}
party.setQuest(foundQuest);
PartyController.Instance().sendQuestChat(party, "party.setChat", " ", foundQuest.title);
}
PartyController.Instance().pingPartyUpdate(party);
}
}
}
PartyController.Instance().pingPartyUpdate(party);
}
}