Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat(LuaEngine): Add RegisterTicketEvent and TicketMethods #225

Merged
merged 9 commits into from
Feb 19, 2025

Conversation

iThorgrim
Copy link

@iThorgrim iThorgrim commented Jan 22, 2025

This PRintroduces a new hook system for ticket events in Eluna, allowing developers to handle ticket-related actions dynamically. Additionally, new methods have been added to the Ticket object.

Requirement

AC PR : azerothcore/azerothcore-wotlk#21238

Supported Ticket Events

  1. TICKET_EVENT_ON_CREATE
    Triggered when a ticket is created.
    Signature: (event, ticket)

  2. TICKET_EVENT_UPDATE_LAST_CHANGE
    Triggered when a ticket is updated.
    Signature: (event, ticket)

  3. TICKET_EVENT_ON_CLOSE
    Triggered when a ticket is closed.
    Signature: (event, ticket)

  4. TICKET_EVENT_ON_RESOLVE
    Triggered when a ticket is resolved.
    Signature: (event, ticket)

Example Usage

local function OnTicketCreate(event, ticket)
    print("Test: OnTicketCreate triggered:", ticket:GetId())
end
RegisterTicketEvent(TICKET_EVENT_ON_CREATE, OnTicketCreate)

Test performed :

TICKET_EVENT_ON_CREATE                          = 1
TICKET_EVENT_UPDATE_LAST_CHANGE                 = 2
TICKET_EVENT_ON_CLOSE                           = 3
TICKET_EVENT_ON_RESOLVE                         = 4

local function OnTicketCreate(event, ticket)
    print("Test: OnTicketCreate triggered:", ticket:GetId())
end
RegisterTicketEvent(TICKET_EVENT_ON_CREATE, OnTicketCreate)

local function OnTicketUpdateLastChange(event, ticket)
    print("Test: OnTicketUpdate triggered:", ticket:GetId(), "Message:", ticket:GetMessage())
end
RegisterTicketEvent(TICKET_EVENT_UPDATE_LAST_CHANGE, OnTicketUpdate)

local function OnTicketClose(event, ticket)
    print("Test: OnTicketClose triggered:", ticket:IsClosed())
end
RegisterTicketEvent(TICKET_EVENT_ON_CLOSE, OnTicketClose)

local function OnTicketResolve(event, ticket)
    print("Test: OnTicketClose triggered:", ticket:IsCompleted())
end
RegisterTicketEvent(TICKET_EVENT_ON_RESOLVE, OnTicketResolve)

Results:
image

Desktop.2025-01-22.18-53-44.mp4

@55Honey
Copy link

55Honey commented Jan 25, 2025

[ 24%] Building CXX object src/server/apps/CMakeFiles/authserver.dir/authserver/Main.cpp.o
/home/runner/work/mod-eluna/mod-eluna/modules/mod-eluna/src/ElunaLuaEngine_SC.cpp:1011:35: fatal error: unknown class name 'TicketScript'; did you mean 'PetScript'?
 1011 | class Eluna_TicketScript : public TicketScript
      |                                   ^~~~~~~~~~~~
      |                                   PetScript
/home/runner/work/mod-eluna/mod-eluna/src/server/game/Scripting/ScriptDefines/PetScript.h:35:7: note: 'PetScript' declared here
   35 | class PetScript : public ScriptObject
      |       ^
1 error generated.

Edit: Right, because it requires the AC PR. Nevermind.

@55Honey 55Honey merged commit ae6bb06 into azerothcore:master Feb 19, 2025
2 checks passed
@iThorgrim iThorgrim deleted the RegisterTicketEvent branch February 20, 2025 10:56
Wolfanek added a commit to Wolfanek/ElunaWotlk5 that referenced this pull request Mar 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants