[Linux Lobby] AFLobby Beta 3.9.7
Moderator: Moderators
Ifein, I shouldnt have issues with other VMs with alpha 24, your using 23, but I do think the Sun java runtime is best used. Try checking the file permissions on the files.
I have fixed many of the bugs I and relative have found today and now have a build that generates scripts correctly in large games.
I've also added player joined/left messages for battles, tweaked channel joining colour, and added little icons on channel tabs that have unread messages.
I also fixed a bug with battle table rows.
Beta 1 works, and will be released in the next 3-4 days.
I have fixed many of the bugs I and relative have found today and now have a build that generates scripts correctly in large games.
I've also added player joined/left messages for battles, tweaked channel joining colour, and added little icons on channel tabs that have unread messages.
I also fixed a bug with battle table rows.
Beta 1 works, and will be released in the next 3-4 days.
http://www.sbbi.net/site/upnp/docs/natmappings.html
UPnP support looks a lot nicer than the holepunching, and it only requires that a UDP packet then be sent through the mapped port to the holepunch server for backwards compatability.
UPnP support looks a lot nicer than the holepunching, and it only requires that a UDP packet then be sent through the mapped port to the holepunch server for backwards compatability.
UPNP is nice, and in theory as well as in reality, it works.
But do not rely on UPNP as the only nat transversal method..
Microsoft as well as a whole lot of router manufactures recommend this protocol to be switch off (in the router and windows), due to security issues.
http://www.securityview.org/how-does-th ... works.html
Basically the current implementation of the authentication in UPNP is flawed.
Give people a choice ^_^
But do not rely on UPNP as the only nat transversal method..
Microsoft as well as a whole lot of router manufactures recommend this protocol to be switch off (in the router and windows), due to security issues.
http://www.securityview.org/how-does-th ... works.html
Basically the current implementation of the authentication in UPNP is flawed.
Give people a choice ^_^
- PauloMorfeo
- Posts: 2004
- Joined: 15 Dec 2004, 20:53
Any idea? NetBeans starts up properly and it is, as far as i know, a java aplication...paulo@portatil:~/Desktop/nova pasta$ sh aflobby.sh make sure AFLobby and libunitsync.so is in your current working folder
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
at java.awt.EventQueue.invokeLater(libgcj.so.7)
at javax.swing.SwingUtilities.invokeLater(libgcj.so.7)
at aflobby.Main.main(Main.java:87)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit
at java.lang.Class.forName(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
...3 more
Just in case, i even tried:
But i gave same result.export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.00/
By the way, i tried the one on the first link
- PauloMorfeo
- Posts: 2004
- Joined: 15 Dec 2004, 20:53
Code: Select all
gnu.java.awt.peer.gtk.GtkToolkit
If Sun java 6 is installed correctly it should work, however I dont have a clue whats causing your issue, and no aflobby classes are in that stacktrace.
Not having spring installed will just mean you cant join battles and youll get a few warning dialogs such as the JNI error unitsync not found etc.
- PauloMorfeo
- Posts: 2004
- Joined: 15 Dec 2004, 20:53
I am using Ubuntu 6.04 (or similar) and i installed java through the oficial package manager, Synaptic. Also, it is the java virtual machine 1.6.
However, truth be told, when i installed netbeans the installer searched and said it could not find any JDK. I had to "export JAVA_HOME=/bla/bla".
However however, if he wasn't finding java, it wouldn't be running the lobby client to the point of reaching the error at all...
I think i may try deinstalling the whole java and reinstalling it again. Or something.
hmmmm:
However, truth be told, when i installed netbeans the installer searched and said it could not find any JDK. I had to "export JAVA_HOME=/bla/bla".
However however, if he wasn't finding java, it wouldn't be running the lobby client to the point of reaching the error at all...
I think i may try deinstalling the whole java and reinstalling it again. Or something.
hmmmm:
paulo@portatil:~/Desktop/nova pasta$ /usr/bin/java aflobby.jar
Exception in thread "main" java.lang.NoClassDefFoundError: aflobby.jar
at gnu.java.lang.MainThread.run(libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: aflobby.jar not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
Script generation is perfect now, and it is now possible for me to play games.
Yay!
However, there are currently two issues with the build you gave me last night. Firstly, spring does not launch if you are a spectator, only if you are a player. Secondly, when the host closes the battle lobby spring crashes with this in the terminal:
Perhaps instead of exiting the window you could mimic TASclient by a message in the chat box saying "Host Closed Server" or "Host Disconnected". Thus allowing the user to close it manually.
Once those two minor issues are fixed issues we will then have a fully functioning multi-platform (and more importantly Linux) lobby.
Yay!
However, there are currently two issues with the build you gave me last night. Firstly, spring does not launch if you are a spectator, only if you are a player. Secondly, when the host closes the battle lobby spring crashes with this in the terminal:
Code: Select all
infoid:50961 BATTLECLOSED 50961
Once those two minor issues are fixed issues we will then have a fully functioning multi-platform (and more importantly Linux) lobby.
Your stacktrace is missing a stacktrace relative, provide at least 10 lines before and after any 1 liner message.
Paulomorfeo
JRE != JDK
Java runtime environment != Java development kit
And yes the build I have here pops up the window in the corner with a message saying the host exited.
I'll investigate the spectator error.
Paulomorfeo
JRE != JDK
Java runtime environment != Java development kit
And yes the build I have here pops up the window in the corner with a message saying the host exited.
I'll investigate the spectator error.
There was no stacktrace, that was all that there is. Here is an example:
Code: Select all
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
infoid:51574 BATTLECLOSED 51574
Code: Select all
[Loaded javax.swing.SystemEventQueueUtilities$RunnableCanvas from shared objects file]
[Loaded javax.swing.SystemEventQueueUtilities$RunnableCanvasGraphics from shared objects file]
[Loaded java.awt.Component$FlipBufferStrategy from shared objects file]
[Loaded sun.awt.X11.XDestroyWindowEvent from shared objects file]
[Loaded java.awt.KeyboardFocusManager$1 from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
[Loaded sun.reflect.GeneratedMethodAccessor11 from __JVM_DefineClass__]
n# of sides: 2
side 0 : ARM
side 1 : CORE
[Loaded javax.imageio.IIOException from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
javax.imageio.IIOException: Can't read input file!
/home/rutter/.aflobby/.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
infoid:51974 BATTLECLOSED 51974
[Loaded java.awt.EventQueue$1AWTInvocationLock from shared objects file]
[Loaded sun.awt.X11.XContentWindow$SavedExposeEvent from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
- PauloMorfeo
- Posts: 2004
- Joined: 15 Dec 2004, 20:53
Yes, i know that. To have JDK, we need mandatorily the JRE. Also, even if i had JDK but no JRE, i wouldn't be able to run NetBeans (which is, in itself, a Java aplication).AF wrote:...
Paulomorfeo
JRE != JDK
Java runtime environment != Java development kit
...
Anyway, i managed to run your lobby. I downloaded a new JRE from the Internet and installed it. Using that JRE, i can run the lobby. Seems like the instalation must be broken, although it is quite odd if it is but still gets to call the java executable and start it... Could it possibly be something wrong with your program? I just played a java game, seconds ago.
Now for some feedback on it:
- When logging, it would be nice that pressing «enter» when cursor is in the password field, executed a loggin try.
- The whole program needs a border. The blue just apears out of no where, looks like more a tipical loading screen for something else.
- Channels: "Click to join #main", aplication blocks (consistently).
- Users: Couldn't you use the same icons to represent the ranks as the "regular" lobby?
- Users: Couldn't you list them, instead, in a single row with info in the horizontal, so we don't have to circle the eyes around?
- Battles: I am only seeing 4 battles open and it took long to see more than 3. Somehow, i think that it can't be. Server told me 26 open battles. Something must be wrong with it? Hmmm, 6 battles now. Seems it is just taking a huge time to receive the list of battles.
- PMs: When i receive a PM, it pops me up a window. What will hapen if i am already with a open pop-up of receiving a PM? The chating sistem seems to need some kind of a diferent sistem that works more like the other lobby... Although i didn't managed to really test it.
One more thing. What are you coding in (IDE)? I am interested in giving java a try. I seem to remember (times ago) you having tried java and then .net and then evangelising a little that java wasn't that good and that .net was quite better. Now i see you back in force at java and i read you talking quite well of java in the forums of osrts(?). What made you change your mind?
C# looked good. But in the end it was a UI ngihtmare.
For example if I have a checkbox in C# and Java and I want to bind that checkbox to a variable. In C# and Java I'd have an event for when the checkbox changes, to set the variable, and a function to set the checbox when the variable changes. This implements nicely in C# with delegates. Or so I thought.
In Java if I set the checkbox from the variable the variable == the checkbox. All as expected. In C# I ste the variable to say 'false', so the checkbox is unchecked, so an event is fired, so the variable is set to the checkbox is set so an event is fired so the variable is checked etc etc... Very veyr annoying. I really dont have th time to spend dilly dallying with this specific component of the C# window toolkit.
Also with C# panels, its not the same as Java panels. In Java I can define a panel class and design that panel, put in all the functionality, insert more panels inside, I can plonk a panel down and fill it up with more panels at runtime and they're ordered inside that panel and arranged how I want them automatically, I can swap them out etc. In AFLobby the main view is a panel, and it gets swapped out for another panel. In C# panels are just collections of components letting you drag several at a time. You can swap them out or re-arrange etc. I cant use the AFLobby model in C# I'd have to implement all my views as seperate windows which opens up another can of worms.
If you open a PM window to someone and they send you a pm it appears in that pm window. There can only ever be 1 pm window instance for each player, so there'll never be two pm windows for the same player.
I use Netbeans 5.5, and yah your java setup was probably borked.
As for the comment on channels blocking, what do you mean?
Are you runnign alpha 24 or 23? I havent released an alpha 24 binary yet but if you get the source code I uploaded and look in either the dist folder or the release folder, you'll find more recent versions. They wont be the beta 1 builds I have on my drive atm though so script hasnt been fixed and there may be one or two unfixed bugs.
Javas strange sometimes. Performance wise if you do everything properly it'll run fine but most ppl dont. A 1 liner increased chanservs speed on my machine 100 fold, and it was just a check in a while loop checking if a socket was ready to be read that I added. Adding timers to replace the neverending while loop gave me a huge performance boost (Zenkas machine showed 90% cpu usage, but after the timer change it was less than 1%). Javas great if you know how to use it properly.
As for the starting page, perhaps if there are any suggestions it can be changed?
For example if I have a checkbox in C# and Java and I want to bind that checkbox to a variable. In C# and Java I'd have an event for when the checkbox changes, to set the variable, and a function to set the checbox when the variable changes. This implements nicely in C# with delegates. Or so I thought.
In Java if I set the checkbox from the variable the variable == the checkbox. All as expected. In C# I ste the variable to say 'false', so the checkbox is unchecked, so an event is fired, so the variable is set to the checkbox is set so an event is fired so the variable is checked etc etc... Very veyr annoying. I really dont have th time to spend dilly dallying with this specific component of the C# window toolkit.
Also with C# panels, its not the same as Java panels. In Java I can define a panel class and design that panel, put in all the functionality, insert more panels inside, I can plonk a panel down and fill it up with more panels at runtime and they're ordered inside that panel and arranged how I want them automatically, I can swap them out etc. In AFLobby the main view is a panel, and it gets swapped out for another panel. In C# panels are just collections of components letting you drag several at a time. You can swap them out or re-arrange etc. I cant use the AFLobby model in C# I'd have to implement all my views as seperate windows which opens up another can of worms.
If you open a PM window to someone and they send you a pm it appears in that pm window. There can only ever be 1 pm window instance for each player, so there'll never be two pm windows for the same player.
I use Netbeans 5.5, and yah your java setup was probably borked.
As for the comment on channels blocking, what do you mean?
Are you runnign alpha 24 or 23? I havent released an alpha 24 binary yet but if you get the source code I uploaded and look in either the dist folder or the release folder, you'll find more recent versions. They wont be the beta 1 builds I have on my drive atm though so script hasnt been fixed and there may be one or two unfixed bugs.
Javas strange sometimes. Performance wise if you do everything properly it'll run fine but most ppl dont. A 1 liner increased chanservs speed on my machine 100 fold, and it was just a check in a while loop checking if a socket was ready to be read that I added. Adding timers to replace the neverending while loop gave me a huge performance boost (Zenkas machine showed 90% cpu usage, but after the timer change it was less than 1%). Javas great if you know how to use it properly.
As for the starting page, perhaps if there are any suggestions it can be changed?
AF wrote:In Java if I set the checkbox from the variable the variable == the checkbox. All as expected. In C# I ste the variable to say 'false', so the checkbox is unchecked, so an event is fired, so the variable is set to the checkbox is set so an event is fired so the variable is checked etc etc... Very veyr annoying. I really dont have th time to spend dilly dallying with this specific component of the C# window toolkit.
Code: Select all
this.checkBox1.CheckedChanged += new System.Windows.Forms.KeyPressEventHandler(MyMethod);