Commit Graph

5204 Commits

Author SHA1 Message Date
Machiavelli
60cef65b5c Core/Vehicle: Make the passenger join event asynchronous
Prevents a crash in the following scenario:
Player 1 enters vehicle X
Seat on vehicle X is taken by Player 2
Player 2 is removed from vehicle X
Vehicle X dismisses (but player 1 did not even finish AddPasssenger
call)

Fixes #4271
2013-02-16 02:11:42 +01:00
Shauren
f74b874e93 Core/Auras: Allow auras that cannot create a separate stack for each caster to stack on one slot 2013-02-15 18:08:15 +01:00
Shauren
d232977ec4 Core/Maps: Prevent creating maps without a valid Map.dbc entry
Closes #9181
2013-02-14 16:54:31 +01:00
Machiavelli
771598b67a Core/Handlers: Missing returns after KickPlayer() call 2013-02-14 16:12:58 +01:00
Machiavelli
1093abb1ad Core/Handlers: Prevent some cheating in CharacterHandler
Prevents factionchanging and char customising of characters that do not
belong to the current account.
2013-02-14 16:07:36 +01:00
Machiavelli
877a7e9968 Core/Handlers: Fix a crash in HandleCharFactionOrRaceChange
Ensure there's always valid character name data present, even for
characters that were manually inserted into the database, by adding
character name data on char enum if needed.
2013-02-14 15:43:26 +01:00
Machiavelli
8befbdcc56 Core/LFG: Fix a crash
Fix a crash in case a player is recognized as in a LFG dungeon, but without a valid group
2013-02-14 15:01:33 +01:00
Shauren
944d7290ad Core/Loot: Minor change to previous commit, thanks Vincent_Michael for reminding me about this method in Map class 2013-02-14 11:41:20 +01:00
Shauren
ca280dbe05 Core/Loot: Only 3 items of the same entry can drop on 25 man raid difficulties and 1 everywhere else (non-raid or 10 man) 2013-02-13 20:24:23 +01:00
Shauren
d926ad63c0 Core/Spells: Fixed charge effects with non-explicit targets 2013-02-13 20:21:26 +01:00
Nay
42e660e2a2 Core/Sockets: Always try to send MSG_NOSIGNAL in peer().send()
Fixes RASocket::authenticate crash

"MSG_NOSIGNAL:
If you send() to a remote host which is no longer recv()ing, you'll typically get the signal SIGPIPE. Adding this flag prevents that signal from being raised."

Closes #5040
Thanks to @derex for the hint
2013-02-11 02:59:37 +00:00
Shauren
38eb090e9a Core/Objects: Rewritten UpdateMask class to perform bit operations faster at the cost of higher memory use and moved building the mask for packet to a separate method.
Closes #9127
2013-02-09 23:59:09 +01:00
Shauren
985de41421 Core/SAI: Rewrite SmartAI::RemoveAuras in a safer way 2013-02-09 17:57:27 +01:00
Shauren
97e876209e Core/Players: Fixed crash when mute expired while player was ingame 2013-02-08 18:18:26 +01:00
Shauren
d6c0afa71c Core/AI: Fixed merge error 2013-02-08 14:15:24 +01:00
Shauren
b6e56e42ea Core/Auth: Reverted part of fb43a92cc2 - session key is still needed after logging in to be able to switch realms 2013-02-08 01:03:56 +01:00
Shauren
fb43a92cc2 Core/Accounts: sessionkey field in account table is only a temporary storage to pass data from authserver to worldserver and should only be used as such. Clearing sessionkey from database after a successful login to prevent possible exploits. 2013-02-07 16:15:23 +01:00
Vincent_Michael
5b45a87da5 Core: More clean up whitespace 2013-02-07 00:24:00 +01:00
click
75994b3dd3 Core: Clean up whitespace, and remove a silly warning in boss_lurker_below.cpp 2013-02-07 00:19:19 +01:00
Shauren
fdffb3ebd0 Core: Fixed some compile warnings 2013-02-06 22:18:41 +01:00
Nay
0b3170c228 Core/Player: Fix a query that was wrongly deleting items
CHAR_DEL_ITEM_INSTANCE deletes by item guid but in Player::DeleteFromDB the guid being used was player's guid.
That means that if player with guid 100 was deleted, the item with guid 100 would also be deleted. This item could or could not belong to the player.

