@@ -14,8 +14,6 @@ module.exports=(type)->
1414 Convert = require ' ansi-to-html'
1515 convert = new Convert ()
1616
17-
18-
1917 opn (" http://#{ config .host } :#{ config[' express-port' ]} " )
2018
2119 # początkowe zmienne
@@ -40,6 +38,8 @@ module.exports=(type)->
4038
4139 # websocket
4240 io .sockets .on " connection" , (socket )->
41+ socketInfo[socket .id ]= {}
42+ bot = socketInfo[socket .id ]
4343 socket .on " initClient" ,(data )->
4444 console .log " [+] " + data .nick
4545
@@ -51,71 +51,67 @@ module.exports=(type)->
5151 username : socketInfo[socket .id ].nick
5252 version : config .realServer .version
5353 }
54-
54+ bot = ()->
55+ return socketInfo[socket .id ].bot
56+ emit = (array )->
57+ io .to (socket .id ).emit array...
5558 # Eventy otrzymywane z serwera minecraftowego
56- socketInfo[ socket . id ]. bot ._client .on " map_chunk" ,(packet )->
59+ bot () ._client .on " map_chunk" ,(packet )->
5760 cell = new Chunk ()
5861 cell .load packet .chunkData ,packet .bitMap ,false ,true
59- io . to ( socket . id ). emit " mapChunk" , cell .sections ,packet .x ,packet .z ,packet .biomes
62+ emit [ " mapChunk" , cell .sections ,packet .x ,packet .z ,packet .biomes ]
6063 return
61- socketInfo[socket .id ].bot .on ' chat' ,(username , message )->
62- if username is socketInfo[socket .id ].bot .username
64+ botEventMap = {
65+ " move " : ()->
66+ emit [" move" ,bot ().entity .position ]
6367 return
64- return
65- socketInfo[socket .id ].bot .on ' move' ,()->
66- try
67- io .to (socket .id ).emit " move" ,socketInfo[socket .id ].bot .entity .position
68- return
69- socketInfo[socket .id ].bot .on ' health' ,()->
70- try
71- io .to (socket .id ).emit " hp" ,socketInfo[socket .id ].bot .health
72- io .to (socket .id ).emit " food" ,socketInfo[socket .id ].bot .food
73- return
68+ " health " : ()->
69+ emit [" hp" ,bot ().health ]
70+ emit [" food" ,bot ().food ]
71+ return
72+ " spawn " : ()->
73+ emit [" spawn" ,bot ().entity .yaw ,bot ().entity .pitch ]
74+ return
75+ " kicked " : (reason ,loggedIn )->
76+ emit [" kicked" ,reason]
77+ return
78+ " message " : (msg )->
79+ emit [" msg" ,convert .toHtml (msg .toAnsi ())]
80+ return
81+ " experience " : ()->
82+ emit [" xp" ,bot ().experience ]
83+ return
84+ " blockUpdate " : (oldb ,newb )->
85+ emit [" blockUpdate" ,[newb .position .x ,newb .position .y ,newb .position .z ,newb .stateId ]]
86+ return
87+ }
88+ for i of botEventMap
89+ socketInfo[socket .id ].bot .on i, botEventMap[i]
90+
7491 inv = " "
7592 socketInfo[socket .id ].int = setInterval ()->
76- inv_new = JSON .stringify (socketInfo[ socket . id ]. bot .inventory .slots )
93+ inv_new = JSON .stringify (bot () .inventory .slots )
7794 if inv isnt inv_new
7895 inv = inv_new
79- io . to ( socket . id ). emit " inventory" ,socketInfo[ socket . id ]. bot .inventory .slots
96+ emit " inventory" ,bot () .inventory .slots
8097 ,100
81- socketInfo[socket .id ].bot .on ' spawn' ,()->
82- try
83- io .to (socket .id ).emit " spawn" ,socketInfo[socket .id ].bot .entity .yaw ,socketInfo[socket .id ].bot .entity .pitch
84- return
85- socketInfo[socket .id ].bot .on ' kicked' ,(reason ,loggedIn )->
86- try
87- io .to (socket .id ).emit " kicked" ,reason
88- return
89- socketInfo[socket .id ].bot .on ' message' ,(msg )->
90- try
91- io .to (socket .id ).emit " msg" ,convert .toHtml (msg .toAnsi ());
92- return
93- socketInfo[socket .id ].bot .on ' experience' ,()->
94- try
95- io .to (socket .id ).emit " xp" ,socketInfo[socket .id ].bot .experience
96- return
97- socketInfo[socket .id ].bot .on ' blockUpdate' ,(oldb ,newb )->
98- io .to (socket .id ).emit " blockUpdate" ,[newb .position .x ,newb .position .y ,newb .position .z ,newb .stateId ]
99- return
100- return
101-
102- # eventy otrzymywane od klienta
103- socket .on " move" ,(state ,toggle )->
104- try
105- socketInfo[socket .id ].bot .setControlState (state,toggle)
106- return
107- socket .on " command" ,(com )->
108- try
109- socketInfo[socket .id ].bot .chat (com)
110- return
111- socket .on " rotate" ,(data )->
112- try
113- socketInfo[socket .id ].bot .look data...
114- return
115- socket .on " disconnect" , ->
116- try
117- clearInterval socketInfo[socket .id ].int
118- console .log " [-] " + socketInfo[socket .id ].nick
119- socketInfo[socket .id ].bot .end ()
120- delete socketInfo[socket .id ]
121- return
98+ socketEventMap = {
99+ " move " : (state ,toggle )->
100+ bot ().setControlState (state,toggle)
101+ return
102+ " command " : (com )->
103+ bot ().chat (com)
104+ return
105+ " rotate " : (data )->
106+ bot ().look data...
107+ return
108+ " disconnect " : ()->
109+ try
110+ clearInterval socketInfo[socket .id ].int
111+ console .log " [-] " + socketInfo[socket .id ].nick
112+ socketInfo[socket .id ].bot .end ()
113+ delete socketInfo[socket .id ]
114+ return
115+ }
116+ for i of socketEventMap
117+ socket .on i,socketEventMap[i]
0 commit comments