From fefc168dca2e4c5f5ba11a6c35f918645ddb0f4b Mon Sep 17 00:00:00 2001 From: Obique PSWG Date: Tue, 11 Apr 2017 11:30:43 -0500 Subject: [PATCH] Changed Holocore to use new logging system in the common lib --- lib/PSWGCommon.jar | Bin 167344 -> 168360 bytes src/main/ProjectSWG.java | 11 +- src/network/NetworkClient.java | 2 +- src/network/PacketType.java | 151 +++++++-- src/network/encryption/MD5.java | 5 +- src/network/packets/Packet.java | 11 +- src/network/packets/swg/SWGPacket.java | 5 +- .../object_controller/ObjectController.java | 6 +- src/resources/client_info/ClientFactory.java | 3 +- src/resources/client_info/DataFactory.java | 3 +- src/resources/client_info/SWGFile.java | 3 +- src/resources/client_info/ServerFactory.java | 9 +- .../client_info/visitors/DatatableData.java | 11 +- .../client_info/visitors/ObjectData.java | 5 +- .../appearance/AppearanceTemplateList.java | 3 +- .../DetailedAppearanceTemplateData.java | 3 +- src/resources/collections/SWGList.java | 18 +- src/resources/collections/SWGMap.java | 2 +- src/resources/collections/SWGSet.java | 2 +- .../callbacks/AdminTeleportCallback.java | 3 +- .../commands/callbacks/GotoCmdCallback.java | 2 +- .../commands/callbacks/QaToolCmdCallback.java | 2 +- .../RequestBiographyCmdCallback.java | 3 +- .../commands/callbacks/ServerCmdCallback.java | 10 +- .../encodables/OutOfBandPackage.java | 13 +- src/resources/encodables/ProsePackage.java | 6 +- src/resources/encodables/StringId.java | 6 +- .../encodables/player/Equipment.java | 5 +- src/resources/network/BaselineBuilder.java | 9 +- src/resources/network/NetBuffer.java | 3 +- src/resources/network/TCPServer.java | 3 +- src/resources/network/UDPServer.java | 3 +- src/resources/objects/SWGObject.java | 2 +- .../objects/awareness/AwarenessHandler.java | 2 +- .../objects/awareness/TerrainMap.java | 2 +- .../objects/buildouts/BuildoutLoader.java | 3 +- .../buildouts/TerrainBuildoutLoader.java | 3 +- .../buildouts/TerrainSnapshotLoader.java | 3 +- src/resources/radial/RadialOptionList.java | 3 +- src/resources/radial/Radials.java | 4 +- .../server_info/CachedObjectDatabase.java | 2 + src/resources/server_info/ConfigWatcher.java | 7 +- src/resources/server_info/CrcDatabase.java | 1 + src/resources/server_info/DataManager.java | 5 +- src/resources/server_info/Log.java | 297 ------------------ src/resources/server_info/ObjectDatabase.java | 1 + src/resources/server_info/StandardLog.java | 2 + src/resources/sui/SuiBaseWindow.java | 9 +- src/resources/sui/SuiComponent.java | 11 +- src/resources/zone/NameFilter.java | 7 +- src/services/CoreManager.java | 4 +- src/services/EngineManager.java | 2 +- src/services/chat/ChatMailService.java | 2 +- src/services/chat/ChatManager.java | 2 +- src/services/chat/ChatRoomContainer.java | 2 +- src/services/chat/ChatRoomHandler.java | 10 +- .../collections/CollectionService.java | 2 +- .../collections/ExplorationBadgeService.java | 2 +- src/services/combat/CombatManager.java | 2 +- src/services/combat/CombatXpService.java | 2 +- src/services/combat/CorpseService.java | 2 +- src/services/commands/BuffService.java | 2 +- .../commands/CommandCooldownHandler.java | 2 +- src/services/commands/CommandLauncher.java | 6 +- src/services/commands/CommandService.java | 39 ++- .../commands/EntertainmentService.java | 2 +- .../experience/ExperienceManager.java | 2 +- src/services/experience/ExpertiseService.java | 2 +- src/services/experience/SkillManager.java | 2 +- .../experience/SkillTemplateService.java | 2 +- src/services/galaxy/ConnectionService.java | 2 +- .../galaxy/terminals/TerminalService.java | 2 +- src/services/galaxy/travel/TravelGroup.java | 3 +- src/services/galaxy/travel/TravelService.java | 2 +- src/services/map/CityService.java | 2 +- .../network/HolocoreSessionManager.java | 5 +- .../network/InboundNetworkManager.java | 2 +- .../network/NetworkClientManager.java | 2 +- src/services/network/PacketSender.java | 5 +- .../objects/ClientBuildoutService.java | 2 +- src/services/objects/ObjectAwareness.java | 2 +- src/services/objects/ObjectCreator.java | 3 +- src/services/objects/ObjectManager.java | 2 +- src/services/objects/RadialService.java | 2 +- src/services/objects/StaticItemService.java | 2 +- src/services/objects/UniformBoxService.java | 2 +- .../player/CharacterCreationRestriction.java | 3 +- .../player/CharacterCreationService.java | 2 +- src/services/player/LoginService.java | 2 +- src/services/player/TerrainZoneInsertion.java | 2 +- src/services/player/ZoneManager.java | 2 +- .../player/creation/CharacterCreation.java | 2 +- src/services/spawn/SpawnerService.java | 2 +- src/services/spawn/StaticService.java | 2 +- src/services/sui/SuiService.java | 2 +- src/utilities/CrcDatabaseGenerator.java | 3 +- src/utilities/Encoder.java | 7 +- src/utilities/IntentFactory.java | 2 +- src/utilities/Scripts.java | 3 +- src/utilities/namegen/SWGNameGenerator.java | 9 +- .../objects/awareness/MapCallback.java | 3 +- .../awareness/TestAwarenessHandler.java | 3 +- .../objects/awareness/TestTerrainMap.java | 3 +- test/resources/services/TestConfig.java | 3 +- 104 files changed, 382 insertions(+), 489 deletions(-) delete mode 100644 src/resources/server_info/Log.java diff --git a/lib/PSWGCommon.jar b/lib/PSWGCommon.jar index 6a5ffb4b5d9cda585da32ebca9cdcb2074738188..2b18b1b74ffb342fc11129ab2ee9499613c62152 100644 GIT binary patch delta 26539 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 delta 25726 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 diff --git a/src/main/ProjectSWG.java b/src/main/ProjectSWG.java index 45d752f1b..ccf3d58ff 100644 --- a/src/main/ProjectSWG.java +++ b/src/main/ProjectSWG.java @@ -29,6 +29,8 @@ package main; import intents.server.ServerStatusIntent; +import java.io.File; +import java.io.IOException; import java.lang.Thread.State; import java.util.HashMap; import java.util.List; @@ -39,11 +41,14 @@ import java.util.stream.Collectors; import resources.Galaxy.GalaxyStatus; import resources.control.ServerStatus; import resources.server_info.DataManager; -import resources.server_info.Log; import services.CoreManager; import com.projectswg.common.concurrency.Delay; import com.projectswg.common.control.IntentManager; +import com.projectswg.common.debug.Log; +import com.projectswg.common.debug.Log.LogLevel; +import com.projectswg.common.debug.log_wrapper.ConsoleLogWrapper; +import com.projectswg.common.debug.log_wrapper.FileLogWrapper; public class ProjectSWG { @@ -55,7 +60,9 @@ public class ProjectSWG { private ServerInitStatus initStatus; private int adminServerPort; - public static final void main(String [] args) { + public static final void main(String [] args) throws IOException { + Log.addWrapper(new ConsoleLogWrapper(LogLevel.VERBOSE)); + Log.addWrapper(new FileLogWrapper(new File("log.txt"))); server = new ProjectSWG(); AtomicBoolean forcingShutdown = new AtomicBoolean(false); Runtime.getRuntime().addShutdownHook(new Thread(() -> { diff --git a/src/network/NetworkClient.java b/src/network/NetworkClient.java index ec57ee04c..8564795f6 100644 --- a/src/network/NetworkClient.java +++ b/src/network/NetworkClient.java @@ -41,7 +41,6 @@ import network.packets.swg.admin.AdminPacket; import network.packets.swg.holo.HoloConnectionStopped; import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; import resources.network.NetBufferStream; -import resources.server_info.Log; import services.network.HolocoreSessionManager; import services.network.HolocoreSessionManager.ResponseAction; import services.network.NetworkProtocol; @@ -49,6 +48,7 @@ import services.network.PacketSender; import com.projectswg.common.control.IntentChain; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class NetworkClient { diff --git a/src/network/PacketType.java b/src/network/PacketType.java index 2aefbcc37..69c55fcb8 100644 --- a/src/network/PacketType.java +++ b/src/network/PacketType.java @@ -27,27 +27,142 @@ ***********************************************************************************/ package network; -import network.packets.swg.*; -import network.packets.swg.admin.*; -import network.packets.swg.holo.*; -import network.packets.swg.login.*; -import network.packets.swg.login.creation.*; -import network.packets.swg.zone.*; -import network.packets.swg.zone.auction.*; -import network.packets.swg.zone.baselines.*; -import network.packets.swg.zone.building.*; -import network.packets.swg.zone.chat.*; -import network.packets.swg.zone.combat.*; -import network.packets.swg.zone.deltas.*; -import network.packets.swg.zone.insertion.*; -import network.packets.swg.zone.object_controller.*; -import network.packets.swg.zone.server_ui.*; -import network.packets.swg.zone.spatial.*; - import java.util.HashMap; import java.util.Map; -import resources.server_info.Log; +import network.packets.swg.ErrorMessage; +import network.packets.swg.SWGPacket; +import network.packets.swg.ServerUnixEpochTime; +import network.packets.swg.admin.AdminShutdownServer; +import network.packets.swg.holo.HoloConnectionStarted; +import network.packets.swg.holo.HoloConnectionStopped; +import network.packets.swg.holo.HoloSetProtocolVersion; +import network.packets.swg.login.AccountFeatureBits; +import network.packets.swg.login.CharacterCreationDisabled; +import network.packets.swg.login.ClientIdMsg; +import network.packets.swg.login.ClientPermissionsMessage; +import network.packets.swg.login.ConnectionServerLagResponse; +import network.packets.swg.login.EnumerateCharacterId; +import network.packets.swg.login.LoginClientId; +import network.packets.swg.login.LoginClientToken; +import network.packets.swg.login.LoginClusterStatus; +import network.packets.swg.login.LoginEnumCluster; +import network.packets.swg.login.LoginIncorrectClientId; +import network.packets.swg.login.OfflineServersMessage; +import network.packets.swg.login.RequestExtendedClusters; +import network.packets.swg.login.ServerId; +import network.packets.swg.login.ServerString; +import network.packets.swg.login.StationIdHasJediSlot; +import network.packets.swg.login.creation.ClientCreateCharacter; +import network.packets.swg.login.creation.ClientVerifyAndLockNameRequest; +import network.packets.swg.login.creation.ClientVerifyAndLockNameResponse; +import network.packets.swg.login.creation.CreateCharacterFailure; +import network.packets.swg.login.creation.CreateCharacterSuccess; +import network.packets.swg.login.creation.DeleteCharacterRequest; +import network.packets.swg.login.creation.DeleteCharacterResponse; +import network.packets.swg.login.creation.RandomNameRequest; +import network.packets.swg.login.creation.RandomNameResponse; +import network.packets.swg.zone.ClientOpenContainerMessage; +import network.packets.swg.zone.CmdSceneReady; +import network.packets.swg.zone.ConnectPlayerResponseMessage; +import network.packets.swg.zone.EnterTicketPurchaseModeMessage; +import network.packets.swg.zone.ExpertiseRequestMessage; +import network.packets.swg.zone.GalaxyLoopTimesResponse; +import network.packets.swg.zone.GameServerLagResponse; +import network.packets.swg.zone.HeartBeat; +import network.packets.swg.zone.LagRequest; +import network.packets.swg.zone.ObjectMenuSelect; +import network.packets.swg.zone.ParametersMessage; +import network.packets.swg.zone.PlanetTravelPointListRequest; +import network.packets.swg.zone.PlanetTravelPointListResponse; +import network.packets.swg.zone.PlayClientEffectObjectMessage; +import network.packets.swg.zone.PlayMusicMessage; +import network.packets.swg.zone.RequestGalaxyLoopTimes; +import network.packets.swg.zone.SceneCreateObjectByCrc; +import network.packets.swg.zone.SceneDestroyObject; +import network.packets.swg.zone.SceneEndBaselines; +import network.packets.swg.zone.ServerNowEpochTime; +import network.packets.swg.zone.ServerTimeMessage; +import network.packets.swg.zone.ServerWeatherMessage; +import network.packets.swg.zone.SetWaypointColor; +import network.packets.swg.zone.ShowBackpack; +import network.packets.swg.zone.ShowHelmet; +import network.packets.swg.zone.StopClientEffectObjectByLabelMessage; +import network.packets.swg.zone.UpdateContainmentMessage; +import network.packets.swg.zone.UpdatePostureMessage; +import network.packets.swg.zone.UpdatePvpStatusMessage; +import network.packets.swg.zone.UpdateTransformMessage; +import network.packets.swg.zone.UpdateTransformWithParentMessage; +import network.packets.swg.zone.auction.AuctionQueryHeadersMessage; +import network.packets.swg.zone.auction.AuctionQueryHeadersResponseMessage; +import network.packets.swg.zone.auction.CancelLiveAuctionMessage; +import network.packets.swg.zone.auction.CancelLiveAuctionResponseMessage; +import network.packets.swg.zone.auction.GetAuctionDetails; +import network.packets.swg.zone.auction.GetAuctionDetailsResponse; +import network.packets.swg.zone.auction.IsVendorOwnerResponseMessage; +import network.packets.swg.zone.auction.RetrieveAuctionItemMessage; +import network.packets.swg.zone.auction.RetrieveAuctionItemResponseMessage; +import network.packets.swg.zone.baselines.Baseline; +import network.packets.swg.zone.building.UpdateCellPermissionMessage; +import network.packets.swg.zone.chat.ChatAddModeratorToRoom; +import network.packets.swg.zone.chat.ChatBanAvatarFromRoom; +import network.packets.swg.zone.chat.ChatCreateRoom; +import network.packets.swg.zone.chat.ChatDeletePersistentMessage; +import network.packets.swg.zone.chat.ChatDestroyRoom; +import network.packets.swg.zone.chat.ChatEnterRoomById; +import network.packets.swg.zone.chat.ChatFriendsListUpdate; +import network.packets.swg.zone.chat.ChatIgnoreList; +import network.packets.swg.zone.chat.ChatInstantMessageToCharacter; +import network.packets.swg.zone.chat.ChatInstantMessageToClient; +import network.packets.swg.zone.chat.ChatInviteAvatarToRoom; +import network.packets.swg.zone.chat.ChatKickAvatarFromRoom; +import network.packets.swg.zone.chat.ChatOnConnectAvatar; +import network.packets.swg.zone.chat.ChatOnCreateRoom; +import network.packets.swg.zone.chat.ChatOnDestroyRoom; +import network.packets.swg.zone.chat.ChatOnEnteredRoom; +import network.packets.swg.zone.chat.ChatOnLeaveRoom; +import network.packets.swg.zone.chat.ChatOnReceiveRoomInvitation; +import network.packets.swg.zone.chat.ChatOnSendInstantMessage; +import network.packets.swg.zone.chat.ChatOnSendRoomMessage; +import network.packets.swg.zone.chat.ChatPersistentMessageToClient; +import network.packets.swg.zone.chat.ChatPersistentMessageToServer; +import network.packets.swg.zone.chat.ChatQueryRoom; +import network.packets.swg.zone.chat.ChatRemoveAvatarFromRoom; +import network.packets.swg.zone.chat.ChatRemoveModeratorFromRoom; +import network.packets.swg.zone.chat.ChatRequestPersistentMessage; +import network.packets.swg.zone.chat.ChatRequestRoomList; +import network.packets.swg.zone.chat.ChatRoomMessage; +import network.packets.swg.zone.chat.ChatSendToRoom; +import network.packets.swg.zone.chat.ChatSystemMessage; +import network.packets.swg.zone.chat.ChatUnbanAvatarFromRoom; +import network.packets.swg.zone.chat.ChatUninviteFromRoom; +import network.packets.swg.zone.chat.ConGenericMessage; +import network.packets.swg.zone.chat.VoiceChatStatus; +import network.packets.swg.zone.combat.GrantCommandMessage; +import network.packets.swg.zone.deltas.DeltasMessage; +import network.packets.swg.zone.insertion.ChatRoomList; +import network.packets.swg.zone.insertion.ChatServerStatus; +import network.packets.swg.zone.insertion.CmdStartScene; +import network.packets.swg.zone.insertion.ConnectPlayerMessage; +import network.packets.swg.zone.insertion.SelectCharacter; +import network.packets.swg.zone.object_controller.ChangeRoleIconChoice; +import network.packets.swg.zone.object_controller.CommandQueueEnqueue; +import network.packets.swg.zone.object_controller.DataTransform; +import network.packets.swg.zone.object_controller.DataTransformWithParent; +import network.packets.swg.zone.object_controller.ObjectController; +import network.packets.swg.zone.object_controller.ObjectMenuRequest; +import network.packets.swg.zone.object_controller.ObjectMenuResponse; +import network.packets.swg.zone.object_controller.ShowLootBox; +import network.packets.swg.zone.object_controller.SpatialChat; +import network.packets.swg.zone.server_ui.SuiCreatePageMessage; +import network.packets.swg.zone.server_ui.SuiEventNotification; +import network.packets.swg.zone.spatial.AttributeListMessage; +import network.packets.swg.zone.spatial.GetMapLocationsMessage; +import network.packets.swg.zone.spatial.GetMapLocationsResponseMessage; +import network.packets.swg.zone.spatial.NewTicketActivityResponseMessage; + +import com.projectswg.common.debug.Log; + public enum PacketType { diff --git a/src/network/encryption/MD5.java b/src/network/encryption/MD5.java index 76b023df4..5735bdf78 100644 --- a/src/network/encryption/MD5.java +++ b/src/network/encryption/MD5.java @@ -27,11 +27,12 @@ ***********************************************************************************/ package network.encryption; +import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.io.UnsupportedEncodingException; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + public class MD5 { diff --git a/src/network/packets/Packet.java b/src/network/packets/Packet.java index d81e96745..b79292867 100644 --- a/src/network/packets/Packet.java +++ b/src/network/packets/Packet.java @@ -27,11 +27,6 @@ ***********************************************************************************/ package network.packets; -import resources.common.CRC; -import resources.encodables.Encodable; -import resources.server_info.Log; -import utilities.Encoder; - import java.net.SocketAddress; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -40,6 +35,12 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import resources.common.CRC; +import resources.encodables.Encodable; +import utilities.Encoder; + +import com.projectswg.common.debug.Log; + public class Packet { diff --git a/src/network/packets/swg/SWGPacket.java b/src/network/packets/swg/SWGPacket.java index a552775a8..00c330125 100644 --- a/src/network/packets/swg/SWGPacket.java +++ b/src/network/packets/swg/SWGPacket.java @@ -27,12 +27,13 @@ ***********************************************************************************/ package network.packets.swg; +import java.nio.ByteBuffer; + import network.PacketType; import network.packets.Packet; import resources.common.CRC; -import resources.server_info.Log; -import java.nio.ByteBuffer; +import com.projectswg.common.debug.Log; public class SWGPacket extends Packet { diff --git a/src/network/packets/swg/zone/object_controller/ObjectController.java b/src/network/packets/swg/zone/object_controller/ObjectController.java index 8ab25e7ba..7e44621b7 100644 --- a/src/network/packets/swg/zone/object_controller/ObjectController.java +++ b/src/network/packets/swg/zone/object_controller/ObjectController.java @@ -29,9 +29,11 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; -import resources.server_info.Log; import network.packets.swg.SWGPacket; -import network.packets.swg.zone.object_controller.combat.*; +import network.packets.swg.zone.object_controller.combat.CombatAction; +import network.packets.swg.zone.object_controller.combat.CombatSpam; + +import com.projectswg.common.debug.Log; public abstract class ObjectController extends SWGPacket { diff --git a/src/resources/client_info/ClientFactory.java b/src/resources/client_info/ClientFactory.java index e0ee9789d..028cfe58c 100644 --- a/src/resources/client_info/ClientFactory.java +++ b/src/resources/client_info/ClientFactory.java @@ -51,7 +51,8 @@ import resources.client_info.visitors.appearance.SkeletalAppearanceData; import resources.client_info.visitors.appearance.SkeletalMeshGeneratorTemplateData; import resources.client_info.visitors.shader.CustomizableShaderData; import resources.client_info.visitors.shader.StaticShaderData; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class ClientFactory extends DataFactory { diff --git a/src/resources/client_info/DataFactory.java b/src/resources/client_info/DataFactory.java index a3529ecec..8d7e2e65b 100644 --- a/src/resources/client_info/DataFactory.java +++ b/src/resources/client_info/DataFactory.java @@ -31,7 +31,8 @@ import java.io.File; import java.io.IOException; import java.nio.channels.ClosedChannelException; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + /** * Created by Waverunner on 6/9/2015 diff --git a/src/resources/client_info/SWGFile.java b/src/resources/client_info/SWGFile.java index d9ae995f1..30b5b62ac 100644 --- a/src/resources/client_info/SWGFile.java +++ b/src/resources/client_info/SWGFile.java @@ -35,7 +35,8 @@ import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.StandardCharsets; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + /** * Created by Waverunner on 6/4/2015 diff --git a/src/resources/client_info/ServerFactory.java b/src/resources/client_info/ServerFactory.java index d60da4cb7..5c818806c 100644 --- a/src/resources/client_info/ServerFactory.java +++ b/src/resources/client_info/ServerFactory.java @@ -27,10 +27,6 @@ package resources.client_info; -import resources.client_info.visitors.DatatableData; -import resources.client_info.visitors.DatatableData.ColumnType; -import resources.server_info.Log; - import java.io.File; import java.io.IOException; import java.nio.file.FileVisitResult; @@ -42,6 +38,11 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import resources.client_info.visitors.DatatableData; +import resources.client_info.visitors.DatatableData.ColumnType; + +import com.projectswg.common.debug.Log; + /** * Created by Waverunner on 6/9/2015 diff --git a/src/resources/client_info/visitors/DatatableData.java b/src/resources/client_info/visitors/DatatableData.java index 71e4b0289..62854b970 100644 --- a/src/resources/client_info/visitors/DatatableData.java +++ b/src/resources/client_info/visitors/DatatableData.java @@ -27,15 +27,16 @@ ***********************************************************************************/ package resources.client_info.visitors; -import resources.client_info.ClientData; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; -import resources.server_info.Log; - import java.util.HashMap; import java.util.Locale; import java.util.Map; +import resources.client_info.ClientData; +import resources.client_info.IffNode; +import resources.client_info.SWGFile; + +import com.projectswg.common.debug.Log; + public class DatatableData extends ClientData { private final Map nameToIndex; diff --git a/src/resources/client_info/visitors/ObjectData.java b/src/resources/client_info/visitors/ObjectData.java index 58664c688..7821a4d92 100644 --- a/src/resources/client_info/visitors/ObjectData.java +++ b/src/resources/client_info/visitors/ObjectData.java @@ -33,11 +33,12 @@ import java.util.Hashtable; import java.util.List; import java.util.Map; -import resources.client_info.ClientFactory; import resources.client_info.ClientData; +import resources.client_info.ClientFactory; import resources.client_info.IffNode; import resources.client_info.SWGFile; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class ObjectData extends ClientData { diff --git a/src/resources/client_info/visitors/appearance/AppearanceTemplateList.java b/src/resources/client_info/visitors/appearance/AppearanceTemplateList.java index 99d1a3ea3..1d8a22724 100644 --- a/src/resources/client_info/visitors/appearance/AppearanceTemplateList.java +++ b/src/resources/client_info/visitors/appearance/AppearanceTemplateList.java @@ -35,7 +35,8 @@ import resources.client_info.IffNode; import resources.client_info.SWGFile; import resources.client_info.visitors.appearance.render.RenderData; import resources.client_info.visitors.appearance.render.RenderableData; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class AppearanceTemplateList extends ClientData implements RenderableData { diff --git a/src/resources/client_info/visitors/appearance/DetailedAppearanceTemplateData.java b/src/resources/client_info/visitors/appearance/DetailedAppearanceTemplateData.java index ed44596b4..6cec3eb13 100644 --- a/src/resources/client_info/visitors/appearance/DetailedAppearanceTemplateData.java +++ b/src/resources/client_info/visitors/appearance/DetailedAppearanceTemplateData.java @@ -37,7 +37,8 @@ import resources.client_info.SWGFile; import resources.client_info.visitors.appearance.render.RenderData; import resources.client_info.visitors.appearance.render.RenderableData; import resources.client_info.visitors.appearance.render.RenderableDataChild; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class DetailedAppearanceTemplateData extends ClientData implements RenderableData { diff --git a/src/resources/collections/SWGList.java b/src/resources/collections/SWGList.java index 5045eeed0..5a42e8694 100644 --- a/src/resources/collections/SWGList.java +++ b/src/resources/collections/SWGList.java @@ -27,15 +27,6 @@ ***********************************************************************************/ package resources.collections; -import network.packets.Packet; -import network.packets.swg.zone.baselines.Baseline.BaselineType; -import resources.encodables.Encodable; -import resources.network.NetBuffer; -import resources.objects.SWGObject; -import resources.server_info.Log; -import utilities.Encoder; -import utilities.Encoder.StringType; - import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.AbstractList; @@ -43,8 +34,17 @@ import java.util.LinkedList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import network.packets.Packet; +import network.packets.swg.zone.baselines.Baseline.BaselineType; +import resources.encodables.Encodable; +import resources.network.NetBuffer; +import resources.objects.SWGObject; +import utilities.Encoder; +import utilities.Encoder.StringType; + import com.projectswg.common.concurrency.SynchronizedList; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; /** * Supports a list of elements which automatically sends data as a delta when changed for baselines. diff --git a/src/resources/collections/SWGMap.java b/src/resources/collections/SWGMap.java index fb41dc797..799a22cda 100644 --- a/src/resources/collections/SWGMap.java +++ b/src/resources/collections/SWGMap.java @@ -36,11 +36,11 @@ import network.packets.Packet; import resources.encodables.Encodable; import resources.network.NetBuffer; import resources.objects.SWGObject; -import resources.server_info.Log; import utilities.Encoder; import utilities.Encoder.StringType; import com.projectswg.common.concurrency.SynchronizedMap; +import com.projectswg.common.debug.Log; public class SWGMap extends SynchronizedMap implements Encodable { diff --git a/src/resources/collections/SWGSet.java b/src/resources/collections/SWGSet.java index cac052d7e..7dd539dc5 100644 --- a/src/resources/collections/SWGSet.java +++ b/src/resources/collections/SWGSet.java @@ -41,12 +41,12 @@ import network.packets.swg.zone.baselines.Baseline; import resources.encodables.Encodable; import resources.network.NetBuffer; import resources.objects.SWGObject; -import resources.server_info.Log; import utilities.Encoder; import utilities.Encoder.StringType; import com.projectswg.common.concurrency.SynchronizedList; import com.projectswg.common.concurrency.SynchronizedSet; +import com.projectswg.common.debug.Log; public class SWGSet extends SynchronizedSet implements Encodable { diff --git a/src/resources/commands/callbacks/AdminTeleportCallback.java b/src/resources/commands/callbacks/AdminTeleportCallback.java index 5a20474c5..ba7969581 100644 --- a/src/resources/commands/callbacks/AdminTeleportCallback.java +++ b/src/resources/commands/callbacks/AdminTeleportCallback.java @@ -33,9 +33,10 @@ import resources.Terrain; import resources.commands.ICmdCallback; import resources.objects.SWGObject; import resources.player.Player; -import resources.server_info.Log; import services.galaxy.GalacticManager; +import com.projectswg.common.debug.Log; + public class AdminTeleportCallback implements ICmdCallback { @Override diff --git a/src/resources/commands/callbacks/GotoCmdCallback.java b/src/resources/commands/callbacks/GotoCmdCallback.java index b21f015bc..2dca8c68b 100644 --- a/src/resources/commands/callbacks/GotoCmdCallback.java +++ b/src/resources/commands/callbacks/GotoCmdCallback.java @@ -40,10 +40,10 @@ import resources.objects.SWGObject; import resources.objects.building.BuildingObject; import resources.objects.cell.CellObject; import resources.player.Player; -import resources.server_info.Log; import services.galaxy.GalacticManager; import services.objects.ObjectManager; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/resources/commands/callbacks/QaToolCmdCallback.java b/src/resources/commands/callbacks/QaToolCmdCallback.java index f33d01d2a..80e9a36ec 100644 --- a/src/resources/commands/callbacks/QaToolCmdCallback.java +++ b/src/resources/commands/callbacks/QaToolCmdCallback.java @@ -49,7 +49,6 @@ import resources.objects.building.BuildingObject; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; import resources.player.Player; -import resources.server_info.Log; import resources.sui.ISuiCallback; import resources.sui.SuiButtons; import resources.sui.SuiEvent; @@ -62,6 +61,7 @@ import services.objects.StaticItemService.ObjectCreationHandler; import services.player.PlayerManager; import utilities.Scripts; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/resources/commands/callbacks/RequestBiographyCmdCallback.java b/src/resources/commands/callbacks/RequestBiographyCmdCallback.java index d23bf759a..54540df29 100644 --- a/src/resources/commands/callbacks/RequestBiographyCmdCallback.java +++ b/src/resources/commands/callbacks/RequestBiographyCmdCallback.java @@ -32,9 +32,10 @@ import resources.commands.ICmdCallback; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.player.Player; -import resources.server_info.Log; import services.galaxy.GalacticManager; +import com.projectswg.common.debug.Log; + /** * * @author mads diff --git a/src/resources/commands/callbacks/ServerCmdCallback.java b/src/resources/commands/callbacks/ServerCmdCallback.java index 9aa85c001..5c4b3b5e7 100644 --- a/src/resources/commands/callbacks/ServerCmdCallback.java +++ b/src/resources/commands/callbacks/ServerCmdCallback.java @@ -29,10 +29,14 @@ package resources.commands.callbacks; import intents.server.ServerManagementIntent; import intents.server.ServerManagementIntent.ServerManagementEvent; + +import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; + import resources.commands.ICmdCallback; import resources.objects.SWGObject; import resources.player.Player; -import resources.server_info.Log; import resources.sui.ISuiCallback; import resources.sui.SuiButtons; import resources.sui.SuiEvent; @@ -41,9 +45,7 @@ import resources.sui.SuiListBox; import resources.sui.SuiMessageBox; import services.galaxy.GalacticManager; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; +import com.projectswg.common.debug.Log; public class ServerCmdCallback implements ICmdCallback { diff --git a/src/resources/encodables/OutOfBandPackage.java b/src/resources/encodables/OutOfBandPackage.java index 19d77b4d5..ab2af656e 100644 --- a/src/resources/encodables/OutOfBandPackage.java +++ b/src/resources/encodables/OutOfBandPackage.java @@ -27,12 +27,6 @@ ***********************************************************************************/ package resources.encodables; -import network.packets.Packet; -import resources.network.NetBufferStream; -import resources.objects.waypoint.WaypointObject; -import resources.persistable.Persistable; -import resources.server_info.Log; - import java.io.IOException; import java.io.ObjectInputStream; import java.nio.ByteBuffer; @@ -42,6 +36,13 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; +import network.packets.Packet; +import resources.network.NetBufferStream; +import resources.objects.waypoint.WaypointObject; +import resources.persistable.Persistable; + +import com.projectswg.common.debug.Log; + public class OutOfBandPackage implements Encodable, Persistable { private List packages; diff --git a/src/resources/encodables/ProsePackage.java b/src/resources/encodables/ProsePackage.java index 7b1004013..ec193676a 100644 --- a/src/resources/encodables/ProsePackage.java +++ b/src/resources/encodables/ProsePackage.java @@ -27,16 +27,16 @@ ***********************************************************************************/ package resources.encodables; -import network.packets.Packet; - import java.math.BigInteger; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.charset.Charset; +import network.packets.Packet; import resources.network.NetBufferStream; import resources.persistable.Persistable; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class ProsePackage implements OutOfBandData { diff --git a/src/resources/encodables/StringId.java b/src/resources/encodables/StringId.java index 0cf7a26ad..2fccfcd75 100644 --- a/src/resources/encodables/StringId.java +++ b/src/resources/encodables/StringId.java @@ -27,13 +27,13 @@ ***********************************************************************************/ package resources.encodables; -import network.packets.Packet; - import java.nio.ByteBuffer; +import network.packets.Packet; import resources.network.NetBufferStream; import resources.persistable.Persistable; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class StringId implements OutOfBandData, Persistable { diff --git a/src/resources/encodables/player/Equipment.java b/src/resources/encodables/player/Equipment.java index 697e42271..283948f5b 100644 --- a/src/resources/encodables/player/Equipment.java +++ b/src/resources/encodables/player/Equipment.java @@ -27,6 +27,8 @@ ***********************************************************************************/ package resources.encodables.player; +import java.nio.ByteBuffer; + import network.packets.swg.zone.baselines.Baseline; import resources.common.CRC; import resources.encodables.Encodable; @@ -38,10 +40,9 @@ import resources.objects.weapon.WeaponObject; import resources.persistable.Persistable; import resources.persistable.SWGObjectFactory; import resources.player.Player; -import resources.server_info.Log; import services.objects.ObjectCreator; -import java.nio.ByteBuffer; +import com.projectswg.common.debug.Log; public class Equipment implements Encodable, Persistable { diff --git a/src/resources/network/BaselineBuilder.java b/src/resources/network/BaselineBuilder.java index de44cc8f3..dc4d06120 100644 --- a/src/resources/network/BaselineBuilder.java +++ b/src/resources/network/BaselineBuilder.java @@ -27,16 +27,17 @@ ***********************************************************************************/ package resources.network; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.charset.Charset; + import network.packets.swg.zone.baselines.Baseline; import network.packets.swg.zone.baselines.Baseline.BaselineType; import resources.encodables.Encodable; import resources.objects.SWGObject; import resources.player.Player; -import resources.server_info.Log; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.charset.Charset; +import com.projectswg.common.debug.Log; public class BaselineBuilder { diff --git a/src/resources/network/NetBuffer.java b/src/resources/network/NetBuffer.java index 47a7ce4ce..6f31aa31e 100644 --- a/src/resources/network/NetBuffer.java +++ b/src/resources/network/NetBuffer.java @@ -36,9 +36,10 @@ import resources.collections.SWGList; import resources.collections.SWGMap; import resources.collections.SWGSet; import resources.encodables.Encodable; -import resources.server_info.Log; import utilities.Encoder.StringType; +import com.projectswg.common.debug.Log; + public class NetBuffer { diff --git a/src/resources/network/TCPServer.java b/src/resources/network/TCPServer.java index f2c4af0ea..292200429 100644 --- a/src/resources/network/TCPServer.java +++ b/src/resources/network/TCPServer.java @@ -47,9 +47,10 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import resources.server_info.Log; import utilities.ThreadUtilities; +import com.projectswg.common.debug.Log; + public class TCPServer { diff --git a/src/resources/network/UDPServer.java b/src/resources/network/UDPServer.java index 74e79f258..06f798175 100644 --- a/src/resources/network/UDPServer.java +++ b/src/resources/network/UDPServer.java @@ -37,7 +37,8 @@ import java.net.UnknownHostException; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + /** * This class represents a UDP server that listens for packets and diff --git a/src/resources/objects/SWGObject.java b/src/resources/objects/SWGObject.java index 4784c2559..0f0d1474f 100644 --- a/src/resources/objects/SWGObject.java +++ b/src/resources/objects/SWGObject.java @@ -64,7 +64,6 @@ import resources.objects.creature.CreatureObject; import resources.persistable.Persistable; import resources.persistable.SWGObjectFactory; import resources.player.Player; -import resources.server_info.Log; import services.CoreManager; import services.objects.ObjectCreator; import utilities.AwarenessUtilities; @@ -72,6 +71,7 @@ import utilities.AwarenessUtilities; import com.projectswg.common.concurrency.SynchronizedMap; import com.projectswg.common.concurrency.SynchronizedSet; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public abstract class SWGObject extends BaselineObject implements Comparable, Persistable { diff --git a/src/resources/objects/awareness/AwarenessHandler.java b/src/resources/objects/awareness/AwarenessHandler.java index ff0b84815..f452801a7 100644 --- a/src/resources/objects/awareness/AwarenessHandler.java +++ b/src/resources/objects/awareness/AwarenessHandler.java @@ -34,9 +34,9 @@ import resources.Location; import resources.Terrain; import resources.objects.SWGObject; import resources.objects.awareness.TerrainMap.TerrainMapCallback; -import resources.server_info.Log; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class AwarenessHandler implements AutoCloseable { diff --git a/src/resources/objects/awareness/TerrainMap.java b/src/resources/objects/awareness/TerrainMap.java index f3bfd4736..9aab8c9b2 100644 --- a/src/resources/objects/awareness/TerrainMap.java +++ b/src/resources/objects/awareness/TerrainMap.java @@ -35,10 +35,10 @@ import resources.Terrain; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.objects.waypoint.WaypointObject; -import resources.server_info.Log; import com.projectswg.common.callback.CallbackManager; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class TerrainMap { diff --git a/src/resources/objects/buildouts/BuildoutLoader.java b/src/resources/objects/buildouts/BuildoutLoader.java index f1a71e131..cb4ea3479 100644 --- a/src/resources/objects/buildouts/BuildoutLoader.java +++ b/src/resources/objects/buildouts/BuildoutLoader.java @@ -39,7 +39,8 @@ import resources.client_info.ClientFactory; import resources.client_info.visitors.CrcStringTableData; import resources.client_info.visitors.DatatableData; import resources.objects.SWGObject; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class BuildoutLoader { diff --git a/src/resources/objects/buildouts/TerrainBuildoutLoader.java b/src/resources/objects/buildouts/TerrainBuildoutLoader.java index 6fa6fa939..41906ca00 100644 --- a/src/resources/objects/buildouts/TerrainBuildoutLoader.java +++ b/src/resources/objects/buildouts/TerrainBuildoutLoader.java @@ -40,9 +40,10 @@ import resources.client_info.visitors.DatatableData; import resources.objects.SWGObject; import resources.objects.SWGObject.ObjectClassification; import resources.objects.cell.CellObject; -import resources.server_info.Log; import services.objects.ObjectCreator; +import com.projectswg.common.debug.Log; + class TerrainBuildoutLoader { private static final String BASE_PATH = "datatables/buildout/"; diff --git a/src/resources/objects/buildouts/TerrainSnapshotLoader.java b/src/resources/objects/buildouts/TerrainSnapshotLoader.java index 1ab1a1ce7..f801b2572 100644 --- a/src/resources/objects/buildouts/TerrainSnapshotLoader.java +++ b/src/resources/objects/buildouts/TerrainSnapshotLoader.java @@ -41,9 +41,10 @@ import resources.objects.SWGObject; import resources.objects.SWGObject.ObjectClassification; import resources.objects.building.BuildingObject; import resources.objects.cell.CellObject; -import resources.server_info.Log; import services.objects.ObjectCreator; +import com.projectswg.common.debug.Log; + public class TerrainSnapshotLoader { private static final String BASE_PATH = "snapshot/"; diff --git a/src/resources/radial/RadialOptionList.java b/src/resources/radial/RadialOptionList.java index 28c7cce99..22fac5a9e 100644 --- a/src/resources/radial/RadialOptionList.java +++ b/src/resources/radial/RadialOptionList.java @@ -36,7 +36,8 @@ import java.util.Map; import network.packets.Packet; import resources.encodables.Encodable; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class RadialOptionList implements Encodable { diff --git a/src/resources/radial/Radials.java b/src/resources/radial/Radials.java index 9ddca9412..392c1f39e 100644 --- a/src/resources/radial/Radials.java +++ b/src/resources/radial/Radials.java @@ -30,11 +30,13 @@ package resources.radial; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; + import resources.objects.SWGObject; import resources.player.Player; -import resources.server_info.Log; import utilities.Scripts; +import com.projectswg.common.debug.Log; + public class Radials { private static final String SCRIPT_PREFIX = "radial/"; diff --git a/src/resources/server_info/CachedObjectDatabase.java b/src/resources/server_info/CachedObjectDatabase.java index f773b24d6..6ec4455d4 100644 --- a/src/resources/server_info/CachedObjectDatabase.java +++ b/src/resources/server_info/CachedObjectDatabase.java @@ -39,6 +39,8 @@ import resources.persistable.OutputPersistenceStream; import resources.persistable.OutputPersistenceStream.PersistableSaver; import resources.persistable.Persistable; +import com.projectswg.common.debug.Log; + public class CachedObjectDatabase extends ObjectDatabase { private final PersistableCreator creator; diff --git a/src/resources/server_info/ConfigWatcher.java b/src/resources/server_info/ConfigWatcher.java index 7edd0cab3..72ea41c53 100644 --- a/src/resources/server_info/ConfigWatcher.java +++ b/src/resources/server_info/ConfigWatcher.java @@ -41,11 +41,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.atomic.AtomicBoolean; -import com.projectswg.common.concurrency.PswgBasicThread; -import com.projectswg.common.info.Config; - import resources.config.ConfigFile; +import com.projectswg.common.concurrency.PswgBasicThread; +import com.projectswg.common.debug.Log; +import com.projectswg.common.info.Config; + public final class ConfigWatcher { private static final String CFGPATH = "cfg/"; diff --git a/src/resources/server_info/CrcDatabase.java b/src/resources/server_info/CrcDatabase.java index 6482b98dd..2756d7e60 100644 --- a/src/resources/server_info/CrcDatabase.java +++ b/src/resources/server_info/CrcDatabase.java @@ -35,6 +35,7 @@ import java.util.Map; import resources.common.CRC; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/resources/server_info/DataManager.java b/src/resources/server_info/DataManager.java index 1e755c7eb..2c743bfe5 100644 --- a/src/resources/server_info/DataManager.java +++ b/src/resources/server_info/DataManager.java @@ -32,13 +32,14 @@ import java.io.IOException; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import resources.config.ConfigFile; + import com.projectswg.common.concurrency.SynchronizedMap; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; import com.projectswg.common.info.RelationalServerFactory; -import resources.config.ConfigFile; - public class DataManager { private static final Object instanceLock = new Object(); diff --git a/src/resources/server_info/Log.java b/src/resources/server_info/Log.java deleted file mode 100644 index df589ab95..000000000 --- a/src/resources/server_info/Log.java +++ /dev/null @@ -1,297 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore is free software: you can redistribute it and/or modify * -* it under the terms of the GNU Affero General Public License as * -* published by the Free Software Foundation, either version 3 of the * -* License, or (at your option) any later version. * -* * -* Holocore 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 Affero General Public License for more details. * -* * -* You should have received a copy of the GNU Affero General Public License * -* along with Holocore. If not, see . * -* * -***********************************************************************************/ -package resources.server_info; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.PrintStream; -import java.nio.charset.StandardCharsets; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.concurrent.atomic.AtomicReference; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -public class Log { - - private static Log INSTANCE = null; - - private final Lock logLock; - private final DateFormat timeFormat; - private final File file; - private final AtomicReference level; - private BufferedWriter writer; - private boolean open; - - private Log(String filename, LogLevel level) { - this.logLock = new ReentrantLock(true); - this.timeFormat = new SimpleDateFormat("dd-MM-yy HH:mm:ss.SSS"); - this.file = new File(filename); - this.level = new AtomicReference<>(level); - open = false; - } - - private synchronized void open() throws IOException { - if (!open) - writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)); - open = true; - } - - private synchronized void close() throws IOException { - if (open) - writer.close(); - open = false; - } - - private synchronized void write(String str) throws IOException { - if (open) { - writer.write(str); - writer.newLine(); - writer.flush(); - } - } - - private synchronized void setLevel(LogLevel level) { - this.level.set(level); - } - - private synchronized LogLevel getLevel() { - return level.get(); - } - - private synchronized void logRaw(LogLevel level, String logStr) { - PrintStream stream; - if (level.compareTo(LogLevel.WARN) >= 0) - stream = System.err; - else - stream = System.out; - stream.println(logStr); - stream.flush(); - try { - write(logStr); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void logImplementation(LogLevel level, String str, Object ... args) { - if (getLevel().compareTo(level) > 0) - return; - String date; - synchronized (timeFormat) { - date = timeFormat.format(System.currentTimeMillis()); - } - if (args.length == 0) - logRaw(level, date + ' ' + level.getChar() + ": " + str); - else - logRaw(level, date + ' ' + level.getChar() + ": " + String.format(str, args)); - } - - private void lock() { - logLock.lock(); - } - - private void unlock() { - logLock.unlock(); - } - - private static synchronized final Log getInstance() { - if (INSTANCE == null) - INSTANCE = new Log("log.txt", LogLevel.VERBOSE); - return INSTANCE; - } - - protected static final void start() { - try { - getInstance().open(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - protected static final void stop() { - try { - getInstance().close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * Sets the minimum level for logs to be reported. This is according to the - * following order: VERBOSE, DEBUG, INFO, WARNING, ERROR, then ASSERT. - * @param level the minimum log level, inclusively. Default is VERBOSE - */ - public static final void setLogLevel(LogLevel level) { - getInstance().setLevel(level); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity, time and message. - * @param level the log level of this message between VERBOSE and ASSERT - * @param tag the tag to use for the log - * @param str the format string for the log - * @param args the string format arguments, if specified - */ - public static final void log(LogLevel level, String str, Object ... args) { - try { - getInstance().lock(); - getInstance().logImplementation(level, str, args); - } finally { - getInstance().unlock(); - } - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as VERBOSE, as well as the time and message. - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void v(String message, Object ... args) { - log(LogLevel.VERBOSE, message, args); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as DEBUG, as well as the time and message. - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void d(String message, Object ... args) { - log(LogLevel.DEBUG, message, args); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as INFO, as well as the time and message. - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void i(String message, Object ... args) { - log(LogLevel.INFO, message, args); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as WARN, as well as the time and message. - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void w(String message, Object ... args) { - log(LogLevel.WARN, message, args); - } - - - /** - * Logs the exception to the server log file, formatted to display the log - * severity as WARN, as well as the time, and tag. - * @param exception the exception to print - */ - public static final void w(Throwable exception) { - printException(LogLevel.WARN, exception); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as ERROR, as well as the time and message. - * @param tag the tag to use for the log - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void e(String message, Object ... args) { - log(LogLevel.ERROR, message, args); - } - - /** - * Logs the exception to the server log file, formatted to display the log - * severity as ERROR, as well as the time, and tag. - * @param exception the exception to print - */ - public static final void e(Throwable exception) { - printException(LogLevel.ERROR, exception); - } - - /** - * Logs the string to the server log file, formatted to display the log - * severity as ASSERT, as well as the time and message. - * @param message the format string for the log - * @param args the string format arguments, if specified - */ - public static final void a(String message, Object ... args) { - log(LogLevel.ASSERT, message, args); - } - - /** - * Logs the exception to the server log file, formatted to display the log - * severity as ASSERT, as well as the time, and tag. - * @param exception the exception to print - */ - public static final void a(Throwable exception) { - printException(LogLevel.ASSERT, exception); - } - - private static final void printException(LogLevel level, Throwable exception) { - Log instance = getInstance(); - try { - String header1 = String.format("Exception in thread \"%s\" %s: %s", Thread.currentThread().getName(), exception.getClass().getName(), exception.getMessage()); - String header2 = String.format("Caused by: %s: %s", exception.getClass().getCanonicalName(), exception.getMessage()); - StackTraceElement [] elements = exception.getStackTrace(); - instance.lock(); - instance.logImplementation(level, header1); - instance.logImplementation(level, header2); - for (StackTraceElement e : elements) { - instance.logImplementation(level, " " + e.toString()); - } - } finally { - instance.unlock(); - } - } - - public static enum LogLevel { - VERBOSE ('V'), - DEBUG ('D'), - INFO ('I'), - WARN ('W'), - ERROR ('E'), - ASSERT ('A'); - - private char c; - - LogLevel(char c) { - this.c = c; - } - - public char getChar() { return c; } - } - -} diff --git a/src/resources/server_info/ObjectDatabase.java b/src/resources/server_info/ObjectDatabase.java index ec62955e9..cfcda029e 100644 --- a/src/resources/server_info/ObjectDatabase.java +++ b/src/resources/server_info/ObjectDatabase.java @@ -34,6 +34,7 @@ import java.util.concurrent.TimeUnit; import resources.persistable.Persistable; import com.projectswg.common.concurrency.PswgBasicScheduledThread; +import com.projectswg.common.debug.Log; public abstract class ObjectDatabase { diff --git a/src/resources/server_info/StandardLog.java b/src/resources/server_info/StandardLog.java index 6fe990842..45c36188c 100644 --- a/src/resources/server_info/StandardLog.java +++ b/src/resources/server_info/StandardLog.java @@ -27,6 +27,8 @@ ***********************************************************************************/ package resources.server_info; +import com.projectswg.common.debug.Log; + public class StandardLog { public static long onStartLoad(String what) { diff --git a/src/resources/sui/SuiBaseWindow.java b/src/resources/sui/SuiBaseWindow.java index 91e741fac..733008897 100644 --- a/src/resources/sui/SuiBaseWindow.java +++ b/src/resources/sui/SuiBaseWindow.java @@ -27,10 +27,6 @@ ***********************************************************************************/ package resources.sui; -import network.packets.Packet; -import resources.encodables.Encodable; -import resources.server_info.Log; - import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -38,6 +34,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import network.packets.Packet; +import resources.encodables.Encodable; + +import com.projectswg.common.debug.Log; + public class SuiBaseWindow implements Encodable { private int id; diff --git a/src/resources/sui/SuiComponent.java b/src/resources/sui/SuiComponent.java index fe1bc9e66..92ed62564 100644 --- a/src/resources/sui/SuiComponent.java +++ b/src/resources/sui/SuiComponent.java @@ -27,16 +27,17 @@ package resources.sui; -import network.packets.Packet; -import resources.encodables.Encodable; -import resources.server_info.Log; -import utilities.Encoder; - import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; +import network.packets.Packet; +import resources.encodables.Encodable; +import utilities.Encoder; + +import com.projectswg.common.debug.Log; + /** * @author Waverunner */ diff --git a/src/resources/zone/NameFilter.java b/src/resources/zone/NameFilter.java index 2198d67fd..75c570910 100644 --- a/src/resources/zone/NameFilter.java +++ b/src/resources/zone/NameFilter.java @@ -30,7 +30,6 @@ package resources.zone; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -38,7 +37,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + public class NameFilter { @@ -86,9 +86,6 @@ public class NameFilter { } } return true; - } catch (FileNotFoundException e) { - Log.e(e); - return false; } catch (IOException e) { Log.e(e); return false; diff --git a/src/services/CoreManager.java b/src/services/CoreManager.java index 935fe53b6..eb300ae58 100644 --- a/src/services/CoreManager.java +++ b/src/services/CoreManager.java @@ -54,14 +54,13 @@ import resources.Galaxy.GalaxyStatus; import resources.config.ConfigFile; import resources.control.ServerStatus; import resources.server_info.DataManager; -import resources.server_info.Log; -import resources.server_info.Log.LogLevel; import services.galaxy.GalacticManager; import utilities.CrcDatabaseGenerator; import utilities.ScheduledUtilities; import utilities.ThreadUtilities; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; public class CoreManager extends Manager { @@ -81,7 +80,6 @@ public class CoreManager extends Manager { public CoreManager(int adminServerPort) { Config c = DataManager.getConfig(ConfigFile.PRIMARY); - Log.setLogLevel(LogLevel.valueOf(c.getString("LOG-LEVEL", LogLevel.DEBUG.name()))); setupGalaxy(c); setupCrcDatabase(); if (adminServerPort <= 0) diff --git a/src/services/EngineManager.java b/src/services/EngineManager.java index 1cf52ab38..b8158c4d8 100644 --- a/src/services/EngineManager.java +++ b/src/services/EngineManager.java @@ -33,10 +33,10 @@ import java.io.IOException; import resources.client_info.ServerFactory; import resources.config.ConfigFile; import resources.server_info.DataManager; -import resources.server_info.Log; import services.network.NetworkManager; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/chat/ChatMailService.java b/src/services/chat/ChatMailService.java index 34b28b7a6..d05a90415 100644 --- a/src/services/chat/ChatMailService.java +++ b/src/services/chat/ChatMailService.java @@ -52,7 +52,6 @@ import resources.objects.SWGObject; import resources.objects.player.PlayerObject; import resources.player.Player; import resources.server_info.CachedObjectDatabase; -import resources.server_info.Log; import resources.server_info.ObjectDatabase; import services.CoreManager; import services.chat.ChatManager.ChatRange; @@ -60,6 +59,7 @@ import services.chat.ChatManager.ChatType; import services.player.PlayerManager; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/chat/ChatManager.java b/src/services/chat/ChatManager.java index a72fb93b0..55de30d0e 100644 --- a/src/services/chat/ChatManager.java +++ b/src/services/chat/ChatManager.java @@ -56,10 +56,10 @@ import resources.objects.SWGObject; import resources.objects.player.PlayerObject; import resources.player.Player; import resources.player.PlayerState; -import resources.server_info.Log; import com.projectswg.common.control.Manager; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/chat/ChatRoomContainer.java b/src/services/chat/ChatRoomContainer.java index 351ecf9b0..5814eb2c3 100644 --- a/src/services/chat/ChatRoomContainer.java +++ b/src/services/chat/ChatRoomContainer.java @@ -33,9 +33,9 @@ import java.util.List; import java.util.Map; import resources.chat.ChatRoom; -import resources.server_info.Log; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class ChatRoomContainer { diff --git a/src/services/chat/ChatRoomHandler.java b/src/services/chat/ChatRoomHandler.java index d9287ab35..eea162253 100644 --- a/src/services/chat/ChatRoomHandler.java +++ b/src/services/chat/ChatRoomHandler.java @@ -33,10 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import com.projectswg.common.debug.Assert; -import com.projectswg.common.info.RelationalServerData; -import com.projectswg.common.info.RelationalServerFactory; - import network.packets.swg.zone.chat.ChatOnDestroyRoom; import network.packets.swg.zone.chat.ChatOnEnteredRoom; import network.packets.swg.zone.chat.ChatOnLeaveRoom; @@ -51,12 +47,16 @@ import resources.encodables.OutOfBandPackage; import resources.player.AccessLevel; import resources.player.Player; import resources.server_info.CachedObjectDatabase; -import resources.server_info.Log; import resources.server_info.ObjectDatabase; import services.CoreManager; import services.chat.ChatManager.ChatRange; import services.chat.ChatManager.ChatType; +import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; +import com.projectswg.common.info.RelationalServerData; +import com.projectswg.common.info.RelationalServerFactory; + public class ChatRoomHandler { private final ObjectDatabase database; diff --git a/src/services/collections/CollectionService.java b/src/services/collections/CollectionService.java index bf251be3d..5c9ff8169 100644 --- a/src/services/collections/CollectionService.java +++ b/src/services/collections/CollectionService.java @@ -42,9 +42,9 @@ import resources.objects.collections.ClickyCollectionItem; import resources.objects.collections.CollectionItem; import resources.radial.RadialOption; import resources.radial.Radials; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/collections/ExplorationBadgeService.java b/src/services/collections/ExplorationBadgeService.java index 7d337b4e0..c5c2e5445 100644 --- a/src/services/collections/ExplorationBadgeService.java +++ b/src/services/collections/ExplorationBadgeService.java @@ -40,9 +40,9 @@ import java.util.TreeMap; import resources.Point3D; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/combat/CombatManager.java b/src/services/combat/CombatManager.java index d37607836..44d36ba08 100644 --- a/src/services/combat/CombatManager.java +++ b/src/services/combat/CombatManager.java @@ -71,11 +71,11 @@ import resources.objects.creature.CreatureObject; import resources.objects.staticobject.StaticObject; import resources.objects.tangible.TangibleObject; import resources.objects.weapon.WeaponObject; -import resources.server_info.Log; import services.objects.ObjectCreator; import utilities.ThreadUtilities; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; public class CombatManager extends Manager { diff --git a/src/services/combat/CombatXpService.java b/src/services/combat/CombatXpService.java index f14783b4a..bafa5fed4 100644 --- a/src/services/combat/CombatXpService.java +++ b/src/services/combat/CombatXpService.java @@ -41,10 +41,10 @@ import resources.objects.SWGObject; import resources.objects.creature.CreatureDifficulty; import resources.objects.creature.CreatureObject; import resources.objects.group.GroupObject; -import resources.server_info.Log; import resources.server_info.StandardLog; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/combat/CorpseService.java b/src/services/combat/CorpseService.java index 4f95ecf8c..9970dab83 100644 --- a/src/services/combat/CorpseService.java +++ b/src/services/combat/CorpseService.java @@ -63,7 +63,6 @@ import resources.objects.building.BuildingObject; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; import resources.player.Player; -import resources.server_info.Log; import resources.server_info.StandardLog; import resources.sui.SuiButtons; import resources.sui.SuiEvent; @@ -72,6 +71,7 @@ import resources.sui.SuiWindow; import utilities.ThreadUtilities; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/commands/BuffService.java b/src/services/commands/BuffService.java index 650e655e1..c96a1a73f 100644 --- a/src/services/commands/BuffService.java +++ b/src/services/commands/BuffService.java @@ -45,7 +45,6 @@ import network.packets.swg.zone.PlayClientEffectObjectMessage; import resources.common.CRC; import resources.objects.creature.Buff; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import resources.server_info.StandardLog; import services.commands.buff.BuffData; import services.commands.buff.BuffMap; @@ -54,6 +53,7 @@ import utilities.Scripts; import com.projectswg.common.concurrency.PswgBasicScheduledThread; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class BuffService extends Service { diff --git a/src/services/commands/CommandCooldownHandler.java b/src/services/commands/CommandCooldownHandler.java index 67b954592..41ebeb852 100644 --- a/src/services/commands/CommandCooldownHandler.java +++ b/src/services/commands/CommandCooldownHandler.java @@ -36,10 +36,10 @@ import network.packets.swg.zone.object_controller.CommandTimer; import resources.commands.Command; import resources.common.CRC; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import services.commands.CommandLauncher.EnqueuedCommand; import com.projectswg.common.concurrency.PswgScheduledThreadPool; +import com.projectswg.common.debug.Log; public class CommandCooldownHandler { diff --git a/src/services/commands/CommandLauncher.java b/src/services/commands/CommandLauncher.java index 0525b3dbd..9b3afb4c6 100644 --- a/src/services/commands/CommandLauncher.java +++ b/src/services/commands/CommandLauncher.java @@ -35,7 +35,7 @@ import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; import java.util.Queue; -import com.projectswg.common.concurrency.PswgScheduledThreadPool; + import network.packets.swg.zone.object_controller.CommandQueueDequeue; import network.packets.swg.zone.object_controller.CommandQueueEnqueue; import resources.commands.Command; @@ -45,10 +45,12 @@ import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.player.AccessLevel; import resources.player.Player; -import resources.server_info.Log; import services.galaxy.GalacticManager; import utilities.Scripts; +import com.projectswg.common.concurrency.PswgScheduledThreadPool; +import com.projectswg.common.debug.Log; + public class CommandLauncher { private final Map> combatQueueMap; diff --git a/src/services/commands/CommandService.java b/src/services/commands/CommandService.java index 947ac4a2c..0722bddbe 100644 --- a/src/services/commands/CommandService.java +++ b/src/services/commands/CommandService.java @@ -31,33 +31,54 @@ import intents.PlayerEventIntent; import intents.network.GalacticPacketIntent; import intents.player.PlayerTransformedIntent; +import java.util.List; +import java.util.Locale; + import network.packets.Packet; import network.packets.swg.zone.object_controller.CommandQueueEnqueue; import resources.client_info.ClientFactory; import resources.client_info.visitors.DatatableData; import resources.combat.AttackType; import resources.combat.DamageType; +import resources.combat.DelayAttackEggPosition; +import resources.combat.HitType; import resources.combat.ValidTarget; import resources.commands.CombatCommand; import resources.commands.Command; +import resources.commands.DefaultPriority; import resources.commands.ICmdCallback; -import resources.commands.callbacks.*; +import resources.commands.callbacks.AdminTeleportCallback; +import resources.commands.callbacks.AttributesCmdCallback; +import resources.commands.callbacks.ChangeDanceCallback; +import resources.commands.callbacks.FindFriendCallback; +import resources.commands.callbacks.FlourishCmdCallback; +import resources.commands.callbacks.GotoCmdCallback; +import resources.commands.callbacks.JumpCmdCallback; +import resources.commands.callbacks.KneelCmdCallback; +import resources.commands.callbacks.PlayerAppearanceCallback; +import resources.commands.callbacks.ProneCmdCallback; +import resources.commands.callbacks.QaToolCmdCallback; +import resources.commands.callbacks.RequestBiographyCmdCallback; +import resources.commands.callbacks.RequestWaypointCmdCallback; +import resources.commands.callbacks.RevertAppearanceCallback; +import resources.commands.callbacks.ServerCmdCallback; +import resources.commands.callbacks.ServerDestroyObjectCmdCallback; +import resources.commands.callbacks.SitOnObjectCmdCallback; +import resources.commands.callbacks.SocialInternalCmdCallback; +import resources.commands.callbacks.StandCmdCallback; +import resources.commands.callbacks.StartDanceCallback; +import resources.commands.callbacks.TransferItemCallback; +import resources.commands.callbacks.WaypointCmdCallback; import resources.common.CRC; import resources.objects.SWGObject; +import resources.objects.creature.CreatureObject; import resources.objects.weapon.WeaponType; import resources.player.Player; -import resources.server_info.Log; import services.commands.CommandLauncher.EnqueuedCommand; import services.galaxy.GalacticManager; -import java.util.List; -import java.util.Locale; import com.projectswg.common.control.Service; - -import resources.combat.DelayAttackEggPosition; -import resources.combat.HitType; -import resources.commands.DefaultPriority; -import resources.objects.creature.CreatureObject; +import com.projectswg.common.debug.Log; public class CommandService extends Service { diff --git a/src/services/commands/EntertainmentService.java b/src/services/commands/EntertainmentService.java index 05d0cb2c3..8a7c82373 100644 --- a/src/services/commands/EntertainmentService.java +++ b/src/services/commands/EntertainmentService.java @@ -54,9 +54,9 @@ import resources.encodables.StringId; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.player.Player; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; /** * diff --git a/src/services/experience/ExperienceManager.java b/src/services/experience/ExperienceManager.java index b041389cc..d23d7db4b 100644 --- a/src/services/experience/ExperienceManager.java +++ b/src/services/experience/ExperienceManager.java @@ -46,9 +46,9 @@ import resources.encodables.StringId; import resources.objects.creature.CreatureObject; import resources.objects.player.PlayerObject; import resources.server_info.DataManager; -import resources.server_info.Log; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; /** * The {@code ExperienceManager} listens for {@link ExperienceIntent} and diff --git a/src/services/experience/ExpertiseService.java b/src/services/experience/ExpertiseService.java index dc84a3ae7..f2ea7787d 100644 --- a/src/services/experience/ExpertiseService.java +++ b/src/services/experience/ExpertiseService.java @@ -44,13 +44,13 @@ import resources.client_info.ClientFactory; import resources.client_info.visitors.DatatableData; import resources.objects.creature.CreatureObject; import resources.objects.player.PlayerObject; -import resources.server_info.Log; import resources.server_info.StandardLog; import resources.sui.SuiButtons; import resources.sui.SuiMessageBox; import com.projectswg.common.control.Intent; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/experience/SkillManager.java b/src/services/experience/SkillManager.java index f4de904f3..da2d2feaa 100644 --- a/src/services/experience/SkillManager.java +++ b/src/services/experience/SkillManager.java @@ -41,10 +41,10 @@ import network.packets.swg.zone.object_controller.ChangeRoleIconChoice; import resources.client_info.ClientFactory; import resources.client_info.visitors.DatatableData; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import com.projectswg.common.control.Manager; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; /** * diff --git a/src/services/experience/SkillTemplateService.java b/src/services/experience/SkillTemplateService.java index da12ab56e..40e95f6ec 100644 --- a/src/services/experience/SkillTemplateService.java +++ b/src/services/experience/SkillTemplateService.java @@ -53,11 +53,11 @@ import resources.objects.creature.CreatureObject; import resources.objects.player.PlayerObject; import resources.player.Player; import resources.rewards.RoadmapReward; -import resources.server_info.Log; import services.objects.ObjectCreator; import services.objects.StaticItemService; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; /** * This is a service that listens for {@link LevelChangedIntent} and grants diff --git a/src/services/galaxy/ConnectionService.java b/src/services/galaxy/ConnectionService.java index edc54bac7..49d7eaeab 100644 --- a/src/services/galaxy/ConnectionService.java +++ b/src/services/galaxy/ConnectionService.java @@ -43,7 +43,6 @@ import resources.objects.player.PlayerObject; import resources.player.Player; import resources.player.PlayerEvent; import resources.player.PlayerFlags; -import resources.server_info.Log; import services.CoreManager; import utilities.ThreadUtilities; @@ -51,6 +50,7 @@ import com.projectswg.common.concurrency.SynchronizedSet; import com.projectswg.common.control.Intent; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class ConnectionService extends Service { diff --git a/src/services/galaxy/terminals/TerminalService.java b/src/services/galaxy/terminals/TerminalService.java index 5ee202de8..28581593c 100644 --- a/src/services/galaxy/terminals/TerminalService.java +++ b/src/services/galaxy/terminals/TerminalService.java @@ -42,9 +42,9 @@ import java.util.Set; import resources.radial.RadialOption; import resources.radial.Radials; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/galaxy/travel/TravelGroup.java b/src/services/galaxy/travel/TravelGroup.java index fb5cc7c86..427aa717e 100644 --- a/src/services/galaxy/travel/TravelGroup.java +++ b/src/services/galaxy/travel/TravelGroup.java @@ -39,7 +39,8 @@ import resources.Posture; import resources.Terrain; import resources.TravelPoint; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class TravelGroup implements Runnable { diff --git a/src/services/galaxy/travel/TravelService.java b/src/services/galaxy/travel/TravelService.java index c63dfa98d..54e1b2c9d 100644 --- a/src/services/galaxy/travel/TravelService.java +++ b/src/services/galaxy/travel/TravelService.java @@ -67,7 +67,6 @@ import resources.objects.staticobject.StaticObject; import resources.objects.tangible.OptionFlag; import resources.player.Player; import resources.server_info.DataManager; -import resources.server_info.Log; import resources.sui.SuiButtons; import resources.sui.SuiListBox; import resources.sui.SuiMessageBox; @@ -76,6 +75,7 @@ import services.objects.ObjectCreator; import utilities.ThreadUtilities; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/map/CityService.java b/src/services/map/CityService.java index 31c262102..4dacb9397 100644 --- a/src/services/map/CityService.java +++ b/src/services/map/CityService.java @@ -46,9 +46,9 @@ import resources.objects.creature.CreatureObject; import resources.objects.tangible.TangibleObject; import resources.player.Player; import resources.player.PlayerEvent; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/network/HolocoreSessionManager.java b/src/services/network/HolocoreSessionManager.java index 4abe7d9c9..d4e8a9471 100644 --- a/src/services/network/HolocoreSessionManager.java +++ b/src/services/network/HolocoreSessionManager.java @@ -30,14 +30,15 @@ package services.network; import java.util.ArrayDeque; import java.util.Queue; -import resources.server_info.Log; import network.packets.Packet; import network.packets.swg.ErrorMessage; import network.packets.swg.holo.HoloConnectionStarted; import network.packets.swg.holo.HoloConnectionStopped; +import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; import network.packets.swg.holo.HoloPacket; import network.packets.swg.holo.HoloSetProtocolVersion; -import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; + +import com.projectswg.common.debug.Log; public class HolocoreSessionManager { diff --git a/src/services/network/InboundNetworkManager.java b/src/services/network/InboundNetworkManager.java index 8ea7a5974..ddb5be5a1 100644 --- a/src/services/network/InboundNetworkManager.java +++ b/src/services/network/InboundNetworkManager.java @@ -33,9 +33,9 @@ import java.net.SocketAddress; import java.util.Arrays; import network.NetworkClient; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; public class InboundNetworkManager extends Service { diff --git a/src/services/network/NetworkClientManager.java b/src/services/network/NetworkClientManager.java index c90d4c731..bbdf8a1eb 100644 --- a/src/services/network/NetworkClientManager.java +++ b/src/services/network/NetworkClientManager.java @@ -47,10 +47,10 @@ import resources.network.TCPServer; import resources.network.UDPServer; import resources.network.UDPServer.UDPPacket; import resources.server_info.DataManager; -import resources.server_info.Log; import services.CoreManager; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; public class NetworkClientManager extends Manager { diff --git a/src/services/network/PacketSender.java b/src/services/network/PacketSender.java index 975b5eec2..02d0d0728 100644 --- a/src/services/network/PacketSender.java +++ b/src/services/network/PacketSender.java @@ -27,12 +27,13 @@ ***********************************************************************************/ package services.network; -import java.net.SocketAddress; import java.net.InetSocketAddress; +import java.net.SocketAddress; import java.nio.ByteBuffer; import resources.network.TCPServer; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class PacketSender { diff --git a/src/services/objects/ClientBuildoutService.java b/src/services/objects/ClientBuildoutService.java index afb1c8550..89683b200 100644 --- a/src/services/objects/ClientBuildoutService.java +++ b/src/services/objects/ClientBuildoutService.java @@ -57,10 +57,10 @@ import resources.objects.building.BuildingObject; import resources.objects.cell.CellObject; import resources.server_info.CrcDatabase; import resources.server_info.DataManager; -import resources.server_info.Log; import resources.server_info.StandardLog; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/objects/ObjectAwareness.java b/src/services/objects/ObjectAwareness.java index b9804a577..15b933082 100644 --- a/src/services/objects/ObjectAwareness.java +++ b/src/services/objects/ObjectAwareness.java @@ -62,11 +62,11 @@ import resources.player.Player; import resources.player.PlayerEvent; import resources.player.PlayerState; import resources.server_info.DataManager; -import resources.server_info.Log; import com.projectswg.common.control.Intent; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class ObjectAwareness extends Service implements TerrainMapCallback { diff --git a/src/services/objects/ObjectCreator.java b/src/services/objects/ObjectCreator.java index 9d5d6dea8..c70c773b0 100644 --- a/src/services/objects/ObjectCreator.java +++ b/src/services/objects/ObjectCreator.java @@ -56,7 +56,8 @@ import resources.objects.staticobject.StaticObject; import resources.objects.tangible.TangibleObject; import resources.objects.waypoint.WaypointObject; import resources.objects.weapon.WeaponObject; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public final class ObjectCreator { diff --git a/src/services/objects/ObjectManager.java b/src/services/objects/ObjectManager.java index 2afd812c5..7252eff44 100644 --- a/src/services/objects/ObjectManager.java +++ b/src/services/objects/ObjectManager.java @@ -51,7 +51,6 @@ import resources.objects.custom.AIObject; import resources.persistable.SWGObjectFactory; import resources.player.Player; import resources.server_info.CachedObjectDatabase; -import resources.server_info.Log; import resources.server_info.ObjectDatabase; import resources.server_info.StandardLog; import services.map.MapManager; @@ -60,6 +59,7 @@ import services.spawn.SpawnerService; import services.spawn.StaticService; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; public class ObjectManager extends Manager { diff --git a/src/services/objects/RadialService.java b/src/services/objects/RadialService.java index 5a5bfac86..02ef6d124 100644 --- a/src/services/objects/RadialService.java +++ b/src/services/objects/RadialService.java @@ -46,10 +46,10 @@ import resources.objects.creature.CreatureObject; import resources.player.Player; import resources.radial.RadialItem; import resources.radial.RadialOption; -import resources.server_info.Log; import services.galaxy.GalacticManager; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; public class RadialService extends Service { diff --git a/src/services/objects/StaticItemService.java b/src/services/objects/StaticItemService.java index 6f0b700b7..f427f01dc 100644 --- a/src/services/objects/StaticItemService.java +++ b/src/services/objects/StaticItemService.java @@ -47,10 +47,10 @@ import resources.objects.weapon.WeaponObject; import resources.objects.weapon.WeaponType; import resources.player.Player; import resources.server_info.DataManager; -import resources.server_info.Log; import resources.server_info.StandardLog; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/objects/UniformBoxService.java b/src/services/objects/UniformBoxService.java index fb2b00a5a..837c62d7c 100644 --- a/src/services/objects/UniformBoxService.java +++ b/src/services/objects/UniformBoxService.java @@ -41,9 +41,9 @@ import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.player.Player; import resources.radial.RadialItem; -import resources.server_info.Log; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/player/CharacterCreationRestriction.java b/src/services/player/CharacterCreationRestriction.java index 1d7b76926..e23450d08 100644 --- a/src/services/player/CharacterCreationRestriction.java +++ b/src/services/player/CharacterCreationRestriction.java @@ -35,7 +35,8 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import resources.player.Player; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class CharacterCreationRestriction { diff --git a/src/services/player/CharacterCreationService.java b/src/services/player/CharacterCreationService.java index 0477ad07d..8e71ff048 100644 --- a/src/services/player/CharacterCreationService.java +++ b/src/services/player/CharacterCreationService.java @@ -60,7 +60,6 @@ import resources.player.Player; import resources.player.PlayerEvent; import resources.player.PlayerState; import resources.server_info.DataManager; -import resources.server_info.Log; import resources.zone.NameFilter; import services.objects.ObjectManager; import services.player.TerrainZoneInsertion.SpawnInformation; @@ -69,6 +68,7 @@ import utilities.namegen.SWGNameGenerator; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/player/LoginService.java b/src/services/player/LoginService.java index a3614c31f..ed6498216 100644 --- a/src/services/player/LoginService.java +++ b/src/services/player/LoginService.java @@ -67,11 +67,11 @@ import resources.player.Player; import resources.player.Player.PlayerServer; import resources.player.PlayerState; import resources.server_info.DataManager; -import resources.server_info.Log; import services.CoreManager; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/player/TerrainZoneInsertion.java b/src/services/player/TerrainZoneInsertion.java index 1c7241f99..c723b1b47 100644 --- a/src/services/player/TerrainZoneInsertion.java +++ b/src/services/player/TerrainZoneInsertion.java @@ -32,8 +32,8 @@ import java.sql.SQLException; import resources.Location; import resources.Terrain; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/player/ZoneManager.java b/src/services/player/ZoneManager.java index a8f0b3eaf..093655a6f 100644 --- a/src/services/player/ZoneManager.java +++ b/src/services/player/ZoneManager.java @@ -62,9 +62,9 @@ import resources.player.Player; import resources.player.Player.PlayerServer; import resources.player.PlayerEvent; import resources.server_info.DataManager; -import resources.server_info.Log; import com.projectswg.common.control.Manager; +import com.projectswg.common.debug.Log; public class ZoneManager extends Manager { diff --git a/src/services/player/creation/CharacterCreation.java b/src/services/player/creation/CharacterCreation.java index b0390ff4c..a2a9b0a6d 100644 --- a/src/services/player/creation/CharacterCreation.java +++ b/src/services/player/creation/CharacterCreation.java @@ -47,12 +47,12 @@ import resources.objects.tangible.TangibleObject; import resources.objects.weapon.WeaponObject; import resources.objects.weapon.WeaponType; import resources.player.AccessLevel; -import resources.server_info.Log; import services.objects.ObjectCreator; import services.objects.ObjectManager; import services.player.TerrainZoneInsertion.SpawnInformation; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; public class CharacterCreation { diff --git a/src/services/spawn/SpawnerService.java b/src/services/spawn/SpawnerService.java index 8cbdfbb0f..6d4a71020 100644 --- a/src/services/spawn/SpawnerService.java +++ b/src/services/spawn/SpawnerService.java @@ -53,7 +53,6 @@ import resources.objects.custom.AIBehavior; import resources.objects.custom.DefaultAIObject; import resources.objects.tangible.OptionFlag; import resources.server_info.DataManager; -import resources.server_info.Log; import resources.server_info.StandardLog; import resources.spawn.Spawner; import resources.spawn.Spawner.SpawnerFlag; @@ -63,6 +62,7 @@ import services.objects.ObjectManager; import utilities.ThreadUtilities; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalDatabase; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/spawn/StaticService.java b/src/services/spawn/StaticService.java index 38a689f8f..9d769b5c0 100644 --- a/src/services/spawn/StaticService.java +++ b/src/services/spawn/StaticService.java @@ -41,11 +41,11 @@ import java.util.Map; import resources.Location; import resources.objects.SWGObject; import resources.objects.building.BuildingObject; -import resources.server_info.Log; import services.objects.ObjectCreator; import com.projectswg.common.control.Service; import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; import com.projectswg.common.info.RelationalServerData; import com.projectswg.common.info.RelationalServerFactory; diff --git a/src/services/sui/SuiService.java b/src/services/sui/SuiService.java index 24dd90730..2a03d519b 100644 --- a/src/services/sui/SuiService.java +++ b/src/services/sui/SuiService.java @@ -43,7 +43,6 @@ import network.packets.swg.zone.server_ui.SuiCreatePageMessage; import network.packets.swg.zone.server_ui.SuiEventNotification; import network.packets.swg.zone.server_ui.SuiForceClosePage; import resources.player.Player; -import resources.server_info.Log; import resources.sui.ISuiCallback; import resources.sui.SuiBaseWindow; import resources.sui.SuiComponent; @@ -51,6 +50,7 @@ import resources.sui.SuiEvent; import utilities.Scripts; import com.projectswg.common.control.Service; +import com.projectswg.common.debug.Log; public class SuiService extends Service { diff --git a/src/utilities/CrcDatabaseGenerator.java b/src/utilities/CrcDatabaseGenerator.java index 8cc648109..af8dcfa40 100644 --- a/src/utilities/CrcDatabaseGenerator.java +++ b/src/utilities/CrcDatabaseGenerator.java @@ -41,7 +41,8 @@ import resources.client_info.ClientFactory; import resources.client_info.visitors.CrcStringTableData; import resources.client_info.visitors.DatatableData; import resources.server_info.CrcDatabase; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; public class CrcDatabaseGenerator { diff --git a/src/utilities/Encoder.java b/src/utilities/Encoder.java index 6d2dccad4..8a033930c 100644 --- a/src/utilities/Encoder.java +++ b/src/utilities/Encoder.java @@ -27,13 +27,14 @@ ***********************************************************************************/ package utilities; -import resources.encodables.Encodable; -import resources.server_info.Log; - import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.charset.Charset; +import resources.encodables.Encodable; + +import com.projectswg.common.debug.Log; + public class Encoder { public static byte[] encode(Object object) { diff --git a/src/utilities/IntentFactory.java b/src/utilities/IntentFactory.java index 4ced27797..a478040d9 100644 --- a/src/utilities/IntentFactory.java +++ b/src/utilities/IntentFactory.java @@ -39,9 +39,9 @@ import resources.encodables.player.Mail; import resources.objects.SWGObject; import resources.objects.waypoint.WaypointObject; import resources.player.Player; -import resources.server_info.Log; import com.projectswg.common.control.IntentChain; +import com.projectswg.common.debug.Log; /** * @author Mads diff --git a/src/utilities/Scripts.java b/src/utilities/Scripts.java index 4e65eb425..4dde887c0 100644 --- a/src/utilities/Scripts.java +++ b/src/utilities/Scripts.java @@ -38,7 +38,8 @@ import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import resources.server_info.Log; +import com.projectswg.common.debug.Log; + public class Scripts { diff --git a/src/utilities/namegen/SWGNameGenerator.java b/src/utilities/namegen/SWGNameGenerator.java index 626df03d6..4bd83edc8 100644 --- a/src/utilities/namegen/SWGNameGenerator.java +++ b/src/utilities/namegen/SWGNameGenerator.java @@ -27,10 +27,6 @@ ***********************************************************************************/ package utilities.namegen; -import resources.Race; -import resources.server_info.Log; -import resources.zone.NameFilter; - import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; @@ -41,6 +37,11 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import resources.Race; +import resources.zone.NameFilter; + +import com.projectswg.common.debug.Log; + public class SWGNameGenerator { private Map ruleMap = new HashMap<>(); diff --git a/test/resources/objects/awareness/MapCallback.java b/test/resources/objects/awareness/MapCallback.java index ae6c431a8..ad289bc17 100644 --- a/test/resources/objects/awareness/MapCallback.java +++ b/test/resources/objects/awareness/MapCallback.java @@ -33,7 +33,8 @@ import org.junit.Assert; import resources.objects.SWGObject; import resources.objects.awareness.TerrainMap.TerrainMapCallback; -import resources.server_info.Log; + +import com.projectswg.common.debug.Log; class MapCallback implements TerrainMapCallback { diff --git a/test/resources/objects/awareness/TestAwarenessHandler.java b/test/resources/objects/awareness/TestAwarenessHandler.java index c7c6641be..7e4f39ee0 100644 --- a/test/resources/objects/awareness/TestAwarenessHandler.java +++ b/test/resources/objects/awareness/TestAwarenessHandler.java @@ -41,9 +41,10 @@ import resources.Terrain; import resources.objects.SWGObject; import resources.objects.building.BuildingObject; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import services.objects.ClientBuildoutService; +import com.projectswg.common.debug.Log; + @RunWith(JUnit4.class) public class TestAwarenessHandler { diff --git a/test/resources/objects/awareness/TestTerrainMap.java b/test/resources/objects/awareness/TestTerrainMap.java index d7d26ffe7..f68c7dfd4 100644 --- a/test/resources/objects/awareness/TestTerrainMap.java +++ b/test/resources/objects/awareness/TestTerrainMap.java @@ -43,9 +43,10 @@ import resources.Terrain; import resources.objects.SWGObject; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; -import resources.server_info.Log; import services.objects.ClientBuildoutService; +import com.projectswg.common.debug.Log; + @RunWith(JUnit4.class) public class TestTerrainMap { diff --git a/test/resources/services/TestConfig.java b/test/resources/services/TestConfig.java index f9ba6999b..0d71663fe 100644 --- a/test/resources/services/TestConfig.java +++ b/test/resources/services/TestConfig.java @@ -35,8 +35,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import resources.server_info.Log; - +import com.projectswg.common.debug.Log; import com.projectswg.common.info.Config; @RunWith(JUnit4.class)