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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

iThorgrim
Copy link

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, player, ticket)

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

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

  4. TICKET_EVENT_STATUS_UPDATE
    Triggered when the ticket's status is updated.
    Signature: (event, player, ticket)

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

Example Usage

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

Test performed :

TICKET_EVENT_ON_CREATE                          = 1
TICKET_EVENT_ON_UPDATE                          = 2
TICKET_EVENT_ON_CLOSE                           = 3
TICKET_EVENT_STATUS_UPDATE                      = 4
TICKET_EVENT_ON_RESOLVE                         = 5

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

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

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

local function OnTicketStatusUpdate(event, player, ticket)
    print("Test: OnTicketClose triggered:", ticket:GetId())
end
RegisterTicketEvent(TICKET_EVENT_STATUS_UPDATE, OnTicketStatusUpdate)

local function OnTicketResolve(event, player, 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
Member

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.

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.

2 participants