pipeline - mtanksl/OpenTibia GitHub Wiki

Introduction

A lot happens when an Incoming Packet (green) arrives at the server.

Commands may call other Commands (yellow) using Context.Current.AddCommand method.

Commands may send Outgoing Packets (red) using Context.Current.AddPacket method.

Commands may generate Events (blue) using Context.Current.AddEvent method.

Commands can be intercepted and changed (purple) before executing.

Events can be intercepted (orange) after execution.

Login example

Login

Logout example

Logout

Base examples

  • TileCreateItemCommand
    • Attach
    • TileAddItemCommand
  • ContainerCreateItemCommand
    • Attach
    • ContainerAddItemCommand
  • InventoryCreateItemCommand
    • Attach
    • InventoryAddItemCommand
  • ItemMoveCommand
    • TileRemoveItemCommand or ContainerRemoveItemCommand or InventoryRemoveItemCommand
    • TileAddItemCommand or ContainerAddItemCommand or InventoryAddItemCommand
  • ItemDestroyCommand
    • TileRemoveItemCommand or ContainerRemoveItemCommand or InventoryRemoveItemCommand
    • Detach
  • StackableItemUpdateCountCommand or FluidItemUpdateFluidTypeCommand or SplashItemUpdateFluidTypeCommand
    • TileRefreshItemCommand or ContainerRefreshItemCommand or InventoryRefreshItemCommand
  • ItemTransformCommand
    • TileReplaceItemCommand or ContainerReplaceItemCommand or InventoryReplaceItemCommand
    • Detach