Search the Community
Showing results for tags 'emu'.
-
I had a dream... using Minecraft as GUI for Homeautomation, in the Help Forum SkinnyWhiteGuy and i developed a rudimentary minecraft server that has now reached a state where you can login into the game. It has no features at all yet but im prowd to show you the first attempt. sourcecode will be released once finished, or you can see it here: The Server can be downloaded here: http://dl.dropbox.com/u/957526/AutoCraft.exe (Minecraft Client Version 1.1 REQUIRED) start it start minecraft add 127.0.0.1 to your serverlist and you shoud see the first packet arrive in the console window of the server. if you login there is a bunch of hexcode scrolling down following. If you want to quit it, just do anything in minecraft that has not jet been implemented, the default behaviour of the server is kick the player if it doesn't know what to do with the incomming packets. then you can close the server CUI. If someone is willed to participate into the project feel free to pm me. Best regards, J
-
Hello There, i want to create a little Minecraft 1.1 server which is capable of using the Minecraft client as GUI for AutoIT to do homeautomation. this is what i have so far. #NoTrayIcon #include "TCP.au3" ToolTip("SERVER: Creating server...", 10, 30) $hServer = _TCP_Server_Create(25565); A MineCraftServer. Tadaa! _TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient") _TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect") _TCP_RegisterEvent($hServer, $TCP_RECEIVE, "Received") While 1 WEnd Func NewClient($hSocket, $iError) ToolTip("SERVER: New client connected.", 10, 30) EndFunc ;==>NewClient Func Disconnect($hSocket, $iError) ToolTip("SERVER: Client disconnected.", 10, 30) EndFunc ;==>Disconnect Func Received($hSocket, $sReceived, $iError) ConsoleWrite(">| " & Binary($sReceived) & @CRLF) Protocol(Binary($sReceived),$hSocket) EndFunc ;==>Disconnect Func Protocol($stream,$hSocket) switch StringLeft($stream,4) Case 0xFE ConsoleWrite("+| Server List Ping" & @CRLF) _TCP_Send($hSocket, 0xFF) Case 0x02 $username = BinaryToString("0x" & StringTrimLeft($stream,8),3) ; all strings are UCS-2 encoded which is luckily the same as UTF-16 BigEndian. ConsoleWrite("+| Handshake by " & $username & @CRLF) _TCP_Send($hSocket, "0x020001002D") ; StringToBinary("-",3) case Else ConsoleWrite("!| Unknown Packet!" & @CRLF) _TCP_Send($hSocket, 0xFF) EndSwitch EndFunc It uses the from Kip. as you can see it's not very much, the minecraft client recognices the server as online and can connect to it. As of the Server Protocol specs http://wiki.vg/Protocol i have to send a Handshake reply to the client in order to proceed. the specs say i have to send the packetid which is 0x02 for Handshake then the length of the string which would be 1 char because i don't use authentification and the a "-" (minus) in UTF-16 BigEndian. But it Doesn't work, either autoit can't send HEX values longer then 8 i think or i have to send it as string which is bad to for the client. Can' somebody explain to me how i can send it the correct way, or tell me a bit about binary analyses? I don't think that doing a stringleft with binary is the right way but i can't figure out the correct one. Best regards, J.