Bukkit Windows

Discussion in 'Bukkit Discussion' started by Stewartiee, Jul 18, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Stewartiee

    I have recently been wondering why no-one has created some kind of window for Bukkit. All plugins seem to use the chat method, although I think it'd be much easier and more practical to have some kind of window API so that plugin authors can have some kind of GUI for there stuff.

    Does anyone know why this hasn't been done? I think a MOTD would look awesome in a window like on source games etc.
     
  2. Offline

    zipfe

    It would require a modded client.
     
  3. Offline

    Stewartiee

    Oh I see. Ah well, one can only hope that something like this will be possible in the future...
     
  4. Offline

    bergerkiller

    Modded client? What is that for non-sense? :D
    Here; a very simple client VB .NET example of using bukkit in a Windows window:
    Code:
                Me._p = New Process()
                Me.StartInfo.Save()
                Me._p.StartInfo.FileName = "javaw"
                Me._p.StartInfo.Arguments = Me._startinfo.Arguments
                Me._p.StartInfo.WorkingDirectory = Me._wdir
                Me._p.StartInfo.RedirectStandardOutput = True
                Me._p.StartInfo.RedirectStandardError = True
                Me._p.StartInfo.RedirectStandardInput = True
                Me._p.StartInfo.UseShellExecute = False
                Me._p.StartInfo.CreateNoWindow = True
                AddHandler Me._p.OutputDataReceived, AddressOf OnOutputReceived
                AddHandler Me._p.ErrorDataReceived, AddressOf OnOutputReceived
                Me._p.EnableRaisingEvents = True
                Me._p.Start()
                Me._p.BeginOutputReadLine()
                Me._p.BeginErrorReadLine()
                Me.Running = True
                Me._IsSaving = True
                Me._lastsave = Date.Now
    This is how my client looks like; completely separated from java, only using the output received handlers:
    [​IMG]
     
  5. Offline

    Stewartiee

    Ah I think you misunderstood. It's probably my fault as I think i've put it in the wrong forum.

    What I meant was to have plugins open in a window inside the game. So if for example it was a new plugin, you could click an icon and a window would popup showing news, rather than having to do and show everything in the chat window.
     
  6. Offline

    bergerkiller

    You could use signs, but it would be very laggy to the server...lol
    Otherwise, yeah, players will need some sort of client or modded client to be able to do that :p
     
  7. Offline

    DerpinLlama

    ... Who the hell runs desktop environments/GUIs on a server?!
     
  8. Offline

    Stewartiee

    Sorry I may have used the wrong wording, but you don't need to be a dick about it.
     
  9. Offline

    bergerkiller

    Admins that handle IP restrictions, change worlds often, want errors to be visible among the error log, keep track fo which players are online, keep a player history, want to prevent odd things happening to the properties file, want to be able to copy and paste commands in the console, often change plugins, want to check if the log is too large, want automatic warnings and server stopping when closing the window, and who like to code vb .net to add features not possible in bukkit. BAM. Here you have it. :cool:
    (This is my answer if you meant be BTW xD)

    If you mean Stewartiee, then I agree on his response. lol.

    Practical use of a desktop being run on a server:
    - allow commands to be sent by clicking an item
    - prevent unnecessary chat garbage being outputted
    - looks awesome. :)
     
  10. Offline

    zipfe

    Homies, chill. :)

    What OP (Stewartiee) wondered was, why don't Bukkit plugins pop up neat custom windows, like the crafting table, or a form to fill in the data for a new WorldGuard region etc. He wondered why they all use long, typed commands /bla bla in the normal game chat.

    Answer: Because that would also require a modified Minecraft client. There is (currently, who knows ...) no way for a Plugin to define and display anything custom to the player of Minecraft.

    No need to apologize. bergerkiller comes across as quite a know-it-all, who actually doesn't know much, in your thread here. Just see his long reply to Derpinllama.
     
  11. Offline

    bergerkiller

    I know more than enough, just misinterpreted his question. :p
    Battlefield 2 modder and program developer
    Java game written from scratch using Eclipse with LWJGL as renderer
    And what about maps? Saw a pretty nice plugin using maps to stream a video, quite impressive. Unless this was also a client-sided mod, of course. :)

    If it is possible to send the map information as raw byte data, it might be possible to display windows in them. Only issue would be clicking an item on the map, that would probably still require (chat) commands.

    Note: reply you mentioned was written at midnight 2 minutes before going to bed. :p
     
  12. Offline

    narrowtux

    Downsides of using a GUI on the server:
    • This just sucks for being accessible everywhere you are - you could get a quick ssh session even on your phone
    • This eats lot memory just for fancy looking windows and GUI
    • Windows (I mean that Microsoft shit) sucks even more for servers
     
  13. Offline

    bergerkiller

    Correctly build applications (I have experience in this) don't eat away resources. For example, a beginner would use a Timer + output.readLine() to fill the logger with information. I used the outputreceived event. Only two images are used; the online and offline icons, which are both referenced to in the ListView. The images are 24x24 in size, hardly any memory used. Furthermore, you can minimize the program and make it run 100% in the background. All that is displayed is a tray icon bottom right. No expensive loops or timers of any sort are being run in the program, cpu never rose above 0% for that process.

    Furthermore, my program runs separate from the Minecraft process, which means I can attach operations on certain log info requests without harming anything. This only improved multithreading, since I can hold player history in a text file in a separate process. You could extend this further and add separate processes handling calls async made by Minecraft. This includes online Player registrations.

    And, for a plugin developer this is a must-have. I have colored log output, can minimize/maximize errors and annoying useless messages can be filtered out.
     
  14. Offline

    bachmabt

    bergerkiller,

    i made a similar wrapper and put it here for discussion:

    http://www.minecraftforum.net/topic/1043955-a-new-vanilla-wrapper-concept/

    I'm using VB, and not VB.net. It works well for the vanilla server, but I cannot get it to send commands via the standard input stream to bukkit. Are you able to send console commands from your program?


    I've asked around for a few months now, and can't find any answers, other then 'no'

    Thanks,

    Ben
     
  15. Offline

    bergerkiller

    bachmabt don't forget to add this startup shortcut parameter for Java, or it will NOT be able to send input!

     
  16. Offline

    bachmabt

    So something like this:

    "C:\Program Files\Java\jre7\bin\java.exe" -Xmx4096M -Xms4096M -Xincgc -jar craftbukkit-0.0.1-SNAPSHOT.jar -Djline.terminal=jline.UnsupportedTerminal

    I knew nothing about this jline library. If it's this simple, I'm going to go crazy. I wasted DAYS trying to figure it out.

    Thanks for the help.
     
  17. Offline

    Vhab

    Stewartiee asks a serious question, thread derails into a Bukkit wrapper pissing contest.
    What is this, I don't even..
     
  18. Offline

    bachmabt

    Actually, that call didn't work for me. Had to just use the "-nojline" option. Now it works like it should!

    Sorry about hijacking the thread. But it helped me out at least.
     
  19. Offline

    bergerkiller

    Vhab True, I was still a newb at the time and when he said 'plugins' I could only link that to the server, not to a client mod :) (I mean, it is from Juli 2011)

    Get my drift? xd

    bachmabt Great to hear that :)
     
Thread Status:
Not open for further replies.

Share This Page