Files
playerbot-v2/sql/playerbot_v2/0003_talent_builds.sql
T
josh b853b3ae06 PlayerbotV2 module with core-hooks patches and full SQL migrations
Shipped patches:
  playerbotv2_core_hooks.patch    — stock TrinityCore master
  playerbotv2_core_hooks.thordekk.patch — ThordekkCore

SQL applied at module init by PlayerbotMigrationMgr:
  sql/playerbot_v2/0000_playerbot_shared_bootstrap.sql  — creates playerbot
    shared DB + tables (handcrafted_road, playerbots_names,
    playerbot_dungeon_routes, playerbot_nav_links,
    playerbot_v2_world_metadata)
  sql/playerbot_v2/0001..0016*.sql  — character DB tables

SQL auto-applied by TC DBUpdater:
  sql/updates/auth/master/
  sql/updates/characters/master/

Manual fallback:
  sql/playerbot/playerbot_bootstrap.sql

Static data (manual):
  src/modules/PlayerbotV2/sql/shared/
  src/modules/PlayerbotV2/sql/world/

Includes: Log.h, SpellAuras.h (PlayerbotAPI), Position.h (PlayerbotHooks)
2026-08-11 16:42:02 +10:00

42 lines
2.0 KiB
SQL

-- Migration: 0003_talent_builds
-- Date: 2026-05-07
-- Purpose: Curated per-spec talent build storage. Each (class, spec, context)
-- row stores a complete trait spend as a CSV of colon-triples.
-- The bot loads these on demand, picks the row matching its
-- current context (Raid / MythicPlus / PvP / Default), and applies
-- via TraitMgr commit.
-- Reverts: yes (DROP TABLE).
CREATE TABLE IF NOT EXISTS playerbot_v2_talent_build (
class_id TINYINT UNSIGNED NOT NULL,
spec_id INT UNSIGNED NOT NULL,
context TINYINT UNSIGNED NOT NULL,
label VARCHAR(128) NOT NULL DEFAULT '',
entries_json MEDIUMTEXT NOT NULL,
source_url VARCHAR(512) NOT NULL DEFAULT '',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (class_id, spec_id, context),
KEY idx_spec (spec_id, context)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Column docs (kept here below the CREATE so the migration body stays
-- a single statement free of comment-embedded semicolons that the
-- migration parser used to choke on):
-- class_id ChrClasses.db2 id (1=Warrior, 2=Paladin, 3=Hunter...)
-- spec_id ChrSpecialization.db2 id (e.g., 71=Arms, 72=Fury)
-- context 0=Default, 1=Raid, 2=MythicPlus, 3=PvP, 4=Leveling.
-- Default is the fallback when no context-specific row
-- exists for the bot.
-- label Human-readable name for diagnostics
-- ("Arms Slaughterhouse 11.1.5").
-- entries_json CSV of colon-triples: nodeID:entryID:ranks separated
-- by commas. Loader parses into a TraitConfig.Entries
-- vector. Empty string is allowed (bot falls back to
-- TraitMgr starter build).
-- source_url wowhead / simc origin URL for human reference.
-- Record this migration as applied.
INSERT INTO playerbot_v2_schema_version (version, sha256)
VALUES (3, 'pending-fill-at-release-time-with-actual-sha256-of-this-file');