Closes #8883
Closes #9136

Thanks to @vlad852 for finding the issue
2013-02-06 13:17:21 +00:00
Gacko
745eb9732e Core/Spell: Consider disables for LOS check 2013-02-05 19:39:51 +01:00
Spp
dd0658e675 Warning fix 2013-02-05 11:12:00 +01:00
Spp
fedc26a115 Typo fix 2013-02-05 09:26:52 +01:00
Spp
f210ab0d47 Core/RBAC: Allow custom security levels for commands. (Before this change any command with seclevel > 3 had the same permissions than player commands)
Note: This is still a workaround till command system is moved to RBAC
2013-02-05 09:11:56 +01:00
m7nu3l
f9654d52e0 Core/AI: Removed Scripted_NoMovementAI which has become obsolete. Use ScriptedAI::SetCombatMovement(false); to get the same functionality. 2013-02-04 19:18:48 -03:00
Spp
fb7a544d84 Correction to previous commit (Use proper way to delete from spell_script_names) 2013-02-04 17:04:40 +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
Aokromes
6d8a69d640 Merge pull request #9099 from Bezo/mutenew
Add Mute reason and mute by to the db so you can get this info from the ...
2013-02-04 06:55:26 -08:00
Spp
67f686106d Fix compile without PCH 2013-02-04 10:10:15 +01:00
Spp
683de1d624 Core/RBAC: Add SQL to remove bad data from account_access, otherwise other sqls will fail due to use of FOREIGN KEYS
- Also add missing files from previous commit
2013-02-04 09:39:01 +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
m7nu3l
c7c3ae648c Core/MovementGenerator: Now MovementInform event is called at the truly end of Finalize function.
Thanks to Trista.
2013-02-04 04:44:44 -03: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
m7nu3l
124b5ed6e7 Core/AI: Implemented functionality for _isCombatMovementAllowed in ScriptedAI, only when AttackStart is called. 2013-02-03 14:46:17 -03:00
Shauren
ccc1936660 Core/Loot: Items in generated loot will now be split in multiple stacks if their count exceeds max stack size defined in item_template 2013-02-03 15:36:29 +01:00
Gacko
193a0d5f15 Fix engrish in doc 2013-02-03 15:22:23 +01:00
Shauren
b346459ca8 Core: Warning fixes 2013-02-03 14:11:59 +01:00
Gacko
54924f18af Core/EventMap: Internal changes and doxygen doc
See http://www.trinitycore.org/f/topic/7003-doxygen-documentation-and-hacks for details and examples.
Thanks to @Shauren for several hints.
2013-02-03 12:31:47 +01:00
Shauren
07442f932c Core/Object: Fixed a mistake in update mask building - fields marked with UF_FLAG_PARTY_MEMBER should be sent to the entire raid, not only one subgroup 2013-02-03 12:23:28 +01:00
Shauren
653557d335 Core/Objects: Some optimizations to object updatemask building 2013-02-03 12:16:10 +01:00
Shauren
a216ef2ca0 And a build fix. Nothing new... move along 2013-02-03 11:05:42 +01:00
Shauren
a8054311ca Core/AI: Reverted 2df1908c29 - sometimes it is better to copy some code to make its purpose clearer (ReactorAI is an AI class used for neutral creatures, it makes no sense to inherit AggresorAI, which is used for aggressive creatures) 2013-02-03 10:49:31 +01:00
Aokromes
045bd8b9f1 Merge pull request #9129 from m7nu3l/patch-2
Core/AI: Inherited AggressorAI, so the wheel is not reinvented.
2013-02-02 21:38:47 -08:00
m7nu3l
2df1908c29 Core/AI: Inherited AggressorAI, so the wheel is not reinvented. 2013-02-03 02:25:58 -03:00
Manuel Carrasco
68610a60ea Core/AI: Removed needless code 2013-02-03 03:01:47 -02:00
Shauren
104682767e Build fix 2013-02-03 01:28:18 +01:00