Browse Source

Class cleanup resulting in far smaller message.

master
MagicBot 1 year ago
parent
commit
010988d0c1
  1. 759
      src/engine/net/client/msg/ManageNPCMsg.java

759
src/engine/net/client/msg/ManageNPCMsg.java

@ -14,7 +14,6 @@ import engine.Enum.MinionType; @@ -14,7 +14,6 @@ import engine.Enum.MinionType;
import engine.Enum.ProtectionState;
import engine.gameManager.NPCManager;
import engine.gameManager.PowersManager;
import engine.net.AbstractConnection;
import engine.net.ByteBufferReader;
import engine.net.ByteBufferWriter;
import engine.net.client.Protocol;
@ -26,6 +25,7 @@ import org.joda.time.Seconds; @@ -26,6 +25,7 @@ import org.joda.time.Seconds;
import org.pmw.tinylog.Logger;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap;
/**
@ -39,99 +39,11 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -39,99 +39,11 @@ public class ManageNPCMsg extends ClientNetMsg {
private int unknown04;
private int unknown05;
private int unknown06;
private int unknown07;
private int unknown08;
private int unknown09;
private int unknown10;
private int unknown11;
private int buyNormal;
private int buyGuild;
private int buyNation;
private int sellNormal;
private int sellGuild;
private int sellNation;
private String CityName;
private String OwnerName;
private String GuildName;
private int unknown12;
private int unknown13;
private int unknown14;
private int unknown15;
private int unknown16;
private int unknown17;
private int unknown18;
private int messageType;
private int unknown19; //Arraylist motto length?
private String motto; //motto Length 60 max?
private int unknown01;
private int buildingID;
private int unknown20;
private int unknown21;
private int unknown22;
private int unknown23;
private int unknown24;
private int unknown25;
private int unknown26;
private int unknown28;
private int unknown30;
private int unknown31;
private int unknown32;
private int unknown33;
private int unknown34;
private int unknown35;
private int unknown36;
private int unknown37;
private int unknown38;
private int unknown39;
private int unknown40;
private int unknown41;
private int unknown42;
private int unknown43;
private int unknown44;
private int unknown45;
private int unknown46;
private int unknown47;
private int unknown48;
private int unknown49;
private int unknown50;
private int unknown51;
private int unknown52;
private int unknown53;
private int unknown54;
private int unknown55;
private int unknown56;
private int unknown57;
private int unknown58;
private int unknown59;
private int unknown60;
private int unknown61;
private int unknown62;
private int unknown63;
private int unknown64;
private int unknown65;
private int unknown66;
private int unknown67;
private int unknown68;
private int unknown69;
private int unknown70;
private int unknown71;
private int unknown72;
private int unknown73;
private int unknown74;
private int unknown75;
private int unknown76;
private int unknown77;
private int unknown78;
private int unknown79;
private int unknown80;
private int unknown81;
private int unknown82;
private int unknown83;
@ -142,102 +54,25 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -142,102 +54,25 @@ public class ManageNPCMsg extends ClientNetMsg {
super(Protocol.MANAGENPC);
this.targetType = ac.getObjectType().ordinal();
this.targetID = ac.getObjectUUID();
this.buyGuild = 26; //TODO pull all these from the NPC object
this.buyNation = 26;
this.buyNormal = 26;
this.sellGuild = 100;
this.sellNation = 100;
this.sellNormal = 100;
this.messageType = 1; //This seems to be the "update Hireling window" value flag
//Unknown defaults...
this.unknown20 = 0;
this.unknown21 = 0;
this.unknown22 = 0;
this.unknown23 = 0;
this.unknown24 = 0;
this.unknown25 = 0;
this.unknown26 = 0;
this.unknown28 = 0;
this.unknown30 = 0;
this.unknown31 = 0;
this.unknown32 = 0;
this.unknown33 = 0;
this.unknown34 = 0;
this.unknown35 = 0;
this.unknown36 = 0;
this.unknown37 = 1;//1
this.unknown38 = 0;//0
this.unknown39 = 0;//0
this.unknown40 = 1;//1
this.unknown41 = 0;//0
this.unknown42 = 1;//1 [Toggles tree icon in protection slots]
this.unknown43 = 0;//0
this.unknown44 = 1;//1
this.unknown45 = 0;//0
this.unknown46 = 0;//0
this.unknown47 = 0;//0
this.unknown48 = 0;//0
this.unknown49 = 0;//0
this.unknown50 = 0;//0
this.unknown51 = 0;//0
this.unknown52 = 0;//0
this.unknown53 = 0;//0
this.unknown54 = 1;//1
this.unknown55 = 0;//0
this.unknown56 = 3;//3
this.unknown57 = 3;//3
this.unknown58 = 0;//0
this.unknown59 = 5;//5
this.unknown60 = 0;//0
this.unknown61 = 0;//0
this.unknown62 = 0;//0
this.unknown63 = 64;//64
this.unknown64 = 0;//0
this.unknown65 = 0;//0
this.unknown66 = 0;//0
this.unknown67 = 0;//0
this.unknown68 = 1;//1
this.unknown69 = 1;//1
this.unknown70 = 0;//0
this.unknown71 = 1;//1
this.unknown72 = 0;
this.unknown73 = 0;
this.unknown74 = 5;
this.unknown75 = 1;
this.unknown76 = 2;
this.unknown77 = 15;
this.unknown78 = 3;
this.unknown79 = 18;
this.unknown80 = 0;
this.unknown81 = 0;
this.unknown82 = 0;
this.unknown83 = 0;
}
/**
* This constructor is used by NetMsgFactory. It attempts to deserialize the
* ByteBuffer into a message. If a BufferUnderflow occurs (based on reading
* past the limit) then this constructor Throws that Exception to the
* caller.
*/
public ManageNPCMsg(AbstractConnection origin, ByteBufferReader reader) {
super(Protocol.MANAGENPC, origin, reader);
}
//Serialize lists for Bulwarks
//Serializes lists for Bulwarks
private static void serializeBulwarkList(ByteBufferWriter writer, int minion) {
int minionIndex;
if (minion < 1 || minion > 3)
minionIndex = 1;
else
minionIndex = minion;
writer.putInt(0);
for (int i = 0; i < 3; i++) {
for (int i = 0; i < 3; i++)
writer.putInt(0); //static
}
writer.putInt(9);
writer.putInt(5);
writer.putInt(9);
@ -256,6 +91,7 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -256,6 +91,7 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putString("Ballista");
else
writer.putString("Mangonel");
writer.put((byte) 1);
writer.putString("A weapon suited to laying siege");
}
@ -575,10 +411,13 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -575,10 +411,13 @@ public class ManageNPCMsg extends ClientNetMsg {
for (int i = 0; i < 4; i++) {
writer.putInt(0); //statics
}
HashSet<Integer> rollableSet = npc.getCanRoll();
//Begin Item list for creation.
writer.putInt(npc.getCanRoll().size());
writer.putInt(rollableSet.size());
for (Integer ib : npc.getCanRoll()) {
for (Integer ib : rollableSet) {
ItemBase item = ItemBase.getItemBase(ib);
writer.put((byte) 1);
writer.putInt(0);
@ -600,10 +439,14 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -600,10 +439,14 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putInt(itemList.size());
else
writer.putInt(npc.getRank());
for (Item i : itemList) {
if (itemList.indexOf(i) >= npc.getRank())
break;
ItemBase ib = i.getItemBase();
writer.put((byte) 0); // ? Unknown45
writer.putInt(i.getObjectType().ordinal());
writer.putInt(i.getObjectUUID());
@ -619,6 +462,7 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -619,6 +462,7 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putInt((int) timeLife);
writer.putInt(npc.getRollingTimeInSeconds(i.getItemBaseID()));
writer.putInt(1);
if (i.isComplete())
writer.put((byte) 1);
else
@ -629,25 +473,29 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -629,25 +473,29 @@ public class ManageNPCMsg extends ClientNetMsg {
EffectsBase suffix = null;
for (String effectName : effectsList) {
if (effectName.contains("PRE"))
prefix = PowersManager.getEffectByIDString(effectName);
if (effectName.contains("SUF"))
suffix = PowersManager.getEffectByIDString(effectName);
}
if ((prefix == null && suffix == null))
writer.putInt(0);
else
writer.putInt(-1497023830);
if ((prefix != null && !i.isRandom()) || (prefix != null && i.isComplete()))
writer.putInt(prefix.getToken());
else
writer.putInt(0);
if ((suffix != null && !i.isRandom()) || (suffix != null && i.isComplete()))
writer.putInt(suffix.getToken());
else
writer.putInt(0);
writer.putString(i.getCustomName());
}
}
@ -663,15 +511,16 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -663,15 +511,16 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putString("percent");
writer.putInt(npc.getRepairCost()); //cost for repair
writer.putInt(0);
//ArrayList<Integer> modSuffixList =
ArrayList<Integer> modPrefixList = npc.getModTypeTable();
Integer mod = modPrefixList.get(0);
if (mod != 0) {
writer.putInt(npc.getModTypeTable().size()); //Effects size
for (Integer mtp : npc.getModTypeTable()) {
Integer imt = modPrefixList.indexOf(mtp);
int imt = modPrefixList.indexOf(mtp);
writer.putInt(npc.getItemModTable().get(imt)); //?
writer.putInt(0);
writer.putInt(0);
@ -686,22 +535,17 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -686,22 +535,17 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.put(npc.getItemModTable().get(imt));
writer.put(npc.getItemModTable().get(imt));//writer.putInt(-916801465); effectItemType
writer.putInt(mtp); //prefix
Integer mts = modPrefixList.indexOf(mtp);
int mts = modPrefixList.indexOf(mtp);
writer.putInt(npc.getModSuffixTable().get(mts)); //suffix
}
} else
writer.putInt(0);
ArrayList<Item> inventory = npc.getInventory();
ArrayList<Item> inventory = npc.getInventory();
writer.putInt(inventory.size()); //placeholder for item cnt
for (Item i : inventory) {
for (Item i : inventory)
Item.serializeForClientMsgWithoutSlot(i, writer);
}
writer.putInt(0);
writer.putInt(5);
@ -720,13 +564,16 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -720,13 +564,16 @@ public class ManageNPCMsg extends ClientNetMsg {
} else if (this.targetType == GameObjectType.Mob.ordinal()) {
mobA = Mob.getFromCacheDBID(this.targetID);
if (mobA == null) {
Logger.error("Missing Mob of ID " + this.targetID);
return;
}
if (mobA != null) {
Contract con = mobA.getContract();
if (con == null) {
Logger.error("Missing contract for NPC " + this.targetID);
return;
@ -756,9 +603,10 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -756,9 +603,10 @@ public class ManageNPCMsg extends ClientNetMsg {
maxSlots = 1;
}
if (NPC.ISGuardCaptain(mobA.getContract().getContractID()) == false) {
if (NPC.ISGuardCaptain(mobA.getContract().getContractID()) == false)
maxSlots = 0;
}
writer.putInt(0); //anything other than 0 seems to mess up the client
writer.putInt(targetType);
writer.putInt(targetID);
@ -788,7 +636,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -788,7 +636,6 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putInt(upgradePeriodInSeconds);
writer.put((byte) 0);
writer.put((byte) (mobA.getRank() == 7 ? 0 : 1)); //0 will make the upgrade field show "N/A"
writer.put((byte) 0);
@ -800,7 +647,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -800,7 +647,6 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.put((byte) 0);
writer.putInt(0);
NPCProfits profit = NPCProfits.defaultProfits;
writer.putInt((int) (profit.buyNormal * 100));
@ -814,9 +660,9 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -814,9 +660,9 @@ public class ManageNPCMsg extends ClientNetMsg {
writer.putInt(maxSlots); //artillery slots
writer.putInt(0); //runemaster slots
for (int i = 0; i < 13; i++) {
for (int i = 0; i < 13; i++)
writer.putInt(0); //statics
}
//some unknown list
writer.putInt(1); //list count
writer.putInt(16);
@ -828,7 +674,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -828,7 +674,6 @@ public class ManageNPCMsg extends ClientNetMsg {
//artillery captain list
ConcurrentHashMap<Mob, Integer> siegeMinions = mobA.getSiegeMinionMap();
writer.putInt(siegeMinions.size() + 1);
serializeGuardList(writer, mobA.getContract().getContractID()); //Guard
@ -848,6 +693,7 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -848,6 +693,7 @@ public class ManageNPCMsg extends ClientNetMsg {
long curTime = System.currentTimeMillis() / 1000;
long upgradeTime = (mob.deathTime + (mob.spawnTime * 1000)) / 1000;
long timeLife = upgradeTime - curTime;
if (upgradeTime * 1000 > System.currentTimeMillis()) {
if (mob.npcOwner.isAlive()) {
writer.put((byte) 0);//shows respawning timer
@ -887,24 +733,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -887,24 +733,6 @@ public class ManageNPCMsg extends ClientNetMsg {
e.printStackTrace();
}
}
public String getCityName() {
return CityName;
}
public void setUnknown07(int unknown07) {
this.unknown07 = unknown07;
}
public String getMotto() {
return motto;
}
public void setMotto(String motto) {
this.motto = motto;
}
public int getUnknown01() {
@ -946,55 +774,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -946,55 +774,6 @@ public class ManageNPCMsg extends ClientNetMsg {
public void setUnknown06(int unknown06) {
this.unknown06 = unknown06;
}
public int getBuyNormal() {
return buyNormal;
}
public void setBuyNormal(int buyNormal) {
this.buyNormal = buyNormal;
}
public int getBuyGuild() {
return buyGuild;
}
public void setBuyGuild(int buyGuild) {
this.buyGuild = buyGuild;
}
public int getBuyNation() {
return buyNation;
}
public void setBuyNation(int buyNation) {
this.buyNation = buyNation;
}
public int getSellNormal() {
return sellNormal;
}
public void setSellNormal(int sellNormal) {
this.sellNormal = sellNormal;
}
public int getSellGuild() {
return sellGuild;
}
public void setSellGuild(int sellGuild) {
this.sellGuild = sellGuild;
}
public int getSellNation() {
return sellNation;
}
public void setSellNation(int sellNation) {
this.sellNation = sellNation;
}
public int getMessageType() {
return messageType;
}
@ -1011,470 +790,6 @@ public class ManageNPCMsg extends ClientNetMsg { @@ -1011,470 +790,6 @@ public class ManageNPCMsg extends ClientNetMsg {
this.buildingID = buildingID;
}
public int getUnknown20() {
return unknown20;
}
public void setUnknown20(int unknown20) {
this.unknown20 = unknown20;
}
public int getUnknown21() {
return unknown21;
}
public void setUnknown21(int unknown21) {
this.unknown21 = unknown21;
}
public int getUnknown22() {
return unknown22;
}
public void setUnknown22(int unknown22) {
this.unknown22 = unknown22;
}
public int getUnknown23() {
return unknown23;
}
public void setUnknown23(int unknown23) {
this.unknown23 = unknown23;
}
public int getUnknown24() {
return unknown24;
}
public void setUnknown24(int unknown24) {
this.unknown24 = unknown24;
}
public int getUnknown25() {
return unknown25;
}
public void setUnknown25(int unknown25) {
this.unknown25 = unknown25;
}
public int getUnknown26() {
return unknown26;
}
public void setUnknown26(int unknown26) {
this.unknown26 = unknown26;
}
public int getUnknown28() {
return unknown28;
}
public void setUnknown28(int unknown28) {
this.unknown28 = unknown28;
}
public int getUnknown30() {
return unknown30;
}
public void setUnknown30(int unknown30) {
this.unknown30 = unknown30;
}
public int getUnknown31() {
return unknown31;
}
public void setUnknown31(int unknown31) {
this.unknown31 = unknown31;
}
public int getUnknown32() {
return unknown32;
}
public void setUnknown32(int unknown32) {
this.unknown32 = unknown32;
}
public int getUnknown33() {
return unknown33;
}
public void setUnknown33(int unknown33) {
this.unknown33 = unknown33;
}
public int getUnknown34() {
return unknown34;
}
public void setUnknown34(int unknown34) {
this.unknown34 = unknown34;
}
public int getUnknown35() {
return unknown35;
}
public void setUnknown35(int unknown35) {
this.unknown35 = unknown35;
}
public int getUnknown36() {
return unknown36;
}
public void setUnknown36(int unknown36) {
this.unknown36 = unknown36;
}
public int getUnknown37() {
return unknown37;
}
public void setUnknown37(int unknown37) {
this.unknown37 = unknown37;
}
public int getUnknown38() {
return unknown38;
}
public void setUnknown38(int unknown38) {
this.unknown38 = unknown38;
}
public int getUnknown39() {
return unknown39;
}
public void setUnknown39(int unknown39) {
this.unknown39 = unknown39;
}
public int getUnknown40() {
return unknown40;
}
public void setUnknown40(int unknown40) {
this.unknown40 = unknown40;
}
public int getUnknown41() {
return unknown41;
}
public void setUnknown41(int unknown41) {
this.unknown41 = unknown41;
}
public int getUnknown42() {
return unknown42;
}
public void setUnknown42(int unknown42) {
this.unknown42 = unknown42;
}
public int getUnknown44() {
return unknown44;
}
public void setUnknown44(int unknown44) {
this.unknown44 = unknown44;
}
public int getUnknown43() {
return unknown43;
}
public void setUnknown43(int unknown43) {
this.unknown43 = unknown43;
}
public int getUnknown45() {
return unknown45;
}
public void setUnknown45(int unknown45) {
this.unknown45 = unknown45;
}
public int getUnknown46() {
return unknown46;
}
public void setUnknown46(int unknown46) {
this.unknown46 = unknown46;
}
public int getUnknown47() {
return unknown47;
}
public void setUnknown47(int unknown47) {
this.unknown47 = unknown47;
}
public int getUnknown48() {
return unknown48;
}
public void setUnknown48(int unknown48) {
this.unknown48 = unknown48;
}
public int getUnknown49() {
return unknown49;
}
public void setUnknown49(int unknown49) {
this.unknown49 = unknown49;
}
public int getUnknown50() {
return unknown50;
}
public void setUnknown50(int unknown50) {
this.unknown50 = unknown50;
}
public int getUnknown51() {
return unknown51;
}
public void setUnknown51(int unknown51) {
this.unknown51 = unknown51;
}
public int getUnknown52() {
return unknown52;
}
public void setUnknown52(int unknown52) {
this.unknown52 = unknown52;
}
public int getUnknown53() {
return unknown53;
}
public void setUnknown53(int unknown53) {
this.unknown53 = unknown53;
}
public int getUnknown54() {
return unknown54;
}
public void setUnknown54(int unknown54) {
this.unknown54 = unknown54;
}
public int getUnknown55() {
return unknown55;
}
public void setUnknown55(int unknown55) {
this.unknown55 = unknown55;
}
public int getUnknown56() {
return unknown56;
}
public void setUnknown56(int unknown56) {
this.unknown56 = unknown56;
}
public int getUnknown57() {
return unknown57;
}
public void setUnknown57(int unknown57) {
this.unknown57 = unknown57;
}
public int getUnknown58() {
return unknown58;
}
public void setUnknown58(int unknown58) {
this.unknown58 = unknown58;
}
public int getUnknown59() {
return unknown59;
}
public void setUnknown59(int unknown59) {
this.unknown59 = unknown59;
}
public int getUnknown60() {
return unknown60;
}
public void setUnknown60(int unknown60) {
this.unknown60 = unknown60;
}
public int getUnknown61() {
return unknown61;
}
public void setUnknown61(int unknown61) {
this.unknown61 = unknown61;
}
public int getUnknown62() {
return unknown62;
}
public void setUnknown62(int unknown62) {
this.unknown62 = unknown62;
}
public int getUnknown63() {
return unknown63;
}
public void setUnknown63(int unknown63) {
this.unknown63 = unknown63;
}
public int getUnknown64() {
return unknown64;
}
public void setUnknown64(int unknown64) {
this.unknown64 = unknown64;
}
public int getUnknown65() {
return unknown65;
}
public void setUnknown65(int unknown65) {
this.unknown65 = unknown65;
}
public int getUnknown66() {
return unknown66;
}
public void setUnknown66(int unknown66) {
this.unknown66 = unknown66;
}
public int getUnknown67() {
return unknown67;
}
public void setUnknown67(int unknown67) {
this.unknown67 = unknown67;
}
public int getUnknown68() {
return unknown68;
}
public void setUnknown68(int unknown68) {
this.unknown68 = unknown68;
}
public int getUnknown69() {
return unknown69;
}
public void setUnknown69(int unknown69) {
this.unknown69 = unknown69;
}
public int getUnknown70() {
return unknown70;
}
public void setUnknown70(int unknown70) {
this.unknown70 = unknown70;
}
public int getUnknown71() {
return unknown71;
}
public void setUnknown71(int unknown71) {
this.unknown71 = unknown71;
}
public int getUnknown72() {
return unknown72;
}
public void setUnknown72(int unknown72) {
this.unknown72 = unknown72;
}
public int getUnknown73() {
return unknown73;
}
public void setUnknown73(int unknown73) {
this.unknown73 = unknown73;
}
public int getUnknown74() {
return unknown74;
}
public void setUnknown74(int unknown74) {
this.unknown74 = unknown74;
}
public int getUnknown75() {
return unknown75;
}
public void setUnknown75(int unknown75) {
this.unknown75 = unknown75;
}
public int getUnknown76() {
return unknown76;
}
public void setUnknown76(int unknown76) {
this.unknown76 = unknown76;
}
public int getUnknown77() {
return unknown77;
}
public void setUnknown77(int unknown77) {
this.unknown77 = unknown77;
}
public int getUnknown78() {
return unknown78;
}
public void setUnknown78(int unknown78) {
this.unknown78 = unknown78;
}
public int getUnknown79() {
return unknown79;
}
public void setUnknown79(int unknown79) {
this.unknown79 = unknown79;
}
public int getTargetType() {
return targetType;
}

Loading…
Cancel
Save