diff --git a/src/main/NGECore.java b/src/main/NGECore.java index c33a3e94..af8330a3 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -170,12 +170,12 @@ public class NGECore { //public MissionService missionService; public InstanceService instanceService; public DevService devService; -<<<<<<< HEAD + public SurveyService surveyService; public ResourceService resourceService; -======= + public ConversationService conversationService; ->>>>>>> origin/master + // Login Server public NetworkDispatch loginDispatch; @@ -199,16 +199,16 @@ public class NGECore { private BusConfiguration eventBusConfig = BusConfiguration.Default(1, new ThreadPoolExecutor(1, 4, 1, TimeUnit.MINUTES, new LinkedBlockingQueue())); private ObjectDatabase buildingODB; -<<<<<<< HEAD + private ObjectDatabase resourcesODB; private ObjectDatabase resourceRootsODB; private ObjectDatabase resourceHistoryODB; public static boolean PACKET_DEBUG = false; -======= ->>>>>>> origin/master + + public NGECore() { diff --git a/src/services/DevService.java b/src/services/DevService.java index 502b7f2f..ccc3a8bd 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -1,4 +1,3 @@ -<<<<<<< HEAD /******************************************************************************* * Copyright (c) 2013 * @@ -33,9 +32,6 @@ import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import protocol.swg.ExpertiseRequestMessage; -import protocol.swg.SceneCreateObjectByCrc; -import protocol.swg.SceneEndBaselines; -import protocol.swg.UpdateContainmentMessage; import resources.common.Console; import resources.common.FileUtilities; import resources.common.Opcodes; @@ -53,352 +49,6 @@ import main.NGECore; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.DatatableVisitor; import engine.clients.Client; -import engine.resources.common.CRC; -import engine.resources.objects.SWGObject; -import engine.resources.scene.Planet; -import engine.resources.scene.Point3D; -import engine.resources.service.INetworkDispatch; -import engine.resources.service.INetworkRemoteEvent; - -@SuppressWarnings("unused") -public class DevService implements INetworkDispatch { - - private NGECore core; - - public DevService(NGECore core) { - this.core = core; - } - - public void sendCharacterBuilderSUI(CreatureObject creature, int childMenu) - { - Map suiOptions = new HashMap(); - - switch(childMenu) - { - case 0: // Root - suiOptions.put((long) 1, "Character"); - suiOptions.put((long) 2, "Items"); - break; - case 1: // Character - suiOptions.put((long) 10, "Set combat level to 90"); - suiOptions.put((long) 11, "Give 100,000 credits"); - suiOptions.put((long) 12, "Reset expertise"); - break; - case 2: // Items - suiOptions.put((long) 20, "(Light) Jedi Robe"); - suiOptions.put((long) 21, "(Dark) Jedi Robe"); - suiOptions.put((long) 22, "Composite Armor"); - suiOptions.put((long) 23, "Weapons"); - suiOptions.put((long) 24, "Misc Items"); - suiOptions.put((long) 25, "Tools"); - break; - case 3: // [Items] Weapons - suiOptions.put((long) 30, "Jedi Weapons"); - suiOptions.put((long) 31, "Melee Weapons"); - suiOptions.put((long) 32, "Ranged Weapons"); - break; - case 4: // [Items] Misc Items - suiOptions.put((long) 40, "Unity Ring"); - case 5: // [Items] Tools - suiOptions.put((long) 110, "Survey Devices"); - } - - final SUIWindow window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, "Character Builder Terminal", "Select the desired option and click OK.", suiOptions, creature, null, 10); - Vector returnList = new Vector(); - - returnList.add("List.lstList:SelectedRow"); - - window.addHandler(0, "", Trigger.TRIGGER_OK, returnList, new SUICallback() - { - public void process(SWGObject owner, int eventType, Vector returnList) - { - int index = Integer.parseInt(returnList.get(0)); - int childIndex = (int) window.getObjectIdByIndex(index); - - CreatureObject player = (CreatureObject) owner; - SWGObject inventory = player.getSlottedObject("inventory"); - Planet planet = player.getPlanet(); - - switch(childIndex) - { - // Root - case 1: // Character - sendCharacterBuilderSUI(player, 1); - return; - case 2: // Items - sendCharacterBuilderSUI(player, 2); - return; - - // Character - case 10: // Set combat level to 90 - core.playerService.grantLevel(player, 90); // Commented out until fixed - //core.playerService.giveExperience(player, 999999999); - return; - case 11: // Give 100,000 credits - player.setCashCredits(player.getCashCredits() + 100000); - return; - case 12: // Reset expertise - // Seefo->Light: I commented out the below line because it gave us an error and didn't properly remove the skill, could you try the method SWGList.reverseGet that I added? - //player.getSkills().get().stream().filter(s -> s.contains("expertise")).forEach(s -> core.skillService.removeSkill(creature, s)); - - // Using this for now - for(int i = creature.getSkills().size() - 1; i >= 0; i-- ) - { - String skill = creature.getSkills().get(i); - if(skill.contains("expertise")) core.skillService.removeSkill(player, skill); - } - return; - - // Items - case 20: // (Light) Jedi Robe - inventory.add(core.objectService.createObject("object/tangible/wearables/robe/shared_robe_jedi_light_s03.iff", planet)); - return; - case 21: // (Dark) Jedi Robe - inventory.add(core.objectService.createObject("object/tangible/wearables/robe/shared_robe_jedi_dark_s03.iff", planet)); - return; - case 22: // Composite Armor - SWGObject bicep_r = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff", planet); - bicep_r.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - bicep_r.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject bicep_l = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff", planet); - bicep_l.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - bicep_l.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject bracer_r = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff", planet); - bracer_r.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - bracer_r.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject bracer_l = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff", planet); - bracer_l.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - bracer_l.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject leggings = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff", planet); - leggings.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - leggings.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject helmet = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff", planet); - helmet.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - helmet.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject chest = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff", planet); - chest.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - chest.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - chest.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - chest.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - chest.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - chest.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - SWGObject boots = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff", planet); - SWGObject gloves = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff", planet); - - - - inventory.add(bicep_r); - inventory.add(bicep_l); - inventory.add(bracer_r); - inventory.add(bracer_l); - inventory.add(leggings); - inventory.add(helmet); - inventory.add(chest); - inventory.add(boots); - inventory.add(gloves); - - - return; - case 23: // Weapons - sendCharacterBuilderSUI(player, 3); - return; - - case 24: // Misc Items - sendCharacterBuilderSUI(player, 4); - return; - case 25: // Tools - sendCharacterBuilderSUI(player, 5); - return; - - // [Items] Weapons - case 30: // Jedi Weapons - TangibleObject lightsaber1 = (TangibleObject) core.objectService.createObject("object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff", planet); - lightsaber1.setIntAttribute("required_combat_level", 90); - lightsaber1.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); - lightsaber1.setStringAttribute("class_required", "Jedi"); - lightsaber1.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); - lightsaber1.setStringAttribute("cat_wpn_damage.damage", "689-1379"); - - TangibleObject lightsaber2 = (TangibleObject) core.objectService.createObject("object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff", planet); - lightsaber2.setIntAttribute("required_combat_level", 90); - lightsaber2.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); - lightsaber2.setStringAttribute("class_required", "Jedi"); - lightsaber2.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); - lightsaber2.setStringAttribute("cat_wpn_damage.damage", "689-1379"); - - TangibleObject lightsaber3 = (TangibleObject) core.objectService.createObject("object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff", planet); - lightsaber3.setIntAttribute("required_combat_level", 90); - lightsaber3.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); - lightsaber3.setStringAttribute("class_required", "Jedi"); - lightsaber3.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); - lightsaber3.setStringAttribute("cat_wpn_damage.damage", "689-1379"); - - Random random = new Random(); - - lightsaber1.setCustomizationVariable("/private/index_color_blade", (byte) random.nextInt(47)); - lightsaber2.setCustomizationVariable("/private/index_color_blade", (byte) random.nextInt(47)); - lightsaber3.setCustomizationVariable("/private/index_color_blade", (byte) random.nextInt(47)); - - inventory.add(lightsaber1); - inventory.add(lightsaber2); - inventory.add(lightsaber3); - return; - case 31: // Melee Weapons - SWGObject sword1 = core.objectService.createObject("object/weapon/melee/sword/shared_sword_01.iff", planet); - sword1.setIntAttribute("required_combat_level", 90); - sword1.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); - sword1.setStringAttribute("class_required", "None"); - sword1.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); - sword1.setStringAttribute("cat_wpn_damage.damage", "1100-1200"); - - inventory.add(sword1); - return; - case 32: // Ranged Weapons - SWGObject rifle1 = core.objectService.createObject("object/weapon/ranged/rifle/shared_rifle_e11.iff", planet); - rifle1.setIntAttribute("required_combat_level", 90); - rifle1.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); - rifle1.setStringAttribute("class_required", "None"); - rifle1.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); - rifle1.setStringAttribute("cat_wpn_damage.damage", "800-1250"); - - inventory.add(rifle1); - return; - case 40: - TangibleObject ring = (TangibleObject) core.objectService.createObject("object/tangible/wearables/ring/shared_ring_s01.iff", planet); - ring.setCustomName("Unity Ring"); - inventory.add(ring); - - case 110: - SurveyTool mineralSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_mineral.iff", planet); - mineralSurveyTool.setCustomName("Mineral Survey Device"); - inventory.add(mineralSurveyTool); - - SurveyTool chemicalSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_inorganic.iff", planet); - chemicalSurveyTool.setCustomName("Chemical Survey Device"); - inventory.add(chemicalSurveyTool); - - SurveyTool floraSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_lumber.iff", planet); - floraSurveyTool.setCustomName("Flora Survey Device"); - inventory.add(floraSurveyTool); - - SurveyTool gasSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_gas.iff", planet); - gasSurveyTool.setCustomName("Gas Survey Device"); - inventory.add(gasSurveyTool); - - SurveyTool waterSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_moisture.iff", planet); - waterSurveyTool.setCustomName("Water Survey Device"); - inventory.add(waterSurveyTool); - - SurveyTool windSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_wind.iff", planet); - windSurveyTool.setCustomName("Wind Survey Device"); - inventory.add(windSurveyTool); - - SurveyTool solarSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_solar.iff", planet); - solarSurveyTool.setCustomName("Solar Survey Device"); - inventory.add(solarSurveyTool); - - break; - } - } - }); - - core.suiService.openSUIWindow(window); - } - - @Override - public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { - } - - - @Override - public void shutdown() { - - } - -} -======= -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package services; - -import java.nio.ByteOrder; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Vector; - -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; - -import protocol.swg.ExpertiseRequestMessage; - -import resources.common.Console; -import resources.common.FileUtilities; -import resources.common.Opcodes; -import resources.common.SpawnPoint; -import resources.objects.building.BuildingObject; -import resources.objects.creature.CreatureObject; -import resources.objects.player.PlayerObject; -import resources.objects.tangible.TangibleObject; -import services.sui.SUIWindow; -import services.sui.SUIService.ListBoxType; -import services.sui.SUIWindow.SUICallback; -import services.sui.SUIWindow.Trigger; -import main.NGECore; -import engine.clientdata.ClientFileManager; -import engine.clientdata.visitors.DatatableVisitor; -import engine.clients.Client; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -434,6 +84,7 @@ public class DevService implements INetworkDispatch { suiOptions.put((long) 21, "Weapons"); suiOptions.put((long) 22, "Misc Items"); suiOptions.put((long) 23, "Jedi Items"); + suiOptions.put((long) 110, "Survey Devices"); break; case 3: // [Items] Weapons suiOptions.put((long) 30, "Jedi Weapons"); @@ -470,6 +121,7 @@ public class DevService implements INetworkDispatch { suiOptions.put((long) 91, "(Dark) Jedi Robe"); suiOptions.put((long) 92, "Belt of Master Bodo Baas"); break; + } final SUIWindow window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, "Character Builder Terminal", "Select the desired option and click OK.", suiOptions, creature, null, 10); @@ -531,6 +183,9 @@ public class DevService implements INetworkDispatch { case 23: // Jedi Items sendCharacterBuilderSUI(player, 9); return; + case 25: // Tools + sendCharacterBuilderSUI(player, 15); + return; // [Items] Weapons case 30: // Jedi Weapons @@ -1297,6 +952,36 @@ public class DevService implements INetworkDispatch { case 92: // Belt of Master Bodo Baas inventory.add(core.objectService.createObject("object/tangible/wearables/backpack/shared_fannypack_s01.iff", planet)); return; + case 110: + SurveyTool mineralSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_mineral.iff", planet); + mineralSurveyTool.setCustomName("Mineral Survey Device"); + inventory.add(mineralSurveyTool); + + SurveyTool chemicalSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_inorganic.iff", planet); + chemicalSurveyTool.setCustomName("Chemical Survey Device"); + inventory.add(chemicalSurveyTool); + + SurveyTool floraSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_lumber.iff", planet); + floraSurveyTool.setCustomName("Flora Survey Device"); + inventory.add(floraSurveyTool); + + SurveyTool gasSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_gas.iff", planet); + gasSurveyTool.setCustomName("Gas Survey Device"); + inventory.add(gasSurveyTool); + + SurveyTool waterSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_moisture.iff", planet); + waterSurveyTool.setCustomName("Water Survey Device"); + inventory.add(waterSurveyTool); + + SurveyTool windSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_wind.iff", planet); + windSurveyTool.setCustomName("Wind Survey Device"); + inventory.add(windSurveyTool); + + SurveyTool solarSurveyTool = (SurveyTool) core.objectService.createObject("object/tangible/survey_tool/shared_survey_tool_solar.iff", planet); + solarSurveyTool.setCustomName("Solar Survey Device"); + inventory.add(solarSurveyTool); + + break; } } }); @@ -1315,4 +1000,4 @@ public class DevService implements INetworkDispatch { } } ->>>>>>> origin/master + diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index f54252a0..99b41332 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -86,7 +86,7 @@ public class CommandService implements INetworkDispatch { BaseSWGCommand command = getCommandByCRC(commandEnqueue.getCommandCRC()); if(command == null) { - //System.out.println("Unknown Command CRC: " + Integer.toHexString(commandEnqueue.getCommandCRC())); + //System.out.println("Unknown Command CRC: " + commandEnqueue.getCommandCRC()); return; } @@ -102,19 +102,10 @@ public class CommandService implements INetworkDispatch { CreatureObject actor = (CreatureObject) client.getParent(); - if (!actor.hasAbility(command.getRequiredAbility())) - return; -<<<<<<< HEAD - } - - core.scriptService.callScript("scripts/commands/", command.getCommandName(), "run", core, actor, target, commandEnqueue.getCommandArguments()); -======= - if (actor.hasCooldown(command.getCommandName())) return; SWGObject target = core.objectService.getObject(commandEnqueue.getTargetID()); ->>>>>>> origin/master // May want to have a warmup def to be called at some point in the future. if (command.getWarmupTime() != 0 && !(command instanceof CombatCommand)) { @@ -330,7 +321,7 @@ public class CommandService implements INetworkDispatch { } } - + public void callCommand(SWGObject actor, String commandName, SWGObject target, String commandArgs) { if (actor == null) return;