mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 18:57:32 +00:00
Guard party packets server-side
This commit is contained in:
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() {
|
||||
|
||||
+11
-4
@@ -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);
|
||||
|
||||
+8
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user