Wanparty.dk

Wanparty.dk

3. December '24 kl. 19:54*
Velkommen, Gæst. Venligst log på eller registrer.

Log på med brugernavn, kodeord og sessionslængde
 
   Forum   Log på Registrér  
Sider: [1]
  Udskriv  
Forfatter Emne: MineCraft server monitor  (Læst 8184 gange)
0 Medlemmer og 1 Gæst læser dette emne.
Wishbone
Übergamer wannabe
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 844


"Maybe if we build a giant, wooden badger..."


« Dato: 14. Februar '11 kl. 00:15 »

PS: Hvis i støder på en web-baseret server monitor til MC (a la de andre vi har på forsiden), vil jeg gerne høre om det. Jeg har ikke kunnet finde nogen, så måske skal jeg bare selv prøve at tyde protokollen med Wireshark, men det ville være nemmere hvis nogen havde gjort det allerede.
Well, nogen må have gjort det for at lave dette webadmin tool, men om det inkluderer en monitor man kan sætte på hjemmesiden, ved jeg ikke.
Logget

Nothing travels faster than light, with the possible exception of bad news, which obeys its own special laws.
   - Douglas Adams


Wishbone
Übergamer wannabe
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 844


"Maybe if we build a giant, wooden badger..."


« Svar #1 Dato: 15. Februar '11 kl. 01:15 »

PS: Hvis i støder på en web-baseret server monitor til MC (a la de andre vi har på forsiden), vil jeg gerne høre om det. Jeg har ikke kunnet finde nogen, så måske skal jeg bare selv prøve at tyde protokollen med Wireshark, men det ville være nemmere hvis nogen havde gjort det allerede.
Hmm, nu har jeg kigget lidt på det, og...

Tja, jeg har decompilet serveren. Hvis du kan komme op med en god idé til hvordan klientsiden af server monitoren skal skrues sammen, og kan fortælle mig hvordan du gerne vil have data leveret, så kan jeg muligvis lave et server mod som kan levere dataene. Jeg vil tro det nemmeste er at outputte dem i en XML fil og så opdatere den periodisk. Det er vel ikke så mange data der skal til. Det eneste som muligvis er lidt tricky er at afgøre om serveren i det hele taget er online. Det eneste jeg umiddelbart kan komme op med er at timestampe filerne, og så lave en logik i monitoren som siger at hvis filen er over x sekunder gammel, så er serveren offline. Man kan selvfølgelig skrive til filen under shutdown, men det hjælper jo ikke hvis serveren crasher.

Hvorom alting er, så er det da en interessant opgave. Det er ikke sikkert jeg kan gøre det, men jeg er da villig til at give det et forsøg.
Logget

Nothing travels faster than light, with the possible exception of bad news, which obeys its own special laws.
   - Douglas Adams


Geddeth
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 1.092



« Svar #2 Dato: 15. Februar '11 kl. 10:32 »

Tja, jeg har decompilet serveren.
Chokeret Grin
Tjek om dette kan være til hjælp, de gør vist noget af det samme: https://mcp.ocean-labs.de/index.php/MCP_Releases

Jeg havde egentlig fået opfattelsen af, at serveren var open source, men det lader det ikke til alligevel. Jeg kan i hvert fald ikke finde kildekoden. Men disse servere er det i hvert fald: https://www.minecraftwiki.net/wiki/Custom_server_list

Måske er der inspiration at hente i noget af deres kode.

Hvis du kan komme op med en god idé til hvordan klientsiden af server monitoren skal skrues sammen, og kan fortælle mig hvordan du gerne vil have data leveret, så kan jeg muligvis lave et server mod som kan levere dataene. Jeg vil tro det nemmeste er at outputte dem i en XML fil og så opdatere den periodisk. Det er vel ikke så mange data der skal til. Det eneste som muligvis er lidt tricky er at afgøre om serveren i det hele taget er online. Det eneste jeg umiddelbart kan komme op med er at timestampe filerne, og så lave en logik i monitoren som siger at hvis filen er over x sekunder gammel, så er serveren offline. Man kan selvfølgelig skrive til filen under shutdown, men det hjælper jo ikke hvis serveren crasher.
Jeg vil helt klar helst have dem serveret som XML via HTTP. Dvs. serveren skal åbne en seperat query port, som udelukkende har til formål at spytte XML ud på request. Det gør stort set alle andre spilservere, bortset fra at kun et fåtal af dem er intelligente nok til at bruge XML som dataformat. Det vil også løse problemet med om serveren er online, fordi den ganske enkelt ikke vil svare på HTTP-forespørgslen, hvis den ikke er online. Så er det op til den forespørgende part at håndtere den situation korrekt.
Hvis du kan få dette wrappet rundt om en vanilla Beta-server, tror jeg du bliver en helt på MC forums  Cool

Jeg kan dog forestille mig, at det bliver svært, hvis det skal gøres via de/re-obfuscation af koden. Det eneste mod til Beta-serveren jeg har set, er på denne liste: https://www.minecraftwiki.net/wiki/Mods
Og det er bare nogle ekstra konsol-kommandoer, ikke noget fancy som dette.

Hvorom alting er, så er det da en interessant opgave. Det er ikke sikkert jeg kan gøre det, men jeg er da villig til at give det et forsøg.

Well, give it a shot. Vi bør måske lige researche lidt dybere, og overveje løsningen ordentligt inden. Måske kan nogen i MC server forummet give indspark til hvordan det skal gøres.
Logget

Keep It Simple.
Geddeth
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 1.092



« Svar #3 Dato: 15. Februar '11 kl. 10:38 »

