Commit Graph

226 Commits

Author SHA1 Message Date
Nefarion
49fd11ab5a First step of comment style refactoring to doxygen-style. 2013-03-08 21:55:37 +01:00
Spp
15343d9bb0 Core/RBAC: Remove unnecessary header includes from other header files 2013-02-25 15:48:17 +01:00
Spp
61979f8591 Scripts/Player: Add OnMapChanged to PlayerScripts (after map changed)
Core/Dungeon Finder: Use OnMapChanged script to cast/remove Luck of the draw
- Also move code to force party update to LfgPlayerScript
- Remove some obsolete Lfg code after recent commits
2013-02-04 16:52:43 +01:00
Spp
b980aff83e Core: Implement Role based Access Control
- This system will give more control of actions an account can perform.

System defines:
- Permissions to perform some action
- Roles: a set of permissions that have some relation
- Groups: a set of roles that have some relation

Operations:
- Grant: Assign and allow
- Deny: Assign and do not allow
- Revoke: Remove

Precedence to know if something can be done: Grant, Deny. That means, if you are granted some action by a role but you have denied the permission, the action can not be done.

Some Rules:
- Groups can only have roles
- Roles can only have permissions
- An account can be assigned granted and denied roles. Permissions inherited from roles are granted if roles is granted and denied if roles is denied
- An account can be assigned granted and denied permissions
- An account can have multiple groups, roles and permissions
- An account can not have same role granted and denied at same time
- An acconnt can not have same permission granted and denied at same time
- Id 0 can not be used to define a group, role or permission

Added some permissions as a sample of use (Instant Logout, Skip Queue, Join BGs, Join DF) and some permissions as a workaround to commands till command system is modified to use RBAC
2013-02-04 09:04:33 +01:00
Spp
ec5d16db8a Core/Dungeon Finder: Declare some functions private as those are not used outside LFGMgr. Also do not expose LFGDungeonData outside LFGMgr 2013-02-04 06:43:03 +01:00
Spp
f743424f63 Core/Dungeon Finder: Corrections to previous commit
- player::inRandomLfgDungeon was supposed to return if current player map and difficulty are the ones player applied for
2013-02-04 05:50:52 +01:00
Spp
9bdfc87774 Core/Dungeon Finder: Use lfg namespace to encapsulate all LFG classes, structs and enums 2013-02-04 04:43:50 +01:00
Spp
f753c989f2 Core/Dungeon Finder: Simplify Spell Luck of the draw code
Core/Dungeon Finder: Partial recode of "group list" using existing Lfg functions
2013-02-04 04:43:49 +01:00
Spp
8cd408ae6c Core/Misc: Some changes to minimize differences with 4.3.4 branch 2013-01-30 10:34:18 +01:00
Spp
802657250c Core/Misc: Apply codestyle to multiple files 2013-01-14 09:50:59 +01:00
Spp
4c247f5d2d Core/Dungeon finder: Fix teleport out after dungeon is finished
Closes 8914
2013-01-13 16:22:41 +01:00
Spp
677ed18080 Core/Dungeon Finder: Fix group (5) unable to do new dungeon after finished last dungeon
- Some optimizations here and there
- Drop unused columns related to dungeon rewards
- Simplify Group reward. All people inside the dungeon should get the reward, no matter how far it's from the boss
2013-01-09 15:15:42 +01:00
Spp
2292025bf9 Core/Misc: Replaced some macro definitions with inline functions 2013-01-02 09:07:52 +01:00
Vincent_Michael
cc65aba789 Update copyright note for 2013.
Happy new year.
2013-01-01 00:41:01 +01:00
Spp
a7d8a65bd0 Core/Dungeon Finder: Partial revert of ad6b5fb419 2012-11-28 08:29:39 +01:00
Spp
e954498560 Core/Misc: Random changes here and there to minimize differences with 4.3.4 branch 2012-11-27 13:03:12 +01:00
Spp
2251d1bfae Core/Misc: Set mode 0644 for files 2012-11-27 13:03:12 +01:00
Spp
ad6b5fb419 Core/Dungeon Finder: Fix reward for last member of each group being disbanded to join new lfg group
- Move some messages to Trace
- Add some cases where internal data wasn't updated with new state
- Reverts 441712fbb and ae507e5 (Old State should only store those states you can Restore from a Rolecheck/Proposal)
Closes #8339
Closes #8420
Closes #8421
2012-11-26 20:20:47 +01:00
Spp
d3c902915b Core/Dungeon Finder: Properly update Lfg Status (shouldn't lose 'eye' when changing maps or reconnect after disconnection)
- Also fixes removing Player data when it shouldn't... should solve some problems with players not getting reward in some cases
2012-11-21 19:56:48 +01:00
Spp
7bef4ce401 Core/Misc: Reduce header dependencies - Step III 2012-11-20 15:03:56 +01:00
Spp
b5c9ab8802 Core/Misc: Reduction of header dependencies - Step II 2012-11-20 12:30:30 +01:00
Spp
5ff16046b6 Core/Dungeon Finder: Remove lfg player data when a group is disbanded
Core/Dungeon Finder: Some codestyle changes

Note: Real change is in LFGMgr::RemoveGroupData, all other are cosmetic changes
2012-10-29 20:56:37 +01:00
Spp
9074c11a90 Core/Dungeon Finder: Update "Current group roles" according to people in queue.
Core/Dungeon Finder: Properly update internal lfg group structure at server load
2012-10-29 20:13:42 +01:00
Spp
14027262ee Core/Dungeon Finder: Add some more debug msgs and restore LFG group structure at server load. 2012-10-29 13:58:48 +01:00
Spp
d2ba73d97f Core/Misc: Proper fix for previous commit (c5c8e38 - check race change before perfoming faction-change actions)
Core/Misc: tab to spaces and remove trailing whitespaces
2012-10-29 12:28:12 +01:00
Spp
3120364aff Core/Dungeon Finder: Prevent crash when Teleport opcode is received from client when is not supposed.
Note: In order to get teleported in/out you need to be in group
Closes #8183
2012-10-25 11:33:14 +02:00
Spp
013fb1f4d9 Core/Misc: reduced amount of string memory allocations (Step I) 2012-10-24 15:34:48 +02:00
Spp
663db1cee3 Core/Misc: Add default count param to HasItemCount 2012-10-23 13:11:57 +02:00
Spp
1be638e731 Core/Dungeon Finder: Add debugging commands 2012-10-23 11:44:02 +02:00
Spp
c1fada456b Core/Dungeon Finder: Correct rolechecks (4e8fa52)
- Fix bad sql (36806bf)
- Add better teleport debug messages
2012-10-23 09:48:08 +02:00
Spp
316fc7c631 Core/Dungeon Finder: Corrections to 8622d49 (Fix teleport coors loading) 2012-10-22 13:48:07 +02:00
Spp
8622d495bb Dungeon Finder: Fix teleport coords load 2012-10-21 13:18:56 +02:00
Spp
0c909b2aed Fix crash on shutdown after last DF changes 2012-10-19 21:35:51 +02:00
Spp
67a03027ae Proper naming of LfgDungeon structures 2012-10-19 17:47:51 +02:00
Spp
4e8fa520c8 Core/Dungeon Finder: Move queue related code to its own class.
- Use different queues for each team (or shared one if two-side interaction is enabled)
- Some optimizations in matching algorithm
2012-10-19 14:00:40 +02:00
Spp
479d34d2a0 Core/Dungeon Finder: Minor optimizations
- Internal changes in store types
- Remove of (Player *) and (Group *) From LFGMgr.cpp (step 2)
2012-10-18 14:31:28 +02:00
Spp
d0334bf948 Core/Dungeon Finder: Some optimizations.
- Store teleport coordinates to avoid recalculations each time someone has to be teleported
- Correct teleport error msg when player is charming or using vehicle
- Internal changes in storage types
- Proper code for missing achievement lock type
- Better debug msgs
- Trying to get rid of "Player*" and "Group*" inside LFGMgr as much as possible (Step 1)
2012-10-18 09:15:10 +02:00
horn
c3f6c8141a Core/LFG: Implemented seasonal bosses options and fixed entrance points for dungeons with multiple parts (like Dire Maul, Scarlet Monastery etc.)
TODO:
- implement spawning seasonal bosses by Dungeon Finder
- script seasonal bosses - all of them needs to call RewardDungeonDoneFor function in their JustDied to be able to complete dungeon (see boss_headless_horseman.cpp)
- replace lfg_entrances coords by sniffed values
- create missing template for item 54537 (Heart-Shaped Box)
2012-10-05 00:43:58 +02:00
Spp
f8846cdeaf Core/Utilities: Do not expose internal store structure in Tokens and rename it to Tokenizer 2012-10-02 11:54:41 +02:00
Spp
8c5f011e79 Core/Achievements: Force all calls to AchievementMgr be done through Player functions (Remove GetAchievementMgr)
Note: No real use in 3.3.5 but will be used in 4.3.4
2012-09-18 14:29:53 +02:00
Chaplain
fb1ac16b0c Core/Misc: Some fixes here and there
Closes #7277
2012-08-20 11:05:50 +02:00
Spp
a566e3e58b Core/Logging: Move more log messages to LOG_FILTER_SERVER_LOADING 2012-08-16 11:02:46 +02:00
Spp
634776e0bc Fix compile under windows 2012-08-03 15:54:54 +02:00
Spp
55ce180f28 Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'

Explanation of use with Sample config:

Appender.Console.Type=1       (1 = Console)
Appender.Console.Level=2      (2 = Debug)

Appender.Server.Type=2        (2 = File)
Appender.Server.Level=3       (3 = Info)
Appender.Server.File=Server.log

Appender.SQL.Type=2           (2 = File)
Appender.SQL.Level=1          (1 = Trace)
Appender.SQL.File=sql.log

Appenders=Console Server      (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)

Logger.root.Type=0            (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5           (5 = Error)
Logger.root.Appenders=Console

Logger.SQL.Type=26            (26 = SQL)
Logger.SQL.Level=3            (2 = Debug)
Logger.SQL.Appenders=Console Server SQL

Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName

* At loading Appender SQL will be ignored, as it's not present on "Appenders"

* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged

* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged

* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
  - Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
    - Appender Console has lower Log Level: Msg is logged to Console
    - Appender Server has higher Log Level: Msg is not logged to file
    - Appender SQL has lower Log Level: Msg is logged to file sql.log

* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender

* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
    - Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00
Kandera
f63328dcbe Core/LFG: commented out a previous change that was causing issues with lfg dungeon locks. 2012-06-22 12:23:53 -04:00
Chaplain
716e2db0e1 Core/Misc: Code-style + some const methods. 2012-06-21 21:05:45 +03:00
kaelima
9cdf3fb4c0 Core/DungeonFinder:
- Corrections to c6c23b7f7e: Properly fixed #6748 after misunderstanding the issue.
- Display proper error message when teleportating as fatigued
2012-06-13 08:21:29 +02:00
Subv
e8f4eb28f5 Core/DF: Add Dungeon Deserter debuff when leaving an incomplete DF match, and implemented Dungeon Cooldown for random dungeons 2012-06-12 16:33:43 -05:00
kaelima
c6c23b7f7e Core/DungeonFinder:
- Prevent players from vote kicking in combat (basic implementation, still needs a timer) partially closes #2563
- Prevent players from teleporting to a finished dungeon using macro commands. Closes #6748

Also add a missing change for ff77610e1d thanks 2010phenix for the hint.
2012-06-12 18:14:52 +02:00
Machiavelli
bc96df1aae Core/Shared: Move container functions to shared project under Trinity::Container namespace. Also implement RandomResizeList which takes a predicate function as parameter.
Core/ScriptedAI: Extend SummonList::DoAction to take a predicate function as parameter and allow specifying a maximum number of units to be selected.
2012-04-08 17:40:05 +02:00