Commit Graph
346 Commits
Author SHA1 Message Date
Shauren 40baf3e94f Core/PacketIO: Restored WorldSession::LogUnprocessedTail functionality for packets processed using specialized classes for each opcode 2016-10-24 23:06:42 +02:00
MitchesD ad3da9c971 Core/Player: Implemented account wide mounts
Closes #17369
2016-10-01 13:48:16 +02:00
Shauren 807488df8a Core/PacketIO: Minor refactor in Opcode definitions, packet class type no longer needs to be defined manually, it is now inferred from handler argument 2016-08-06 12:34:38 +02:00
Shauren f7883bd525 Core/Transmog: Implemented transmog collection and updated transmog handling 2016-07-05 22:07:35 +02:00
Shauren d2733eb6f1 Merge branch '6.x' of https://github.com/TrinityCore/TrinityCore into legion 2016-06-13 21:00:25 +02:00
Shauren 2fe6fc63d7 Core/Movement: Fixed weird loading screen behavior (progress bar loading to full then disappearing) - also makes teleporting between maps faster 2016-06-13 18:00:55 +02:00
Shauren 8396dabdad Core/Misc: Fixed coverity issues
Uninitialized fields: CID 1354593, 1354595, 1354738
Unchecked return value: CID 1354558
Out of bounds access: CID 1352989, 1352993
Null pointer dereference: CID 1296286
2016-06-06 09:16:59 +02:00
DDuarte 8b26aea95a Implement real time statistic visualization (#16956)
Docs at https://trinitycore.atlassian.net/wiki/display/tc/Monitoring+a+TrinityCore+server

* Common/Graphs: Initial proof of concept

* Move influx db code to its own class

* Reuse the same socket

* Allow to log values of different categories

* Allow to log events

* Pass the timestamp to influxdb

* Send events in batches

* Send data async

* Log server shutdown.
Fix memory leak.

* Allow to enable/disable Stats in the settings and at runtime

* Read interval between each batch send from config

* Add InfluxDB connection info to configs

* Move each event category to its own table

* Log pathfinding queries

* Move categories table initialization to constructor using enum as key to avoid assigning the table name to the wrong enum value

* Log player login/logout events.
Pass the hostname correctly in the HTTP request.

* Fix linux build

* Handle "Connection: close" HTTP header, reconnecting on next scheduled send.
Disable StatsLogger if connection fails, logging the error.

* Add an enum for categories of logged values, it's still possible to pass a string instead of the enum.

* Don't log the whole batchedData when InfluxDB returns an error, it's too long and unreadable on console.

* Allow to call a function at a specified interval in thread-safe World::Update() context to log data like player count.

* Log map tile load/unload

* Core/StatsLogger: Allow logging more value types other than ints

https://docs.influxdata.com/influxdb/v0.10/write_protocols/write_syntax/

* Fix a typo in string escape of StatsLogger

* Yet more fixes to the escaping in FormatInfluxDBValue

* DB/Gameobject: Fix respawn time of few Quest GameObjects

By Tauriella, closes #16701

* DB/Misc: Fix some engrish

By tkrokli closes #16648

* Tools/MMaps: Add format library linking to mmaps_generator

(Very) partial cherry pick of ed75b0649a

* Core/StatsLogger: Simplify code

Convert values and categories arrays to maps initialized in-place
Remove constructor and destructor

* Core/StatsLogger: Add realm name to the event and value tags

* Log amount of processed packet of each session

* Apply recent singleton changes to sStatsLogger too

* Fix influxdb data format if no realm name is present

* Remove unneeded newlines from request body, fixes response 400 from InfluxDB 0.10

* Rename Reporting folder to Metric

* Rename StatsLogger to Metric

* Rename InfluxDB configs to Metric

* Add Grafana dashboards

* Add a random annoying macro

* Move string formatting to Metric::SendBatch(), reducing performance footprint of Metric::LogEvent() and Metric::LogValue()

* Update grafana graphs refresing tags on load and showing now-15m data, refreshing every minute. These settings can be modified in grafana.

* Rename MetricData fields

* Contrib/Grafana: Rename dashboard files

* Contrib/Grafana: Replace hardcoded Windows/Ubuntu realm names by the default, Trinity

* Config/Worldserver: Add missing section to the index

* Contrib/Grafana: Add singlestat panels with current online players, update diff averages (1 min, 5 mins and 15 mins)

http://i.imgur.com/Zi8lfvS.png

* Core/Metric: Replace the enums MetricEventCategory and MetricValueCategory by strings

For the sake of simplicity and less recompile time when adding new metrics, similar to how TC_LOG_* works

* Contrib/Grafana: Display the current number of online players and not its average

Closes #15075
(cherry picked from commit 3ae10160820782d039c3449107960108fb3a63b9)

# Conflicts:
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/World/World.cpp
#	src/server/worldserver/Main.cpp
2016-06-04 11:26:57 +01:00
Shauren d62b52befb Core/Addons: Removed AddonMgr 2016-05-30 23:42:09 +02:00
Shauren 42ab42ce27 Core/Networking: Fixed cleanup of disconnected sockets
Ref #15892
2016-05-09 00:08:18 +02:00
Vincent-Michael 179b521dce Core: Remove whitespaces
(cherry picked from commit 5e74c2223bff8a467d6f1ce18f6f08aa05e17019)
2016-04-09 17:14:08 +02:00
Shauren dde620c402 Core: Updated to 6.2.4
* Rewrite bnetserver for new authentication protocol
2016-03-28 17:12:57 +02:00
Shauren 619669c620 Core/PacketIO: Updated remaining packet structures and enums appearing in packets 2016-03-28 15:23:41 +02:00
Shauren 92e247b226 Core/Dep: Removed ZMQ dependency in preparation for future changes 2016-03-20 18:50:25 +01:00
Shauren 50c8efecc5 Core/Misc: Removed OnUnknownPacketReceive script hook - it could never be called 2016-03-13 00:12:42 +01:00
Shauren 8086a39210 Core/PacketIO: Requeue packets handled with STATUS_LOGGEDIN received before player is fully loaded in one step after packet processing loop - reduces used locks from 3 per packet to 1 per packet 2016-02-22 20:02:26 +01:00
Vincent-Michael 478cc756eb Update copyright note for 2016
Happy new year (Again new year with idiots ...)
2016-01-01 00:34:25 +01:00
Shauren 6ace6aabbf Core/Networking: Added safety checks against linking instance socket with incorrect/old session
Ref #15892
2015-12-29 21:22:31 +01:00
jackpoz e0ccbede07 Core/NetworkIO: Adjust more packet throttling values
Adjust more packet throttling values by increasing some limits, this might fix some random kicks.
Close #14659

(cherry picked from commit 5bd7c295c0b0f2cb78345ed02dd37531a67348f5)
2015-11-01 10:52:17 +01:00
MitchesD 9fe29de260 Core/Player: implemented Heirloom Collection
* implemented all things related to that collection
* you can create heirloom by click on item in collection
* also you can upgrade heirlooms by using specific kits
* old heirlooms are converted to new ones
2015-10-16 23:09:42 +02:00
Shauren 63def8aa32 Core/Battle.net:
* Changed packet structures to mirror client names
* Simplified ToString Building
* Removed deprecated structures

World: Cleaned up duplicate realm info 'realm' and 'realmHandle' variables (realmHandle was removed, that data is fully contained in realm)
2015-10-06 00:30:47 +02:00
Naios dd51cd575e Core/Server: Fix address of array '...' will always evaluate to 'true' warning.
* fix a magic number.
* ref adf6d968ed
2015-09-25 15:57:23 +02:00
Shauren 8c761b2877 Core/PacketIO: Verified and enabled a bunch of opcodes that already had their structures ported to packet classes 2015-09-24 18:47:33 +02:00
MitchesD 5a895f7759 Core/Player: moved player collections to separate class
* the idea is to have all collections (toybox, heirlooms, mount and later even battle pets) in one class to make it easier and don't increase size of already big Player and WorldSession class
2015-09-14 11:29:16 +02:00
horn e8b1faa156 Core/BattlePets: Basics for Battle Pets 2015-09-09 14:52:32 +02:00
MitchesD 0327927fa6 Core/Player: fix typo in toybox
* it's kinda strange that it worked before, thanks @hondacrx for that catch
2015-08-26 19:21:18 +02:00
MitchesD 614b5832ba Core/Player: implemented Toybox
* now you can use all the things in toybox - add new toys, set them as favorite and use them
2015-08-26 11:15:00 +02:00
Shauren 3604025bb7 Core/PacketIO: Added utility packet array class to handle loop counter limiting in packets received from the client 2015-07-29 00:04:37 +02:00
Vincent-Michael 2e586bc520 Core: Header cleanup in game/*/*.cpp 2015-07-25 20:18:42 +02:00
Shauren 585f978c58 Core: Started work on 6.2.0.20182 2015-07-01 02:22:03 +02:00
Shauren dbe2051056 Core/Threading: Significantly reduced the severity of possible data race during player login
* This commit changes a data race on a pointer value to data race on integers (guid)
2015-06-21 02:15:13 +02:00
Shauren 0e49eefe85 Core/DBLayer: Sprinkle some async magic on worldserver auth/session load process
* Implemented base for loading account wide data
2015-06-20 00:59:31 +02:00
DJScias b5aebf40a8 Core/PacketsIO: Updated and enabled SMSG_CHANNEL_NOTIFY, CMSG_CHAT_REGISTER_ADDON_PREFIXES, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES
- Thanks to @MitchesD for all his help, you're awesome!
- Packets have been sniffed & parsed and they all check out.
2015-05-27 16:56:06 +02:00
Shauren 68bd33b654 Core/Player: Implemented seamless teleporting 2015-05-01 15:44:43 +02:00
Shauren 34935f0b09 Core/PacketIO: Limit the amount of support packets allowed to be processed and updated CMSG_BUG_REPORT 2015-04-25 21:24:39 +02:00
Shauren 7e5df6d504 Core/Logging: Removed a bunch of useless "received X" logs 2015-04-21 21:26:15 +02:00
Shauren 50c6473a31 Core/PacketIO: Changed WorldSession::Handle_NULL to use packet class (Null). DEFINE_OPCODE_HANDLER_OLD is now strictly used only for opcodes that were used in past and weren't updated yet 2015-04-18 12:12:59 +02:00
Shauren f86d242f56 Core/Misc: Removed unused method - it was only needed when client&server opcode handlers were both in the same array 2015-04-16 00:13:41 +02:00
click 0d78a01983 Core/Logger: Add basic account-info to addon-scans to make them a little bit more useful (@Aokromes, you can stop asking for this now...)
(cherry picked from commit e040c56d45e55fb9c0e828989c542f54c9cbe334)

Conflicts:
	src/server/game/Server/WorldSession.cpp
2015-04-14 01:01:06 +01:00
Shauren 5389180778 Core/PacketIO: Updated all client opcode values 2015-04-01 01:44:10 +02:00
Vincent-Michael 61ffd31078 Core/PacketIO: Enable some char opcodes 2015-03-29 03:47:26 +02:00
Vincent-Michael dc67c9c801 Core/PacketIO: Fix warning 2015-03-29 03:28:29 +02:00
Shauren bed88e0dd4 Core/Networking: Fixed unsafe access to _worldSession member in WorldSocket 2015-03-28 21:45:27 +01:00
click aec6353297 Core: More INFO -> DEBUG changes (WorldSession/WorldSocket)
(cherry picked from commit 132d4ede37f849ef3803dda85ae3c7087a51cc83)

Conflicts:
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSocket.cpp
2015-03-18 00:18:20 +00:00
Epicurus4 75419fc2b1 Core/PacketIO: Sync with wpp 2015-03-01 12:33:34 -05:00
Epicurus4 3b364bc580 Core/PacketIO: Sync with wpp 2015-03-01 10:30:32 -05:00
Vincent-Michael 369b08b68d Core/Misc: Update base stuff for V6.1.0 build 19702 2015-03-01 02:24:59 +01:00
Duarte Duarte 8a2f8df8ce Merge pull request #14236 from Golrag/Notification1
Core/Packets: SMSG_NOTIFICATION
2015-02-23 21:47:37 +00:00
Shauren 3fcea2e9d4 Core/PacketIO: Handle ConnectToFailed and allow the client to reconnect up to 5 times before aborting login to world
Closes #14214
2015-02-23 22:35:26 +01:00
Golrag 78c7094b01 Core/Packets: SMSG_NOTIFICATION 2015-02-23 22:25:16 +01:00