mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
feat: web dashboard and playground work
The NexusDashboard-parity dashboard (dDashboardServer) and everything built on it on the experimental branch: accounts, characters, properties and moderation tools, permissions shared with in-game slash commands, economy reports, World 3D and property 3D views with client scenery, scheduled events (features, vanity changes, live events, announcements, restarts), vanity files and events, the CDClient browser, the message inspector with saved captures, chat filter tools, community challenges, live ops, the AI moderator helper, and the server-side changes they need. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
17
dCommon/dEnums/BehaviorStates.h
Normal file
17
dCommon/dEnums/BehaviorStates.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef __BEHAVIORSTATES__H__
|
||||
#define __BEHAVIORSTATES__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
enum class BehaviorState : uint32_t {
|
||||
HOME_STATE = 0, //!< The HOME behavior state
|
||||
CIRCLE_STATE, //!< The CIRCLE behavior state
|
||||
SQUARE_STATE, //!< The SQUARE behavior state
|
||||
DIAMOND_STATE, //!< The DIAMOND behavior state
|
||||
TRIANGLE_STATE, //!< The TRIANGLE behavior state
|
||||
STAR_STATE //!< The STAR behavior state
|
||||
};
|
||||
|
||||
#endif //!__BEHAVIORSTATES__H__
|
||||
70
dCommon/dEnums/BehaviorTemplate.h
Normal file
70
dCommon/dEnums/BehaviorTemplate.h
Normal file
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
enum class BehaviorTemplate : unsigned int {
|
||||
EMPTY, // Not a real behavior, indicates invalid behaviors
|
||||
BASIC_ATTACK,
|
||||
TAC_ARC,
|
||||
AND,
|
||||
PROJECTILE_ATTACK,
|
||||
HEAL,
|
||||
MOVEMENT_SWITCH,
|
||||
AREA_OF_EFFECT,
|
||||
PLAY_EFFECT,
|
||||
IMMUNITY,
|
||||
DAMAGE_BUFF,
|
||||
DAMAGE_ABSORBTION,
|
||||
OVER_TIME,
|
||||
IMAGINATION,
|
||||
TARGET_CASTER,
|
||||
STUN,
|
||||
DURATION,
|
||||
KNOCKBACK,
|
||||
ATTACK_DELAY,
|
||||
CAR_BOOST,
|
||||
FALL_SPEED,
|
||||
SHIELD,
|
||||
REPAIR_ARMOR,
|
||||
SPEED,
|
||||
DARK_INSPIRATION,
|
||||
LOOT_BUFF,
|
||||
VENTURE_VISION,
|
||||
SPAWN_OBJECT,
|
||||
LAY_BRICK,
|
||||
SWITCH,
|
||||
BUFF,
|
||||
JETPACK,
|
||||
SKILL_EVENT,
|
||||
CONSUME_ITEM,
|
||||
SKILL_CAST_FAILED,
|
||||
IMITATION_SKUNK_STINK,
|
||||
CHANGE_IDLE_FLAGS,
|
||||
APPLY_BUFF,
|
||||
CHAIN,
|
||||
CHANGE_ORIENTATION,
|
||||
FORCE_MOVEMENT,
|
||||
INTERRUPT,
|
||||
ALTER_COOLDOWN,
|
||||
CHARGE_UP,
|
||||
SWITCH_MULTIPLE,
|
||||
START,
|
||||
END,
|
||||
ALTER_CHAIN_DELAY,
|
||||
CAMERA,
|
||||
REMOVE_BUFF,
|
||||
GRAB,
|
||||
MODULAR_BUILD,
|
||||
NPC_COMBAT_SKILL,
|
||||
BLOCK,
|
||||
VERIFY,
|
||||
TAUNT,
|
||||
AIR_MOVEMENT,
|
||||
SPAWN_QUICKBUILD,
|
||||
PULL_TO_POINT,
|
||||
PROPERTY_ROTATE,
|
||||
DAMAGE_REDUCTION,
|
||||
PROPERTY_TELEPORT,
|
||||
PROPERTY_CLEAR_TARGET,
|
||||
TAKE_PICTURE,
|
||||
MOUNT,
|
||||
SKILL_SET
|
||||
};
|
||||
@@ -29,6 +29,31 @@ namespace MessageType {
|
||||
|
||||
NEW_SESSION_ALERT,
|
||||
|
||||
REQUEST_SERVER_LIST,
|
||||
|
||||
SERVER_LIST_RESPONSE,
|
||||
|
||||
// Dashboard -> master -> every world: act on an online player (see PlayerAction.h)
|
||||
PLAYER_ACTION,
|
||||
// World -> master: whether this world handled a PLAYER_ACTION; master -> dashboard: aggregated result
|
||||
PLAYER_ACTION_RESULT,
|
||||
// World -> master -> dashboard: rows the game just wrote, so open dashboards update at once (see DataChanged.h)
|
||||
DATA_CHANGED,
|
||||
// World -> master -> dashboard: where players are (see DashboardMessages.h)
|
||||
PLAYER_POSITIONS,
|
||||
// Dashboard -> master -> every world: show an announcement to everyone online
|
||||
ANNOUNCE,
|
||||
// Dashboard -> master: shut the whole server down now (scheduled restarts; a supervisor starts it again)
|
||||
DASHBOARD_SHUTDOWN,
|
||||
// Dashboard -> master -> every server: settings changed on the dashboard, reload the config
|
||||
CONFIG_RELOAD,
|
||||
// Dashboard -> master: shut down one world instance (uint32 zone, uint32 instance)
|
||||
INSTANCE_SHUTDOWN,
|
||||
// Dashboard -> master -> every world: start or stop capturing a player's game messages (see MessageCapture.h)
|
||||
MESSAGE_CAPTURE_CONTROL,
|
||||
// World -> master -> dashboard: captured game messages and the capture's state (see MessageCapture.h)
|
||||
MESSAGE_CAPTURE_DATA,
|
||||
|
||||
// Move everyone in one instance to another (replace or merge; see InstanceMigration.h). Sent by a world
|
||||
// for a GM command; a dashboard could send it too
|
||||
INSTANCE_MIGRATE,
|
||||
|
||||
@@ -5,7 +5,8 @@ enum class ServiceType : uint16_t {
|
||||
COMMON = 0,
|
||||
AUTH,
|
||||
CHAT,
|
||||
WORLD = 4,
|
||||
DASHBOARD,
|
||||
WORLD,
|
||||
CLIENT,
|
||||
MASTER,
|
||||
UNKNOWN
|
||||
|
||||
37
dCommon/dEnums/StatisticID.h
Normal file
37
dCommon/dEnums/StatisticID.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef __STATISTICID__H__
|
||||
#define __STATISTICID__H__
|
||||
|
||||
/**
|
||||
* The IDs of each of the possible statistics
|
||||
*/
|
||||
enum StatisticID {
|
||||
CurrencyCollected = 1,
|
||||
BricksCollected,
|
||||
SmashablesSmashed,
|
||||
QuickBuildsCompleted,
|
||||
EnemiesSmashed,
|
||||
RocketsUsed,
|
||||
MissionsCompleted,
|
||||
PetsTamed,
|
||||
ImaginationPowerUpsCollected,
|
||||
LifePowerUpsCollected,
|
||||
ArmorPowerUpsCollected,
|
||||
MetersTraveled,
|
||||
TimesSmashed,
|
||||
TotalDamageTaken,
|
||||
TotalDamageHealed,
|
||||
TotalArmorRepaired,
|
||||
TotalImaginationRestored,
|
||||
TotalImaginationUsed,
|
||||
DistanceDriven,
|
||||
TimeAirborneInCar,
|
||||
RacingImaginationPowerUpsCollected,
|
||||
RacingImaginationCratesSmashed,
|
||||
RacingCarBoostsActivated,
|
||||
RacingTimesWrecked,
|
||||
RacingSmashablesSmashed,
|
||||
RacesFinished,
|
||||
FirstPlaceRaceFinishes,
|
||||
};
|
||||
|
||||
#endif //!__STATISTICID__H__
|
||||
13
dCommon/dEnums/eAccountLink.h
Normal file
13
dCommon/dEnums/eAccountLink.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef __EACCOUNTLINK__H__
|
||||
#define __EACCOUNTLINK__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
// What two accounts have in common, from data the servers store (see IModeration::GetLinkedAccounts)
|
||||
enum class eAccountLink : uint8_t {
|
||||
PLAY_KEY, // signed up with the same play key
|
||||
EMAIL, // the same email address
|
||||
LOGIN_ADDRESS, // logged in to the game from the same network address (account_login_addresses)
|
||||
};
|
||||
|
||||
#endif //!__EACCOUNTLINK__H__
|
||||
22
dCommon/dEnums/eLeaderboardType.h
Normal file
22
dCommon/dEnums/eLeaderboardType.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef __ELEADERBOARDTYPE__H__
|
||||
#define __ELEADERBOARDTYPE__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
/**
|
||||
* CDClient Activities.leaderboardType. The client picks the leaderboard's columns from it
|
||||
* (LWOCharacterComponent::msgSendActivitySummaryLeaderboardData in 1.10.64); the server decides the order.
|
||||
*/
|
||||
enum class eLeaderboardType : uint32_t {
|
||||
ShootingGallery, // Score, Streak, Accuracy
|
||||
Racing, // Best Time, Best Lap, Wins
|
||||
MonumentRace, // Time taken
|
||||
FootRace, // Time left on the race's countdown at the finish (L_ACT_BASE_FOOT_RACE_CLIENT.lua sends the remaining time)
|
||||
UnusedLeaderboard4, // There is no 4 defined anywhere in the cdclient, but it takes Points.
|
||||
Survival, // Time, Points
|
||||
SurvivalNS, // Wave, Time
|
||||
Donations, // Donations
|
||||
None
|
||||
};
|
||||
|
||||
#endif //!__ELEADERBOARDTYPE__H__
|
||||
13
dCommon/dEnums/ePlayerReportKind.h
Normal file
13
dCommon/dEnums/ePlayerReportKind.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef __EPLAYERREPORTKIND__H__
|
||||
#define __EPLAYERREPORTKIND__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
// What a player reported from the game's Report Abuse window (player_reports.kind holds the name)
|
||||
enum class ePlayerReportKind : uint8_t {
|
||||
PLAYER, // another player: ReportBug with nOtherPlayerID set
|
||||
MODEL, // an object in the world, usually a model on a property: ReportOffensiveModel
|
||||
PROPERTY, // a property, picked by its plaque: ReportOffensiveProperty
|
||||
};
|
||||
|
||||
#endif //!__EPLAYERREPORTKIND__H__
|
||||
13
dCommon/dEnums/ePlayerReportStatus.h
Normal file
13
dCommon/dEnums/ePlayerReportStatus.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef __EPLAYERREPORTSTATUS__H__
|
||||
#define __EPLAYERREPORTSTATUS__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
// Where a player report stands (player_reports.status)
|
||||
enum class ePlayerReportStatus : uint8_t {
|
||||
OPEN,
|
||||
ACTIONED, // staff acted on it (and may have given a strike)
|
||||
DISMISSED, // nothing to act on
|
||||
};
|
||||
|
||||
#endif //!__EPLAYERREPORTSTATUS__H__
|
||||
11
dCommon/dEnums/ePropertyPrivacyOption.h
Normal file
11
dCommon/dEnums/ePropertyPrivacyOption.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef __EPROPERTYPRIVACYOPTION__H__
|
||||
#define __EPROPERTYPRIVACYOPTION__H__
|
||||
|
||||
// Who may visit a property (properties.privacy_option)
|
||||
enum class PropertyPrivacyOption {
|
||||
Private = 0, // Default, only you can visit your property
|
||||
Friends = 1, // Your friends can visit your property
|
||||
Public = 2 // Requires Mythran approval, everyone can visit your property
|
||||
};
|
||||
|
||||
#endif //!__EPROPERTYPRIVACYOPTION__H__
|
||||
16
dCommon/dEnums/eStrikeSource.h
Normal file
16
dCommon/dEnums/eStrikeSource.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef __ESTRIKESOURCE__H__
|
||||
#define __ESTRIKESOURCE__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
// What a strike against an account was given for (account_strikes.source holds the name)
|
||||
enum class eStrikeSource : uint8_t {
|
||||
MANUAL, // given by hand on the account's page
|
||||
NAME, // a rejected character name
|
||||
PET_NAME, // a rejected pet name
|
||||
PROPERTY, // a rejected property
|
||||
LEADERBOARD, // a score removed from a leaderboard
|
||||
PLAYER_REPORT, // acting on a report a player sent from the game (Player Reports)
|
||||
};
|
||||
|
||||
#endif //!__ESTRIKESOURCE__H__
|
||||
14
dCommon/dEnums/eStrikeStep.h
Normal file
14
dCommon/dEnums/eStrikeStep.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifndef __ESTRIKESTEP__H__
|
||||
#define __ESTRIKESTEP__H__
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
// What happens on its own when an account reaches a number of active strikes (strike_*_at settings).
|
||||
// account_strikes.step holds the name on the strike that set it off.
|
||||
enum class eStrikeStep : uint8_t {
|
||||
WARN, // a warning on the account's record, shown to the player if they're online
|
||||
MUTE, // muted for strike_mute_days
|
||||
BAN, // banned for strike_ban_days (0: permanently)
|
||||
};
|
||||
|
||||
#endif //!__ESTRIKESTEP__H__
|
||||
Reference in New Issue
Block a user