@@ -2,11 +2,17 @@ package handlers
22
33import (
44 "fmt"
5+ "net"
6+ "time"
57
68 "github.com/df-mc/dragonfly/server/block/cube"
79 "github.com/df-mc/dragonfly/server/cmd"
810 "github.com/df-mc/dragonfly/server/item"
911 "github.com/df-mc/dragonfly/server/player"
12+ "github.com/df-mc/dragonfly/server/player/skin"
13+ "github.com/df-mc/dragonfly/server/session"
14+ "github.com/df-mc/dragonfly/server/world"
15+ "github.com/go-gl/mathgl/mgl64"
1016 "github.com/secmc/plugin/plugin/ports"
1117)
1218
@@ -20,31 +26,155 @@ func NewPlayerHandler(manager ports.EventManager) player.Handler {
2026}
2127
2228func (h * PlayerHandler ) HandleChat (ctx * player.Context , message * string ) {
23- if h .manager == nil {
24- return
25- }
2629 h .manager .EmitChat (ctx , ctx .Val (), message )
2730}
2831
32+ func (h * PlayerHandler ) HandleMove (ctx * player.Context , newPos mgl64.Vec3 , newRot cube.Rotation ) {
33+ h .manager .EmitPlayerMove (ctx , ctx .Val (), newPos , newRot )
34+ }
35+
36+ func (h * PlayerHandler ) HandleJump (p * player.Player ) {
37+ h .manager .EmitPlayerJump (p )
38+ }
39+
40+ func (h * PlayerHandler ) HandleTeleport (ctx * player.Context , pos mgl64.Vec3 ) {
41+ h .manager .EmitPlayerTeleport (ctx , ctx .Val (), pos )
42+ }
43+
44+ func (h * PlayerHandler ) HandleChangeWorld (p * player.Player , before , after * world.World ) {
45+ h .manager .EmitPlayerChangeWorld (p , before , after )
46+ }
47+
48+ func (h * PlayerHandler ) HandleToggleSprint (ctx * player.Context , after bool ) {
49+ h .manager .EmitPlayerToggleSprint (ctx , ctx .Val (), after )
50+ }
51+
52+ func (h * PlayerHandler ) HandleToggleSneak (ctx * player.Context , after bool ) {
53+ h .manager .EmitPlayerToggleSneak (ctx , ctx .Val (), after )
54+ }
55+
56+ func (h * PlayerHandler ) HandleFoodLoss (ctx * player.Context , from int , to * int ) {
57+ h .manager .EmitPlayerFoodLoss (ctx , ctx .Val (), from , to )
58+ }
59+
60+ func (h * PlayerHandler ) HandleHeal (ctx * player.Context , health * float64 , src world.HealingSource ) {
61+ h .manager .EmitPlayerHeal (ctx , ctx .Val (), health , src )
62+ }
63+
64+ func (h * PlayerHandler ) HandleHurt (ctx * player.Context , damage * float64 , immune bool , attackImmunity * time.Duration , src world.DamageSource ) {
65+ h .manager .EmitPlayerHurt (ctx , ctx .Val (), damage , immune , attackImmunity , src )
66+ }
67+
68+ func (h * PlayerHandler ) HandleDeath (p * player.Player , src world.DamageSource , keepInv * bool ) {
69+ h .manager .EmitPlayerDeath (p , src , keepInv )
70+ }
71+
72+ func (h * PlayerHandler ) HandleRespawn (p * player.Player , pos * mgl64.Vec3 , w * * world.World ) {
73+ h .manager .EmitPlayerRespawn (p , pos , w )
74+ }
75+
76+ func (h * PlayerHandler ) HandleSkinChange (ctx * player.Context , skin * skin.Skin ) {
77+ h .manager .EmitPlayerSkinChange (ctx , ctx .Val (), skin )
78+ }
79+
80+ func (h * PlayerHandler ) HandleFireExtinguish (ctx * player.Context , pos cube.Pos ) {
81+ h .manager .EmitPlayerFireExtinguish (ctx , ctx .Val (), pos )
82+ }
83+
84+ func (h * PlayerHandler ) HandleStartBreak (ctx * player.Context , pos cube.Pos ) {
85+ h .manager .EmitPlayerStartBreak (ctx , ctx .Val (), pos )
86+ }
87+
2988func (h * PlayerHandler ) HandleCommandExecution (ctx * player.Context , command cmd.Command , args []string ) {
30- if h .manager == nil {
31- return
32- }
3389 h .manager .EmitCommand (ctx , ctx .Val (), command .Name (), args )
3490}
3591
3692func (h * PlayerHandler ) HandleBlockBreak (ctx * player.Context , pos cube.Pos , drops * []item.Stack , xp * int ) {
37- if h .manager == nil {
38- return
39- }
4093 p := ctx .Val ()
4194 worldDim := fmt .Sprint (p .Tx ().World ().Dimension ())
4295 h .manager .EmitBlockBreak (ctx , p , pos , drops , xp , worldDim )
4396}
4497
4598func (h * PlayerHandler ) HandleQuit (p * player.Player ) {
46- if h .manager == nil {
99+ h .manager .EmitPlayerQuit (p )
100+ }
101+
102+ func (h * PlayerHandler ) HandleBlockPlace (ctx * player.Context , pos cube.Pos , b world.Block ) {
103+ h .manager .EmitPlayerBlockPlace (ctx , ctx .Val (), pos , b )
104+ }
105+
106+ func (h * PlayerHandler ) HandleBlockPick (ctx * player.Context , pos cube.Pos , b world.Block ) {
107+ h .manager .EmitPlayerBlockPick (ctx , ctx .Val (), pos , b )
108+ }
109+
110+ func (h * PlayerHandler ) HandleItemUse (ctx * player.Context ) {
111+ h .manager .EmitPlayerItemUse (ctx , ctx .Val ())
112+ }
113+
114+ func (h * PlayerHandler ) HandleItemUseOnBlock (ctx * player.Context , pos cube.Pos , face cube.Face , clickPos mgl64.Vec3 ) {
115+ p := ctx .Val ()
116+ if p == nil {
47117 return
48118 }
49- h .manager .EmitPlayerQuit (p )
119+ var block world.Block
120+ if tx := p .Tx (); tx != nil {
121+ block = tx .Block (pos )
122+ }
123+ h .manager .EmitPlayerItemUseOnBlock (ctx , p , pos , face , clickPos , block )
124+ }
125+
126+ func (h * PlayerHandler ) HandleItemUseOnEntity (ctx * player.Context , e world.Entity ) {
127+ h .manager .EmitPlayerItemUseOnEntity (ctx , ctx .Val (), e )
128+ }
129+
130+ func (h * PlayerHandler ) HandleItemRelease (ctx * player.Context , it item.Stack , dur time.Duration ) {
131+ h .manager .EmitPlayerItemRelease (ctx , ctx .Val (), it , dur )
132+ }
133+
134+ func (h * PlayerHandler ) HandleItemConsume (ctx * player.Context , it item.Stack ) {
135+ h .manager .EmitPlayerItemConsume (ctx , ctx .Val (), it )
136+ }
137+
138+ func (h * PlayerHandler ) HandleAttackEntity (ctx * player.Context , e world.Entity , force , height * float64 , critical * bool ) {
139+ h .manager .EmitPlayerAttackEntity (ctx , ctx .Val (), e , force , height , critical )
140+ }
141+
142+ func (h * PlayerHandler ) HandleExperienceGain (ctx * player.Context , amount * int ) {
143+ h .manager .EmitPlayerExperienceGain (ctx , ctx .Val (), amount )
144+ }
145+
146+ func (h * PlayerHandler ) HandlePunchAir (ctx * player.Context ) {
147+ h .manager .EmitPlayerPunchAir (ctx , ctx .Val ())
148+ }
149+
150+ func (h * PlayerHandler ) HandleSignEdit (ctx * player.Context , pos cube.Pos , frontSide bool , oldText , newText string ) {
151+ h .manager .EmitPlayerSignEdit (ctx , ctx .Val (), pos , frontSide , oldText , newText )
152+ }
153+
154+ func (h * PlayerHandler ) HandleLecternPageTurn (ctx * player.Context , pos cube.Pos , oldPage int , newPage * int ) {
155+ h .manager .EmitPlayerLecternPageTurn (ctx , ctx .Val (), pos , oldPage , newPage )
156+ }
157+
158+ func (h * PlayerHandler ) HandleItemDamage (ctx * player.Context , it item.Stack , damage int ) {
159+ h .manager .EmitPlayerItemDamage (ctx , ctx .Val (), it , damage )
160+ }
161+
162+ func (h * PlayerHandler ) HandleItemPickup (ctx * player.Context , it * item.Stack ) {
163+ h .manager .EmitPlayerItemPickup (ctx , ctx .Val (), it )
164+ }
165+
166+ func (h * PlayerHandler ) HandleHeldSlotChange (ctx * player.Context , from , to int ) {
167+ h .manager .EmitPlayerHeldSlotChange (ctx , ctx .Val (), from , to )
168+ }
169+
170+ func (h * PlayerHandler ) HandleItemDrop (ctx * player.Context , it item.Stack ) {
171+ h .manager .EmitPlayerItemDrop (ctx , ctx .Val (), it )
172+ }
173+
174+ func (h * PlayerHandler ) HandleTransfer (ctx * player.Context , addr * net.UDPAddr ) {
175+ h .manager .EmitPlayerTransfer (ctx , ctx .Val (), addr )
176+ }
177+
178+ func (h * PlayerHandler ) HandleDiagnostics (p * player.Player , d session.Diagnostics ) {
179+ h .manager .EmitPlayerDiagnostics (p , d )
50180}
0 commit comments