... og nu tænker jeg så lige højt: hvis man kan lave en seperat monitor (altså et seperat program/proces), som serverer data via XML/HTTP, så kan det være man kan få den til at spørge Beta-serveren via konsol-kommandoen "/list", som jo lister spillerne og deres navne. Det er jo dybest det eneste man skal vide.

Jeg blev inspireret af denne sætning om server management mods:
   "They are frequently implemented as "wrappers" which do not actually modify the main server .jar file, instead monitoring its output and sending commands to it. "

Det er vist også sådan Tztk er implementeret (i Perl): https://www.minecraftwiki.net/wiki/Mods/Tztk
Logget

Keep It Simple.
Wishbone
Übergamer wannabe
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 844


"Maybe if we build a giant, wooden badger..."


« Svar #4 Dato: 15. Februar '11 kl. 10:54 »

Tja, jeg har decompilet serveren.
Chokeret Grin
Tjek om dette kan være til hjælp, de gør vist noget af det samme: https://mcp.ocean-labs.de/index.php/MCP_Releases

Det var sådan jeg decompilede den ;-)

Jeg vil helt klar helst have dem serveret som XML via HTTP. Dvs. serveren skal åbne en seperat query port, som udelukkende har til formål at spytte XML ud på request. Det gør stort set alle andre spilservere, bortset fra at kun et fåtal af dem er intelligente nok til at bruge XML som dataformat. Det vil også løse problemet med om serveren er online, fordi den ganske enkelt ikke vil svare på HTTP-forespørgslen, hvis den ikke er online. Så er det op til den forespørgende part at håndtere den situation korrekt.
Hvis du kan få dette wrappet rundt om en vanilla Beta-server, tror jeg du bliver en helt på MC forums  Cool

Altså en regulær webservice? Tja, det ville selvfølgelig være at foretrække. Men også noget sværere end bare at generere en fil. Still, der må være mindst tusind eksempler på webservices i Java jeg kan stjæle fra nettet.

Jeg kan dog forestille mig, at det bliver svært, hvis det skal gøres via de/re-obfuscation af koden. Det eneste mod til Beta-serveren jeg har set, er på denne liste: https://www.minecraftwiki.net/wiki/Mods
Og det er bare nogle ekstra konsol-kommandoer, ikke noget fancy som dette.

Well, så fancy er det jo heller ikke. Men hvis det er ekstra konsol kommandoer må det også være en replacement af selve server klassen (de er nemlig implementeret der), hvilket desværre næsten er en nødvendighed for at lave den slags tiltag. For at kunne hive data ud af serverens runtime objekter er man nødt til at have en "snabel" ind i selve serverkoden.
Logget

Nothing travels faster than light, with the possible exception of bad news, which obeys its own special laws.
   - Douglas Adams


Wishbone
Übergamer wannabe
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 844


"Maybe if we build a giant, wooden badger..."


« Svar #5 Dato: 15. Februar '11 kl. 10:59 »

... og nu tænker jeg så lige højt: hvis man kan lave en seperat monitor (altså et seperat program/proces), som serverer data via XML/HTTP, så kan det være man kan få den til at spørge Beta-serveren via konsol-kommandoen "/list", som jo lister spillerne og deres navne. Det er jo dybest det eneste man skal vide.

Mnjoe, men kræver det ikke at den er "logget ind"? Er der en standard admin account man kan bruge?

I teorien kunne man jo muligvis hive alle mulige data ud og lave statistikker på dem. "Mobs killed", "Blocks removed", "Blocks placed", "Player deaths", etc. Men jo, til en almindelig server monitor er antallet (og muligvis navnene) på spillerne vel det vigtigste. Oh, og én oplysning det kunne være helt vildt cool at vise er time of day på serveren.
Logget

Nothing travels faster than light, with the possible exception of bad news, which obeys its own special laws.
   - Douglas Adams


Geddeth
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 1.092



« Svar #6 Dato: 15. Februar '11 kl. 11:06 »

... og nu tænker jeg så lige højt: hvis man kan lave en seperat monitor (altså et seperat program/proces), som serverer data via XML/HTTP, så kan det være man kan få den til at spørge Beta-serveren via konsol-kommandoen "/list", som jo lister spillerne og deres navne. Det er jo dybest det eneste man skal vide.

Mnjoe, men kræver det ikke at den er "logget ind"? Er der en standard admin account man kan bruge?

MC serveren starter i "interactive mode", så du kan skrive konsol kommandoer til den ligesom du kan inde i spillet. "say"-kommandoen gør fx. at jeg kan chatte med spillerne, og "list" giver mig spillernes navne. Så en simpel wrapper rundt om serveren (ligesom Tztk) kan hente output fra list-kommandeon og sende det videre som XML/HTTP.
Logget

Keep It Simple.
Geddeth
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 1.092



« Svar #7 Dato: 15. Februar '11 kl. 18:09 »

Et andet sted at hente info er hos Minecraft Coalition, https://wiki.vg/Main_Page
Logget

Keep It Simple.
Geddeth
Superadmin
WanParty Medlem
*
Offline Offline

Beskeder: 1.092



« Svar #8 Dato: 15. Februar '11 kl. 18:16 »

Og så har jeg fundet en gratis service, der måske kan hjælpe os lidt i mellemtiden:
https://www.minecraftforum.net/viewtopic.php?f=10&t=1515

Den viser bare en grafik som indikerer om serveren er online eller offline:

Og den gør det ved at logge en anonym bruger på serveren for at tjekke Sørgelig
Logget

Keep It Simple.
Sider: [1]
  Udskriv  
 
Gå til:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!