Skip to content

Commit

Permalink
Merge into 2.x (#157)
Browse files Browse the repository at this point in the history
Co-authored-by: sayghteight <duelista16@gmail.com>
  • Loading branch information
sayghteight and perioner authored Aug 15, 2024
1 parent 775c52a commit e979387
Show file tree
Hide file tree
Showing 10 changed files with 582 additions and 53 deletions.
14 changes: 13 additions & 1 deletion application/config/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,19 @@
|
| $autoload['libraries'] = array('user_agent' => 'ua');
*/
$autoload['libraries'] = ['database', 'session', 'form_validation', 'parser', 'pagination', 'multilanguage', 'template', 'encryption', 'cart', 'user_agent'];
$autoload['libraries'] = [
'database',
'session',
'form_validation',
'parser',
'pagination',
'multilanguage',
'template',
'encryption',
'cart',
'BS_Emulator',
'user_agent'
];

/*
| -------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions application/config/resources.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@
9 => [
'name' => 'Dragonflight',
'max_money' => 99_999_999_999
],
10 => [
'name' => 'The War Within',
'max_money' => 99_999_999_999
]
];

Expand Down
89 changes: 89 additions & 0 deletions application/emulators/azeroth_emulator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# ============================================
# Azeroth Emulator Configuration
# ============================================
# Source: WoW-CMS (https://github.com/WoW-CMS)
# Last Updated: 12/08/2024
# Author: WoW-CMS Team
# Description: This configuration file is tailored for azeroth,
# a World of Warcraft emulator. It specifies the
# hashing algorithm used for passwords, column mappings
# for different database tables, and example SQL queries.
# ============================================
config:
# Specifies the type of hashing algorithm to use for generating password hashes.
# Available options include:
# - 'srp6': Utilizes the SRP-6a algorithm with modular arithmetic (default in AzerothCore).
# - 'bnet': Uses SHA-256 with additional steps such as string reversal (not typically used in AzerothCore).
# - null or any other unspecified value: Defaults to using SHA-1 for hashing, which is less secure.
#
# For AzerothCore, 'srp6' is typically recommended.
type: "srp6"
expansion: 2

# Column configuration for different tables
columns:
account:
# Mapping of columns for the 'account' table in the AzerothCore database
table: "account" # Actual table name for 'account'
id: "id" # Unique identifier for the account
username: "username" # Username associated with the account
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication
email: "email" # Email address associated with the account
joindate: "joindate" # Date the account was created
last_ip: "last_ip" # Last IP address used to access the account
last_login: "last_login" # Date and time of the last login
expansion: "expansion" # Game expansion associated with the account
mutetime: "mutetime" # Account mute time
locale: "locale" # Client locale (language)
os: "os" # Operating system of the last login

arena_team:
# Mapping of columns for the 'arena_team' table in the AzerothCore database
table: "arena_team" # Actual table name for 'arena_team'
id: "arenaTeamId" # Unique identifier for the arena team
name: "name" # Name of the arena team
captain_id: "captainGuid" # Identifier of the team captain (character ID)
type: "type" # Type of arena (2v2, 3v3, 5v5)
rating: "rating" # Current rating of the arena team
season_games: "seasonGames" # Number of games played in the current season
season_wins: "seasonWins" # Number of wins in the current season
week_games: "weekGames" # Number of games played in the current week
week_wins: "weekWins" # Number of wins in the current week
rank: "rank" # Current rank of the arena team

arena_team_member:
# Mapping of columns for the 'arena_team_member' table in the AzerothCore database
table: "arena_team_member" # Actual table name for 'arena_team_member'
arena_team_id: "arenaTeamId" # Arena team ID associated with the member
member_id: "guid" # Unique identifier of the team member (character ID)
played_week: "played_week" # Games played by the member this week
won_week: "won_week" # Games won by the member this week
played_season: "played_season"# Games played by the member this season
won_season: "won_season" # Games won by the member this season
personal_rating: "personalRating" # Personal rating of the member

characters:
# Mapping of columns for the 'characters' table in the AzerothCore database
table: "characters" # Actual table name for 'characters'
id: "guid" # Unique identifier for the character
account_id: "account" # Account ID associated with the character
name: "name" # Name of the character
race: "race" # Race of the character
class: "class" # Class of the character
level: "level" # Level of the character
money: "money" # Amount of money the character possesses
online: "online" # Status of the character (online/offline)
total_played: "totalTime" # Total time played on this character
xp: "xp" # Current experience points of the character
homebind: "homebindMap" # Homebind map ID (hearthstone location)
homebind_zone: "homebindZone" # Homebind zone ID
homebind_x: "homebindX" # Homebind X coordinate
homebind_y: "homebindY" # Homebind Y coordinate
homebind_z: "homebindZ" # Homebind Z coordinate

# SQL queries defined for the emulator
queries:
# Example SQL queries (replace with actual queries as needed)
# select_user_by_id: "SELECT * FROM account WHERE id = ?"
# update_user_email: "UPDATE account SET email = ? WHERE id = ?"
94 changes: 94 additions & 0 deletions application/emulators/cmangos_emulator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# ============================================
# cMangos Emulator Configuration
# ============================================
# Source: WoW-CMS (https://github.com/WoW-CMS)
# Last Updated: 12/08/2024
# Author: WoW-CMS Team
# Description: This configuration file is tailored for cMangos,
# a World of Warcraft emulator. It specifies the
# hashing algorithm used for passwords, column mappings
# for different database tables, and example SQL queries.
# ============================================

# Emulator Configuration
config:
# Specifies the type of hashing algorithm to use for generating password hashes.
# Available options include:
# - 'hex': Applies a hexadecimal-based algorithm for hashing (used in cMangos).
# - 'srp6': Utilizes the SRP-6a algorithm with modular arithmetic (not typically used in cMangos).
# - 'bnet': Uses SHA-256 with additional steps such as string reversal (used in some older emulators).
# - null or any other unspecified value: Defaults to using SHA-1 for hashing, which is less secure.
#
# For cMangos, 'hex' is typically used.
type: "hex"
expansion: 1

# Column configuration for different tables
columns:
account:
# Mapping of columns for the 'account' table in the cMangos database
table: "account" # Actual table name for 'account'
id: "id" # Unique identifier for the account
username: "username" # Username associated with the account
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication
email: "email" # Email address associated with the account
joindate: "joindate" # Date the account was created
last_ip: "last_ip" # Last IP address used to access the account
last_login: "last_login" # Date and time of the last login
expansion: "expansion" # Game expansion associated with the account
mutetime: "mutetime" # Account mute time
locale: "locale" # Client locale (language)
os: "os" # Operating system of the last login

arena_team:
# Mapping of columns for the 'arena_team' table in the cMangos database
table: "arena_team" # Actual table name for 'arena_team'
id: "arenaTeamId" # Unique identifier for the arena team
name: "name" # Name of the arena team
captain_id: "captainGuid" # Identifier of the team captain (character ID)
type: "type" # Type of arena (2v2, 3v3, 5v5)
rating: "rating" # Current rating of the arena team
season_games: "seasonGames" # Number of games played in the current season
season_wins: "seasonWins" # Number of wins in the current season
week_games: "weekGames" # Number of games played in the current week
week_wins: "weekWins" # Number of wins in the current week
rank: "rank" # Current rank of the arena team

arena_team_member:
# Mapping of columns for the 'arena_team_member' table in the cMangos database
table: "arena_team_member" # Actual table name for 'arena_team_member'
arena_team_id: "arenaTeamId" # Arena team ID associated with the member
member_id: "guid" # Unique identifier of the team member (character ID)
played_week: "played_week" # Games played by the member this week
won_week: "won_week" # Games won by the member this week
played_season: "played_season"# Games played by the member this season
won_season: "won_season" # Games won by the member this season
personal_rating: "personalRating" # Personal rating of the member

characters:
# Mapping of columns for the 'characters' table in the cMangos database
table: "characters" # Actual table name for 'characters'
id: "guid" # Unique identifier for the character
account_id: "account" # Account ID associated with the character
name: "name" # Name of the character
race: "race" # Race of the character
class: "class" # Class of the character
level: "level" # Level of the character
money: "money" # Amount of money the character possesses
online: "online" # Status of the character (online/offline)
total_played: "totalTime" # Total time played on this character
xp: "xp" # Current experience points of the character
homebind: "homebindMap" # Homebind map ID (hearthstone location)
homebind_zone: "homebindZone" # Homebind zone ID
homebind_x: "homebindX" # Homebind X coordinate
homebind_y: "homebindY" # Homebind Y coordinate
homebind_z: "homebindZ" # Homebind Z coordinate

# SQL queries defined for the emulator
queries:
# Example SQL queries (replace with actual queries as needed)
# select_user_by_id: "SELECT * FROM account WHERE id = ?"
# update_user_email: "UPDATE account SET email = ? WHERE id = ?"
# insert_character: "INSERT INTO characters (guid, account, name, race, class, level, money, online, totalTime, xp, homebindMap, homebindZone, homebindX, homebindY, homebindZ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
# update_character_level: "UPDATE characters SET level = ? WHERE guid = ?"
40 changes: 40 additions & 0 deletions application/emulators/placeholder_emulator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Configuration Emulator
config:
# Specifies the type of hashing algorithm used for generating password hashes.
# The choice of hashing type depends on the specific emulator and version being used:
# - 'bnet': Uses SHA-256 hashing with additional string reversal steps (very old TrinityCore versions).
# - 'hex': Applies a hexadecimal-based hashing algorithm (used in cmangos).
# - 'srp6': Utilizes the SRP-6a hashing algorithm with modular arithmetic (used in AzerothCore and older TrinityCore versions).
# - 'srpV1': Implements the SRP-V1 hashing algorithm, combining hashing and modular arithmetic (used in newer TrinityCore versions).
# - 'srpV2': Applies the SRP-V2 hashing algorithm, which includes more advanced hashing and modular arithmetic (used in the latest TrinityCore versions).
# - null or any other unspecified value: Defaults to using SHA-1 for hashing, which may be less secure.
#
# Select the hashing type according to your application's security requirements and compatibility needs.
type: "bnet"

columns:
account:
# Column mappings for the 'account' table in the database
id: "id" # Unique identifier for the account
username: "username" # Username associated with the account
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication
email: "email" # Email address linked to the account
joindate: "joindate" # Date when the account was created
last_ip: "last_ip" # Last IP address used to access the account
last_login: "last_login" # Date and time of the last login
expansion: "expansion" # Game expansion associated with the account

battlenet_accounts:
# Column mappings for the 'battlenet_accounts' table in the database
id: "id" # Unique identifier for the Battle.net account
email: "email" # Email address associated with the Battle.net account
srp: "srp_version" # SRP version used for hashing (if applicable)
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication

# SQL queries defined for the emulator
queries:
# Example SQL queries (replace with actual queries as needed)
# select_user_by_id: "SELECT * FROM account WHERE id = ?"
# update_user_email: "UPDATE account SET email = ? WHERE id = ?"
94 changes: 94 additions & 0 deletions application/emulators/trinity_emulator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# ============================================
# Trinity Emulator Configuration
# ============================================
# Source: WoW-CMS (https://github.com/WoW-CMS)
# Last Updated: 12/08/2024
# Author: WoW-CMS Team
# Description: This configuration file is tailored for Trinity,
# a World of Warcraft emulator. It specifies the
# hashing algorithm used for passwords, column mappings
# for different database tables, and example SQL queries.
# ============================================
config:
# Specifies the type of hashing algorithm to use for generating password hashes.
# Available options include:
# - 'bnet': Uses SHA-256 with additional steps such as string reversal (old TrinityCore versions).
# - 'hex': Applies a hexadecimal-based algorithm for hashing (used in cmangos).
# - 'srp6': Utilizes the SRP-6a algorithm with modular arithmetic (AzerothCore and old TrinityCore versions).
# - 'srpV1': Implements the SRP-V1 algorithm, combining hashing and modular arithmetic (new TrinityCore versions).
# - 'srpV2': Applies the SRP-V2 algorithm, with more advanced hashing and modular arithmetic steps (latest TrinityCore versions).
# - null or any other unspecified value: Defaults to using SHA-1 for hashing, which may be less secure.
#
# Choose the hashing type based on the security requirements and compatibility needs of your application.
type: "srp6v1"
expansion: 9

# Column configuration for different tables
columns:
account:
# Mapping of columns for the 'account' table in the database
table: "account" # Actual table name for 'account'
id: "id" # Unique identifier for the account
username: "username" # Username associated with the account
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication
email: "email" # Email address associated with the account
joindate: "joindate" # Date the account was created
last_ip: "last_ip" # Last IP address used to access the account
last_login: "last_login" # Date and time of the last login
expansion: "expansion" # Game expansion associated with the account

battlenet_accounts:
# Mapping of columns for the 'battlenet_accounts' table in the database
table: "battlenet_accounts" # Actual table name for 'battlenet_accounts'
id: "id" # Unique identifier for the Battle.net account
email: "email" # Email address associated with the Battle.net account
srp: "srp_version" # SRP version used for hashing (if applicable)
salt: "salt" # Salt used for password hashing
verifier: "verifier" # Password verifier for authentication

arena_team:
# Mapping of columns for the 'arena_team' table in the database
table: "arena_team" # Actual table name for 'arena_team'
id: "arenaTeamId" # Unique identifier for the arena team
name: "name" # Name of the arena team
captain_id: "captainGuid" # Identifier of the team captain (character ID)
type: "type" # Type of arena (2v2, 3v3, 5v5)
rating: "rating" # Current rating of the arena team
season_games: "seasonGames" # Number of games played in the current season
season_wins: "seasonWins" # Number of wins in the current season
week_games: "weekGames" # Number of games played in the current week
week_wins: "weekWins" # Number of wins in the current week
rank: "rank" # Current rank of the arena team

arena_team_member:
# Mapping of columns for the 'arena_team_member' table in the database
table: "arena_team_member" # Actual table name for 'arena_team_member'
arena_team_id: "arenaTeamId" # Arena team ID associated with the member
member_id: "guid" # Unique identifier of the team member (character ID)
played_week: "played_week" # Games played by the member this week
won_week: "won_week" # Games won by the member this week
played_season: "played_season"# Games played by the member this season
won_season: "won_season" # Games won by the member this season
personal_rating: "personalRating" # Personal rating of the member

characters:
# Mapping of columns for the 'characters' table in the database
table: "characters" # Actual table name for 'characters'
id: "guid" # Unique identifier for the character
account_id: "account" # Account ID associated with the character
name: "name" # Name of the character
race: "race" # Race of the character
class: "class" # Class of the character
level: "level" # Level of the character
money: "money" # Amount of money the character possesses
online: "online" # Status of the character (online/offline)
total_played: "totalTime" # Total time played on this character
xp: "xp" # Current experience points of the character
homebind: "homebindMap" # Homebind map ID (hearthstone location)
# SQL queries defined for the emulator
queries:
# Example SQL queries (replace with actual queries as needed)
# select_user_by_id: "SELECT * FROM account WHERE id = ?"
# update_user_email: "UPDATE account SET email = ? WHERE id = ?"

Loading

0 comments on commit e979387

Please sign in to comment.