- 808
- 3
- 124
Java:
private void server(DataInputStream dis, EntityPlayerMP player, EnumPacketType type) throws IOException {
if (CustomNpcs.OpsOnly && !MinecraftServer.getServer().getConfigurationManager().getOps().contains(player.username.toLowerCase())) {
MinecraftServer.getServer().logWarning(player.username + ": tried to use custom npcs without being an op");
} else if (!type.hasPermission() || CustomNpcsPermissions.Instance.hasPermission(player.username, type.permission)) {
EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player);
if (!type.needsNpc || npc != null) {
if (type == EnumPacketType.Delete) {
npc.delete();
NoppesUtilServer.deleteNpc(npc, player);
} else {
int entity;
int list;
int datatype;
if (type == EnumPacketType.ChangeModel) {
npc.delete();
NoppesUtilServer.deleteNpc(npc, player);
entity = dis.readInt();
list = dis.readInt();
datatype = dis.readInt();
npc = (EntityNPCInterface) EntityList.createEntityFromNBT(CompressedStreamTools.read(dis), player.worldObj);
npc.startPos = new int[]{entity, list, datatype};
npc.setPosition((double) ((float) entity + 0.5F), npc.getStartYPos(), (double) ((float) datatype + 0.5F));
npc.setHealth(npc.getMaxHealth());
player.worldObj.spawnEntityInWorld(npc);
NoppesUtilServer.setEditingNpc(player, npc);
} else if (type == EnumPacketType.Bank) { //TODO: test
BankController.getInstance().loadBanks(dis);
BankController.getInstance().saveBanks();
} else if (type == EnumPacketType.BanksGet) {
NoppesUtilServer.sendBankDataAll(player);
} else {
Bank entity1;
if (type == EnumPacketType.BankGet) {
entity1 = BankController.getInstance().getBank(dis.readInt());
NoppesUtilServer.sendBank(player, entity1);
} else if (type == EnumPacketType.BankSave) {
entity1 = new Bank();
entity1.readEntityFromNBT(CompressedStreamTools.read(dis));
BankController.getInstance().saveBank(entity1);
NoppesUtilServer.sendBankDataAll(player);
NoppesUtilServer.sendBank(player, entity1);
} else if (type == EnumPacketType.BankRemove) {
BankController.getInstance().removeBank(dis.readInt());
NoppesUtilServer.sendBankDataAll(player);
NoppesUtilServer.sendBank(player, new Bank());
} else {
NBTTagCompound entity2;
if (type == EnumPacketType.SaveNpc) {
entity2 = CompressedStreamTools.read(dis);
npc.readFromNBT(entity2);
npc.reset();
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else {
Entity entity3;
if (type == EnumPacketType.RemoteMainMenu) {
entity3 = player.worldObj.getEntityByID(dis.readInt());
if (entity3 == null || !(entity3 instanceof EntityNPCInterface)) {
return;
}
NoppesUtilServer.sendOpenGui(player, EnumGuiType.MainMenuDisplay, (EntityNPCInterface) entity3);
} else if (type == EnumPacketType.RemoteDelete) {
entity3 = player.worldObj.getEntityByID(dis.readInt());
if (entity3 == null || !(entity3 instanceof EntityNPCInterface)) {
return;
}
npc = (EntityNPCInterface) entity3;
npc.delete();
NoppesUtilServer.deleteNpc(npc, player);
NoppesUtilServer.sendNearbyNpcs(player);
} else if (type == EnumPacketType.RemoteNpcsGet) {
NoppesUtilServer.sendNearbyNpcs(player);
NoppesUtilServer.sendData(player, EnumPacketType.ScrollSelected, new Object[]{CustomNpcs.FreezeNPCs ? "Unfreeze Npcs" : "Freeze Npcs"});
} else if (type == EnumPacketType.RemoteFreeze) {
CustomNpcs.FreezeNPCs = !CustomNpcs.FreezeNPCs;
NoppesUtilServer.sendData(player, EnumPacketType.ScrollSelected, new Object[]{CustomNpcs.FreezeNPCs ? "Unfreeze Npcs" : "Freeze Npcs"});
} else if (type == EnumPacketType.RemoteReset) {
entity3 = player.worldObj.getEntityByID(dis.readInt());
if (entity3 == null || !(entity3 instanceof EntityNPCInterface)) {
return;
}
npc = (EntityNPCInterface) entity3;
npc.reset();
} else if (type == EnumPacketType.RemoteTpToNpc) {
entity3 = player.worldObj.getEntityByID(dis.readInt());
if (entity3 == null || !(entity3 instanceof EntityNPCInterface)) {
return;
}
npc = (EntityNPCInterface) entity3;
player.playerNetServerHandler.setPlayerLocation(npc.posX, npc.posY, npc.posZ, 0.0F, 0.0F);
} else if (type == EnumPacketType.SpawnMob) {
entity3 = EntityList.createEntityFromNBT(CompressedStreamTools.read(dis), player.worldObj);
player.worldObj.spawnEntityInWorld(entity3);
} else if (type == EnumPacketType.SpawnNpc) {
entity = dis.readInt();
list = dis.readInt();
datatype = dis.readInt();
npc = (EntityNPCInterface) EntityList.createEntityFromNBT(CompressedStreamTools.read(dis), player.worldObj);
npc.startPos = new int[]{entity, list, datatype};
npc.setPosition((double) ((float) entity + 0.5F), npc.getStartYPos(), (double) ((float) datatype + 0.5F));
npc.setHealth(npc.getMaxHealth());
player.worldObj.spawnEntityInWorld(npc);
NoppesUtilServer.setEditingNpc(player, npc);
} else if (type == EnumPacketType.MobSpawner) {
NoppesUtilServer.createMobSpawner(dis, player);
} else if (type == EnumPacketType.Gui) {
EnumGuiType entity5 = EnumGuiType.values()[dis.readInt()];
list = dis.readInt();
datatype = dis.readInt();
int compound = dis.readInt();
NoppesUtilServer.sendOpenGui(player, entity5, NoppesUtilServer.getEditingNpc(player), list, datatype, compound);
} else if (type == EnumPacketType.RecipesGet) {
NoppesUtilServer.sendRecipeData(player, dis.readInt());
} else {
RecipeCarpentry entity4;
if (type == EnumPacketType.RecipeGet) {
entity4 = RecipeController.instance.getRecipe(dis.readInt());
NoppesUtilServer.setRecipeGui(player, entity4);
} else if (type == EnumPacketType.RecipeRemove) {
entity4 = RecipeController.instance.removeRecipe(dis.readInt());
NoppesUtilServer.sendRecipeData(player, entity4.isGlobal ? 3 : 4);
NoppesUtilServer.setRecipeGui(player, new RecipeCarpentry());
} else if (type == EnumPacketType.RecipeSave) {
entity4 = RecipeController.instance.saveRecipe(dis);
NoppesUtilServer.sendRecipeData(player, entity4.isGlobal ? 3 : 4);
NoppesUtilServer.setRecipeGui(player, entity4);
} else if (type == EnumPacketType.DialogCategoriesGet) {
NoppesUtilServer.sendDialogCategoryData(player);
} else {
DialogCategory entity6;
if (type == EnumPacketType.DialogCategorySave) {
entity6 = new DialogCategory();
entity6.readNBT(CompressedStreamTools.read(dis));
DialogController.instance.saveCategory(entity6);
NoppesUtilServer.sendDialogCategoryData(player);
} else if (type == EnumPacketType.DialogCategoryRemove) {
DialogController.instance.removeCategory(dis);
NoppesUtilServer.sendDialogCategoryData(player);
} else if (type == EnumPacketType.DialogCategoryGet) {
entity6 = (DialogCategory) DialogController.instance.categories.get(Integer.valueOf(dis.readInt()));
if (entity6 != null) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity6.writeNBT(new NBTTagCompound())});
}
} else if (type == EnumPacketType.DialogsGet) {
NoppesUtilServer.sendDialogData(player, (DialogCategory) DialogController.instance.categories.get(Integer.valueOf(dis.readInt())));
} else {
NBTTagCompound list2;
Dialog entity8;
if (type == EnumPacketType.DialogGet) {
entity8 = (Dialog) DialogController.instance.dialogs.get(Integer.valueOf(dis.readInt()));
if (entity8 != null) {
list2 = entity8.writeToNBT(new NBTTagCompound());
Quest datatype1 = (Quest) QuestController.instance.quests.get(Integer.valueOf(entity8.quest));
if (datatype1 != null) {
list2.setString("DialogQuestName", datatype1.title);
}
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{list2});
}
} else if (type == EnumPacketType.DialogsGetFromDialog) {
entity8 = (Dialog) DialogController.instance.dialogs.get(Integer.valueOf(dis.readInt()));
if (entity8 == null) {
return;
}
NoppesUtilServer.sendDialogData(player, entity8.category);
} else if (type == EnumPacketType.DialogSave) {
entity = dis.readInt();
Dialog list1 = new Dialog();
list1.readNBT(CompressedStreamTools.read(dis));
DialogController.instance.saveDialog(entity, list1);
if (list1.category != null) {
NoppesUtilServer.sendDialogData(player, list1.category);
}
} else {
Quest entity7;
if (type == EnumPacketType.QuestOpenGui) {
entity7 = new Quest();
list = dis.readInt();
entity7.readNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.setEditingQuest(player, entity7);
player.openGui(CustomNpcs.instance, list, player.worldObj, 0, 0, 0);
} else if (type == EnumPacketType.DialogEdit) {
entity8 = (Dialog) DialogController.instance.dialogs.get(Integer.valueOf(dis.readInt()));
if (entity8 != null) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity8.writeToNBT(new NBTTagCompound())});
}
} else if (type == EnumPacketType.DialogRemove) {
entity8 = (Dialog) DialogController.instance.dialogs.get(Integer.valueOf(dis.readInt()));
if (entity8 != null && entity8.category != null) {
DialogController.instance.removeDialog(entity8);
NoppesUtilServer.sendDialogData(player, entity8.category);
}
} else if (type == EnumPacketType.DialogNpcGet) {
NoppesUtilServer.sendNpcDialogs(player);
} else if (type == EnumPacketType.DialogNpcSet) {
entity = dis.readInt();
list = dis.readInt();
DialogOption datatype3 = NoppesUtilServer.setNpcDialog(entity, list, player);
if (datatype3 != null && datatype3.hasDialog()) {
NBTTagCompound compound1 = datatype3.writeNBT();
compound1.setInteger("Position", entity);
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{compound1});
}
} else if (type == EnumPacketType.DialogNpcRemove) {
npc.dialogs.remove(Integer.valueOf(dis.readInt()));
} else if (type == EnumPacketType.QuestGet) {
entity7 = (Quest) QuestController.instance.quests.get(Integer.valueOf(dis.readInt()));
if (entity7 != null) {
list2 = new NBTTagCompound();
if (entity7.hasNewQuest()) {
list2.setString("NextQuestTitle", entity7.getNextQuest().title);
}
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity7.writeToNBT(list2)});
}
} else {
QuestCategory entity9;
if (type == EnumPacketType.QuestCategoryGet) {
entity9 = (QuestCategory) QuestController.instance.categories.get(Integer.valueOf(dis.readInt()));
if (entity9 != null) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity9.writeNBT(new NBTTagCompound())});
}
} else if (type == EnumPacketType.QuestCategorySave) {
entity9 = new QuestCategory();
entity9.readNBT(CompressedStreamTools.read(dis));
QuestController.instance.saveCategory(entity9);
NoppesUtilServer.sendQuestCategoryData(player);
} else if (type == EnumPacketType.QuestCategoriesGet) {
NoppesUtilServer.sendQuestCategoryData(player);
} else if (type == EnumPacketType.QuestCategoryRemove) {
QuestController.instance.removeCategory(dis);
NoppesUtilServer.sendQuestCategoryData(player);
} else if (type == EnumPacketType.QuestsGet) {
entity9 = (QuestCategory) QuestController.instance.categories.get(Integer.valueOf(dis.readInt()));
NoppesUtilServer.sendQuestData(player, entity9);
} else if (type == EnumPacketType.QuestsGetFromQuest) {
entity7 = (Quest) QuestController.instance.quests.get(Integer.valueOf(dis.readInt()));
if (entity7 == null) {
return;
}
NoppesUtilServer.sendQuestData(player, entity7.category);
} else if (type == EnumPacketType.QuestEdit) {
entity7 = (Quest) QuestController.instance.quests.get(Integer.valueOf(dis.readInt()));
if (entity7 != null) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity7.writeToNBT(new NBTTagCompound())});
}
} else if (type == EnumPacketType.QuestSave) {
entity7 = QuestController.instance.saveQuest(dis);
if (entity7.category != null) {
NoppesUtilServer.sendQuestData(player, entity7.category);
}
} else if (type == EnumPacketType.QuestRemove) {
entity7 = (Quest) QuestController.instance.quests.get(Integer.valueOf(dis.readInt()));
if (entity7 != null) {
QuestController.instance.removeQuest(entity7);
NoppesUtilServer.sendQuestData(player, entity7.category);
}
} else if (type == EnumPacketType.TransportCategoriesGet) {
NoppesUtilServer.sendTransportCategoryData(player);
} else if (type == EnumPacketType.TransportCategorySave) {
TransportController.getInstance().saveCategory(dis);
} else if (type == EnumPacketType.TransportCategoryRemove) {
TransportController.getInstance().removeCategory(dis.readInt());
NoppesUtilServer.sendTransportCategoryData(player);
} else if (type == EnumPacketType.TransportRemove) {
entity = dis.readInt();
TransportController.getInstance().removeLocation(entity);
NoppesUtilServer.sendTransportData(player, entity);
} else if (type == EnumPacketType.TransportsGet) {
NoppesUtilServer.sendTransportData(player, dis.readInt());
} else if (type == EnumPacketType.TransportSave) {
entity = dis.readInt();
TransportLocation list3 = TransportController.getInstance().saveLocation(entity, dis, player, NoppesUtilServer.getEditingNpc(player));
if (list3 != null) {
if (npc.advanced.role != EnumRoleType.Transporter) {
return;
}
((RoleTransporter) npc.roleInterface).setTransport(list3);
NoppesUtilServer.sendTransportData(player, entity);
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{list3.writeNBT()});
}
} else if (type == EnumPacketType.SaveTileEntity) {
NoppesUtilServer.saveTileEntity(player, dis);
} else if (type == EnumPacketType.TransportGetLocation) {
if (npc.advanced.role != EnumRoleType.Transporter) {
return;
}
RoleTransporter entity11 = (RoleTransporter) npc.roleInterface;
if (entity11.hasTransport()) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity11.getLocation().writeNBT()});
NoppesUtilServer.sendData(player, EnumPacketType.ScrollSelected, new Object[]{entity11.getLocation().category.title});
}
} else if (type == EnumPacketType.FactionsGet) {
NoppesUtilServer.sendFactionDataAll(player);
} else if (type == EnumPacketType.FactionSet) {
npc.setFaction(dis.readInt());
} else if (type == EnumPacketType.FactionSave) {
Faction entity10 = new Faction();
entity10.readNBT(CompressedStreamTools.read(dis));
FactionController.getInstance().saveFaction(entity10);
NoppesUtilServer.sendFactionDataAll(player);
list2 = new NBTTagCompound();
entity10.writeNBT(list2);
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{list2});
} else if (type == EnumPacketType.FactionRemove) {
FactionController.getInstance().removeFaction(dis.readInt());
NoppesUtilServer.sendFactionDataAll(player);
entity2 = new NBTTagCompound();
(new Faction()).writeNBT(entity2);
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity2});
} else if (type == EnumPacketType.FactionGet) {
entity2 = new NBTTagCompound();
Faction list4 = FactionController.getInstance().getFaction(dis.readInt());
list4.writeNBT(entity2);
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{entity2});
} else if (type == EnumPacketType.PlayerDataGet) {
entity = dis.readInt();
if (EnumPlayerData.values().length <= entity) {
return;
}
String list5 = null;
EnumPlayerData datatype2 = EnumPlayerData.values()[entity];
if (datatype2 != EnumPlayerData.Players) {
list5 = dis.readUTF();
}
NoppesUtilServer.sendPlayerData(datatype2, player, list5);
} else if (type == EnumPacketType.PlayerDataRemove) {
NoppesUtilServer.removePlayerData(dis, player);
} else if (type == EnumPacketType.MainmenuDisplayGet) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{npc.display.writeToNBT(new NBTTagCompound())});
} else if (type == EnumPacketType.MainmenuDisplaySave) {
npc.display.readToNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MainmenuStatsGet) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{npc.stats.writeToNBT(new NBTTagCompound())});
} else if (type == EnumPacketType.MainmenuStatsSave) {
npc.stats.readToNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MainmenuInvGet) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{npc.inventory.writeEntityToNBT(new NBTTagCompound())});
} else if (type == EnumPacketType.MainmenuInvSave) {
npc.inventory.readEntityFromNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MainmenuAIGet) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{npc.ai.writeToNBT(new NBTTagCompound())});
} else if (type == EnumPacketType.MainmenuAISave) {
npc.ai.readToNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MainmenuAISave) {
npc.inventory.readEntityFromNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MainmenuAdvancedGet) {
NoppesUtilServer.sendData(player, EnumPacketType.GuiData, new Object[]{npc.advanced.writeToNBT(new NBTTagCompound())});
} else if (type == EnumPacketType.MainmenuAdvancedSave) {
npc.advanced.readToNBT(CompressedStreamTools.read(dis));
NoppesUtilServer.sendDataToAll(npc, EnumPacketType.UpdateNpc, new Object[]{npc.copy()});
} else if (type == EnumPacketType.MerchantUpdate) {
entity3 = player.worldObj.getEntityByID(dis.readInt());
if (entity3 == null || !(entity3 instanceof EntityVillager)) {
return;
}
MerchantRecipeList list6 = MerchantRecipeList.readRecipiesFromStream(dis);
((EntityVillager) entity3).setRecipes(list6);
}
}
}
}
}
}
}
}
}
}
}
}
}
Да, это один метод.
Последнее редактирование модератором: