-
Revolution Server (Java, PRODUCTION)
Revolution Server
Revolution is a simple, elegant Java Emulator compiled using the Gradle dependency manager. Currently targeting the PRODUCTION client version although I might end up making it compatible to, and focusing on future builds on the server emulating the v63 Habbo client. You will see old encoding classes in the Git repo, that's me brainstorming n' beta testing.
This is my 3rd Habbo Emulator in Java. I appreciate all feedback given, because I have encountered several bugs while developing this emulator, it's more of a trial and error type development process because I am not a Java expert, and don't claim to be. I hope this thread will remain an active discussion. I'd like to make the development public and if you're fond of the current source code, then don't hesitate to join the development by committing your changes to the public Git!
I have taken a look at current Java Emulators such as Comet, and Arctucus, both have strong ideas flowing regarding threading and socket implementations. I hope to manifest these ideas to my advantage and improve if not recreate them.
I've also taken a look at non-Java Emulators. For example; taken a look at the source of Plus Emulator and I've successfully ported it's Habbo Encryption classes to Java. My reasons for this is because the current released RSA/RC4 Habbo Crypto classes seem like they have been poorly ported from past C# emulators, taking a look at the naming conventions and the bracket placement.
FRAMEWORKS THAT ARE CURRENTLY IN USE:
- Netty 4 for high performanced socket servers (TCP, and RCON)
- RealNiggaShit notepad++ multiplexer
- Hibernate object relational mapping and persistency
- jOOQ CRUD, persistency, and execution listeners
- Reflections for packet caching on startup (spare me the controversy, it's just for initialization)
- Trove high performance collections
- Log4j2 thread-safe, organized, lazy logging
- HikariCP connection pooling
- Guice dependency injection, done right this time! (probably)
- MySQL default database driver
I have got to the hotelview, but I haven't actually ran the client due to lack of a CDN, and because me only have a localhost and it's been acting funny recently, when I've tried it on localhost and not a private server #fuckhabbo.
P.S.
Do talk shit about how I won't finish my project, I probably won't.
GitHub: https://github.com/HeyItsKawaii/Revolution
couldn't figure out how 2 add a spoiler, had some cool, infraction worthy images to post here :C
-
Re: Revolution Server (Java, PRODUCTION)
Revolution Server (is a name) created by @Zak
(So RevEMU and RevCMS) are because of him.
More respect please. Change your Emulator name.
#ontopic.
Good luck, wondering if you don't abandon this development. Words are words.
-
Re: Revolution Server (Java, PRODUCTION)
Looking promising, good luck!
One thing:
PHP Code:
public static Date fechaHoraSistema() {
return new Date(System.currentTimeMillis());
}
Cool name... (maybe it would be more professional to make it an English name since everything's in English... just how I see it!)
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
Revolution Server (is a name) created by @
Zak
(So RevEMU and RevCMS) are because of him.
More respect please. Change your Emulator name.
#ontopic.
Good luck, wondering if you don't abandon this development. Words are words.
Actually, @Kryptos came with RevCMS and after that @Zak joined with a RevEMU.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Joopie
Actually, @
Kryptos came with RevCMS and after that @
Zak joined with a RevEMU.
Exactly. Master Jupi (Joopie)
-
Re: Revolution Server (Java, PRODUCTION)
I give you a tip, something I wish I had properly implemented in Arcturus:
- Throw exceptions when pre conditions of a function can't be met.
- Throw exceptions when post conditions of a function can't be met.
This makes your application way easier to test (Especially with unit tests), bugs are way more earlier visible as they will just give a stacktrace and it is possible to implement more dynamic behaviour for example regarding error messages in the client (Habbo has a shit ton of them).
Also do proper unit testing, try getting a coverage of atleast 75%.
If I ever am going to write a server again (Which I won't), I would do the things above ^
Quote:
Originally Posted by
Glaceon
Looking promising, good luck!
One thing:
PHP Code:
public static Date fechaHoraSistema() {
return new Date(System.currentTimeMillis());
}
Cool name... (maybe it would be more professional to make it an English name since everything's in English... just how I see it!)
Its because its from some other emulator, can't recall the name but it was basically only able to support one session (LOL).
-
Re: Revolution Server (Java, PRODUCTION)
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
Revolution Server (is a name) created by @
Zak
(So RevEMU and RevCMS) are because of him.
More respect please. Change your Emulator name.
#ontopic.
Good luck, wondering if you don't abandon this development. Words are words.
RevEMU was never finished and I didn't realize it stood for Revolution until after I made the GitHub and everything... awks. Anyways one of the developers (@Caustik) wasn't fussed about it when I told him so I didn't really stress it after that.
Quote:
Originally Posted by
Glaceon
Looking promising, good luck!
One thing:
PHP Code:
public static Date fechaHoraSistema() {
return new Date(System.currentTimeMillis());
}
Cool name... (maybe it would be more professional to make it an English name since everything's in English... just how I see it!)
I didn't change the name to acknowledge the original coders of that function (as @TheGeneral mentioned below)
- - - Updated - - -
Quote:
Originally Posted by
The General
I give you a tip, something I wish I had properly implemented in Arcturus:
- Throw exceptions when pre conditions of a function can't be met.
- Throw exceptions when post conditions of a function can't be met.
This makes your application way easier to test (Especially with unit tests), bugs are way more earlier visible as they will just give a stacktrace and it is possible to implement more dynamic behaviour for example regarding error messages in the client (Habbo has a shit ton of them).
Also do proper unit testing, try getting a coverage of atleast 75%.
If I ever am going to write a server again (Which I won't), I would do the things above ^
Its because its from some other emulator, can't recall the name but it was basically only able to support one session (LOL).
Thanks for the tip, I usually do add pre conditions to a function but I haven't got into much depth with refactoring and "perfecting" code yet.
Quote:
Originally Posted by
pea-brain
This was abandoned unfortunately, when I came back with new knowledge regarding Java I just wanted to start on a clean slate. The name started to bug me.
I didn't even know this thread got approved, took ages. I'll post some updates to here then now.
UPDATES!!! 6/16/2016
- Implemented a Generic DAO respective to JPA's EntityManager
- Using Guice Injection Extension JpaPersistModule for injecting into the EntityManager
- Fixed Habbo Encryption related bugs, still not perfect however
- Encountered database related errors when trying to run SSO Authentication checks
- Adil (@Caustik) has joined the team, sike :(
- Removed jOOQ until further notice, until needed for Execution Listeners further in the development
- Added a new configuration value "mysql.dialect" current options being "innodb" or "default"
- Implemented an RCONDecoder for future RCON connections, no commands have been added yet
- Switched from Java SE to Java EE
Once this database thing is sorted I plan on removing "DefaultConfig.java" from the utilities folder and just reading from the server_settings table.
I also plan on learning more about JTA and hopefully implementing it (or the option to use it) into Revolution, even though Adil says it's OD :(
If anyone can help fix/cleanup these database related bugs, I believe the Git is public.
I'll start unit testing when I get the hotelview up, that's also when I start code refactor before I write the GameThread Cycler.
-
Re: Revolution Server (Java, PRODUCTION)
Isn't this just AzureJAVA or whatever it was? lol
Quote:
I have got to the hotelview, but I haven't actually ran the client due to lack of a CDN
That doesn't make any sense? I'd respect you more if you just said that you haven't got that far due to the programming of basic features being in progress. But hey-ho, not my project.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
UPDATES!!! 6/16/2016
- Implemented a Generic DAO respective to JPA's EntityManager
- Using Guice Injection Extension JpaPersistModule for injecting into the EntityManager
- Fixed Habbo Encryption related bugs, still not perfect however
- Encountered database related errors when trying to run SSO Authentication checks
- Adil (@Caustik) has joined the team, sike :(
- Removed jOOQ until further notice, until needed for Execution Listeners further in the development
- Added a new configuration value "mysql.dialect" current options being "innodb" or "default"
- Implemented an RCONDecoder for future RCON connections, no commands have been added yet
- Switched from Java SE to Java EE
Once this database thing is sorted I plan on removing "DefaultConfig.java" from the utilities folder and just reading from the server_settings table.
I also plan on learning more about JTA and hopefully implementing it (or the option to use it) into Revolution, even though Adil says it's OD :(
If anyone can help fix/cleanup these database related bugs, I believe the Git is public.
I'll start unit testing when I get the hotelview up, that's also when I start code refactor before I write the GameThread Cycler.
"Fixed Habbo Encryption related bugs, still not perfect however", so you're saying that the Habbo Encryption that everyone uses is bugged. Yeah.
"Encountered database related errors when trying to run SSO Authentication checks" wait, how already has database bugs, if you're creating the database from the scratch. ???!! So if your first database structure already has bug's, so omg.
"Switched from Java SE to Java EE" wow, really big update (irony)
"Implemented a Generic DAO respective to JPA's EntityManager" that means what? For what this is useful in the change log in terms of habbo?
"I also plan on learning more about JTA and hopefully" we don't care what you want to learn or not.
"I'll start unit testing when I get the hotelview up, that's also when I start code refactor before I write the GameThread Cycler" wtf.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
"Fixed Habbo Encryption related bugs, still not perfect however", so you're saying that the Habbo Encryption that everyone uses is bugged. Yeah.
"Encountered database related errors when trying to run SSO Authentication checks" wait, how already has database bugs, if you're creating the database from the scratch. ???!! So if your first database structure already has bug's, so omg.
"Switched from Java SE to Java EE" wow, really big update (irony)
"Implemented a Generic DAO respective to JPA's EntityManager" that means what? For what this is useful in the change log in terms of habbo?
"I also plan on learning more about JTA and hopefully" we don't care what you want to learn or not.
"I'll start unit testing when I get the hotelview up, that's also when I start code refactor before I write the GameThread Cycler" wtf.
Dude, don't give him a hard time okay? Clearly it seems he is new to Java, as he stated above. This is all to learn more about Java in general. Either be just supportive or don't post really. No need to take his posts down unless you provide some constructive feedback.
Cheers
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
Dude, don't give him a hard time okay? Clearly it seems he is new to Java, as he stated above. This is all to learn more about Java in general. Either be just supportive or don't post really. No need to take his posts down unless you provide some constructive feedback.
Cheers
Idk if he is new in Java. But i know a little thing, he has a big ego, is arrogant, and never finish his projects.
As i said before, i really wish good luck for him.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Francis Joseph
Isn't this just AzureJAVA or whatever it was? lol
That doesn't make any sense? I'd respect you more if you just said that you haven't got that far due to the programming of basic features being in progress. But hey-ho, not my project.[/COLOR]
If you looked at the GitHub repo, you would see all the packet's are in order that are required to at least get the hotelview loaded. I was just accomidating for the lack of screenshots.
+ This is not Azure Java, I got the reflections idea from that though but that's all I recall using.
Repo:
https://github.com/HeyItsKawaii/Revo...ming/handshake
Quote:
Originally Posted by
ovflowd
"Fixed Habbo Encryption related bugs, still not perfect however", so you're saying that the Habbo Encryption that everyone uses is bugged. Yeah.
"Encountered database related errors when trying to run SSO Authentication checks" wait, how already has database bugs, if you're creating the database from the scratch. ???!! So if your first database structure already has bug's, so omg.
"Switched from Java SE to Java EE" wow, really big update (irony)
"Implemented a Generic DAO respective to JPA's EntityManager" that means what? For what this is useful in the change log in terms of habbo?
"I also plan on learning more about JTA and hopefully" we don't care what you want to learn or not.
"I'll start unit testing when I get the hotelview up, that's also when I start code refactor before I write the GameThread Cycler" wtf.
"Habbo Encryption that everyone uses is bugged" -> Did you view my source code? I spent hours porting that Habbo Encryption from Sledmore's Plus Emulator release, meaning it contained my own code.
ARC4.java is the only thing that resembles other Java Emulator's becaue I really couldn't refactor that much, it was already so simple.
"how aleady has database bugs, if you're creating the database from scratch" -> This doesn't make sense, I was referring to an emulator related bug, Hibernate wasn't configured properly or something to that extent, I don't remember now.
"wow, really bug update (irony)" -> Are you here just to hate? If so, then you can leave. The update log doesn't have to be anything significant as long as it's related to the current changes to the emulator
"we don't care what you want to learn or not" -> Again, then why are you here? I honestly didn't ask for your input, nor did I see anyone ask you to speak for them so "we" is simply you*
- - - Updated - - -
Quote:
Originally Posted by
ovflowd
Idk if he is new in Java. But i know a little thing, he has a big ego, is arrogant, and never finish his projects.
As i said before, i really wish good luck for him.
Consider the fact that you don't even know me, I've never had a private conversation with you ever. I'm sick and tired of people like you who like to pass around rumors and influence other people to feel a certain type of way about someone they've never even met before.
Are you claudi0 sant0ro? Because all I remember you saying to me is that my code was "very concurrent, and thread-safe" regarding Azure Emulator C#.
I don't believe you wish anything but to cause trouble, again, I don't know who influenced your latest opinion regarding me but I've already established in post 1 that there's not really a certainity, whatever happens, happens. This is for me to improve myself and whoever's following the development.
Cheers.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
"Fixed Habbo Encryption related bugs, still not perfect however", so you're saying that the Habbo Encryption that everyone uses is bugged. Yeah.
Actually, there are moments when it crashes, just saying.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
If you looked at the GitHub repo, you would see all the packet's are in order that are required to at least get the hotelview loaded. I was just accomidating for the lack of screenshots.
+ This is not Azure Java, I got the reflections idea from that though but that's all I recall using.
Repo:
https://github.com/HeyItsKawaii/Revo...ming/handshake
"Habbo Encryption that everyone uses is bugged" -> Did you view my source code? I spent hours porting that Habbo Encryption from Sledmore's Plus Emulator release, meaning it contained my own code.
ARC4.java is the only thing that resembles other Java Emulator's becaue I really couldn't refactor that much, it was already so simple.
"how aleady has database bugs, if you're creating the database from scratch" -> This doesn't make sense, I was referring to an emulator related bug, Hibernate wasn't configured properly or something to that extent, I don't remember now.
"wow, really bug update (irony)" -> Are you here just to hate? If so, then you can leave. The update log doesn't have to be anything significant as long as it's related to the current changes to the emulator
"we don't care what you want to learn or not" -> Again, then why are you here? I honestly didn't ask for your input, nor did I see anyone ask you to speak for them so "we" is simply you*
- - - Updated - - -
Consider the fact that you don't even know me, I've never had a private conversation with you ever. I'm sick and tired of people like you who like to pass around rumors and influence other people to feel a certain type of way about someone they've never even met before.
Are you claudi0 sant0ro? Because all I remember you saying to me is that my code was "very concurrent, and thread-safe" regarding Azure Emulator C#.
I don't believe you wish anything but to cause trouble, again, I don't know who influenced your latest opinion regarding me but I've already established in post 1 that there's not really a certainity, whatever happens, happens. This is for me to improve myself and whoever's following the development.
Cheers.
1. Why and how did you spent HOURS converting the encryption within Plus Emulator from C# to Java. That should of taken an hour or less. Not to mention that's a kick in the face for the original developer by attempting to say its now your 'own' code.
2. If its not broken then don't fix it or attempt to refactor for no reason, just give credit and move on. It's better then claiming you created something because its a port or refactored.
3. Keep update logs precise and relative to information that a developer would like to know.
IMO, it doesn't look that bad. Looks fine although it probably won't get released.
If you're out to better yourself within programming then try do something where you will finish to the end.
Not being a knob but it will increase your motivation and you'll learn a lot more along the way.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Francis Joseph
1. Why and how did you spent HOURS converting the encryption within Plus Emulator from C# to Java. That should of taken an hour or less. Not to mention that's a kick in the face for the original developer by attempting to say its now your 'own' code.
2. If its not broken then don't fix it or attempt to refactor for no reason, just give credit and move on. It's better then claiming you created something because its a port or refactored.
3. Keep update logs precise and relative to information that a developer would like to know.
IMO, it doesn't look that bad. Looks fine although it probably won't get released.
If you're out to better yourself within programming then try do something where you will finish to the end.
Not being a knob but it will increase your motivation and you'll learn a lot more along the way.
I didn't mean to claim it as my own code, hence the post above yours ^
Also, I didn't like the released encryption's that were ported from C# didn't match Java code style which is a pet peeve of mind, so I didn't hesitate... I have a lot of free time.
I thought the fact that I switched to Java EE was something people would like to know. awks
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
I didn't mean to claim it as my own code, hence the post above yours ^
Also, I didn't like the released encryption's that were ported from C# didn't match Java code style which is a pet peeve of mind, so I didn't hesitate... I have a lot of free time.
I thought the fact that I switched to Java EE was something people would like to know. awks
You can port directly from Official Habbo Encryption Repository from Joopie, in GitHub. It's not necessary porting from Plus Emu.
Link: https://github.com/Joopie1994/Encryption
-
Re: Revolution Server (Java, PRODUCTION)
Decided to commit today, still a bug flowing about though.
Repo:
https://github.com/HeyItsKawaii/Revo...012dc5b0b66090
Guice Injection almost done, just encountered an error. If anyone knows the proper way to connect an existing Hikari DataSource to JPA persistence.xml (preferably JNDI) then please inform me, been reading on this for hours and nothing.
-
Re: Revolution Server (Java, PRODUCTION)
I hope you don't let the negative stuff get to you. It's awesome to see somebody spending time on creating an emulator. You will probably learn a lot from this project, good luck!
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Gaby
I hope you don't let the negative stuff get to you. It's awesome to see somebody spending time on creating an emulator. You will probably learn a lot from this project, good luck!
It's alright, the hateful comments just boost my enthusiasm.
ont
I'll post updates in just a few minutes
June 18th Commit
https://github.com/HeyItsKawaii/Revo...1672284b209dfc
-
Re: Revolution Server (Java, PRODUCTION)
Keep on topic and do not discuss Azure or any other personal issues, use PM.
Take this as a warning for everyone, more serious action will be taken if it continues
Private message me if you have any issues
~Shoelace
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
pea-brain
What happened to all of your other projects?*
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
YoWesty
What happened to all of your other projects?*
I've already explained that in the first thread post
-
Re: Revolution Server (Java, PRODUCTION)
UPDATES!!! 6/21/2015
Close as ever to hotelview, just encountered a packet error or something of the sort that's unfortunately disconnecting me.
As mentioned before Hibernate and JPA is 100% functional, yet parts may be refactored in the future. I removed JtaTransaction for the time being as I really just wanna go ahead and make sure everything else works first before adding that.
Unidentified Packet error which is making me disconnect after sending back the queued player data (AuthenticationOK, etc). If you can help me fix that then that gesture wouldn't go unappreciated.
Habbo Encryption crashes sometimes, it generates the wrong keys or something because the packet id's that come back sometimes are incorrect. I'm really not sure. I'll have to look into that later though.
Latest Commit:
https://github.com/HeyItsKawaii/Revo...abec65fdf2a102
Issues:
https://github.com/HeyItsKawaii/Revolution/issues
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Habbo Encryption crashes sometimes, it generates the wrong keys or something because the packet id's that come back sometimes are incorrect. I'm really not sure. I'll have to look into that later though.
Encountered the same issue. I previous thought it was the BigInteger class I use, but now I guess not.
A quick and dirty solution would be to use static RSA and DH keys which are known to be working.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Joopie
Encountered the same issue. I previous thought it was the BigInteger class I use, but now I guess not.
A quick and dirty solution would be to use static RSA and DH keys which are known to be working.
In some compilations or Emulator startup, (also in Yupi's Habbo Encryption, that is @Joopie's Habbo Encryption) the Habbo Encryption generates a wrong RSA Key pair. And other times, Habbo Encryption crashes at startup, but is really rarely that this happens.
-
Re: Revolution Server (Java, PRODUCTION)
Finally figured out the packet error if anyone knows what this is:
Failed to parse incoming message using_-1r1::_-1cL
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Finally figured out the packet error if anyone knows what this is:
Failed to parse incoming message using_-1r1::_-1cL
You have a wrong packet structure for the packet that belongs to _-1r1::_-1cL.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Glaceon
You have a wrong packet structure for the packet that belongs to _-1r1::_-1cL.
Yeah, and you need get the AS3 code from the Habbo.swf, go in this class and check the packet structure. Generally this happens when is a Outgoing packet.
But you really want to create an emulator without knowing these things? Are really important.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
Yeah, and you need get the AS3 code from the Habbo.swf, go in this class and check the packet structure. Generally this happens when is a Outgoing packet.
But you really want to create an emulator without knowing these things? Are really important.
This ONLY happens at outgoing packets (when viewing from the SWF incoming packets) because incoming packets (when viewing from the SWF outgoing packets) is what the SWF sends so there can't be errors on it AFAIK. Maybe he just never got this error and don't know what it meant. When I first got this error I didn't know either. Everybody has to start somewhere. The 'But you really want to...' is not very appropiate.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Glaceon
This ONLY happens at outgoing packets (when viewing from the SWF incoming packets) because incoming packets (when viewing from the SWF outgoing packets) is what the SWF sends so there can't be errors on it AFAIK. Maybe he just never got this error and don't know what it meant. When I first got this error I didn't know either. Everybody has to start somewhere. The 'But you really want to...' is not very appropiate.
Don't be rude @Glaceon, i know are only for Outgoing, but i wasn't 100% sure, so to don't speak shit, i said they generally are outgoing.
I'm only saying that is good he do a little research about it.
-
Re: Revolution Server (Java, PRODUCTION)
Thanks for the advice, I had an idea that I should've viewed the source code in AS3 to find the corrupt packet but I was checking to see if this was a common error beforehand.
-
Re: Revolution Server (Java, PRODUCTION)
Fixed the packet error, thanks for the advice once again:
http://i.imgur.com/TQIIAbi.png
Progressing:
http://i.imgur.com/3G6nnMj.png
-
Re: Revolution Server (Java, PRODUCTION)
If you need any help with packets, feel free to hit me up. I am working on an emulator, and got quite a bit of packets documented that were wrongly or just statically implemented in other emulators.
-
Re: Revolution Server (Java, PRODUCTION)
I'm wondering if anybody can help me translate Sledmore's packet header names to the official habbo packet names released, some of these I cannot guess.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
I'm wondering if anybody can help me translate Sledmore's packet header names to the official habbo packet names released, some of these I cannot guess.
I DOUBT (but I'm not sure) anybody's using the correct names. The closest you can get is if you use the original R63 pre post-shuffle list (_events[1] = com.sulake.habbo.communication.messages.incoming.handshake.SecretKe - Pastebin.com) and use those names. Problem is the post-shuffle headers for games and other post-shuffle only features aren't in the list. I doubt anybody has gotten the name of all post-shuffle headers (still wonder how the pre post-shuffle list is made...)
-
Re: Revolution Server (Java, PRODUCTION)
That list was made with a build of the swf where the com.sulake.habbo.communication.messages wasn't obfuscated, so I guess it's quite old. If I were you I would just use the names you like the most, you could just use the ones from uber-like emulators, they are all similar, and come closest to the names sulake uses. It doesn't matter too much what names you use, as long as you can remember what they stand for/do.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
TheNickforall
That list was made with a build of the swf where the com.sulake.habbo.communication.messages wasn't obfuscated, so I guess it's quite old. If I were you I would just use the names you like the most, you could just use the ones from uber-like emulators, they are all similar, and come closest to the names sulake uses. It doesn't matter too much what names you use, as long as you can remember what they stand for/do.
Na the ones I have are actually from the source of HabboAir which wasn't heavily obfuscated by Habbo fortunately. I have a list of packet names just not trying to guess which packet name goes to which.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Na those are actually from the source of HabboAir which wasn't heavily obfuscated by Habbo fortunately. I have a list of packet names just not trying to guess which packet name goes to which.
If you are using the same packets as Sledmores emulator, then knowing which packet is which is rather easy. Log unhandled incomings, find them in his emulator source, and see which packets it sends back to the client for that unhandled id?
No guessing necessary.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Jonteh
If you are using the same packets as Sledmores emulator, then knowing which packet is which is rather easy. Log unhandled incomings, find them in his emulator source, and see which packets it sends back to the client for that unhandled id?
No guessing necessary.
But if you don't have the packet id's of both header lists (which I don't, only the names) then you can't compare using ids. It's basically name guessing.
-
Re: Revolution Server (Java, PRODUCTION)
-
Re: Revolution Server (Java, PRODUCTION)
Found a new bug, I can confirm that the sendQueued function is responsible for disconnections that occured previously, as well as the invalid outgoing data.
Yesterday was my day off from development, we're back to work now!
Gonna start working on navigator soon...
sendQueued:
https://github.com/HeyItsKawaii/Revo...ssion.java#L93
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
But if you don't have the packet id's of both header lists (which I don't, only the names) then you can't compare using ids. It's basically name guessing.
Sure, that's true. But, why don't you have both lists?
-
Re: Revolution Server (Java, PRODUCTION)
http://image.prntscr.com/image/4e606...b8f63b929f.png
Updates as usual, I've been meaning to commit the latest build where the hotelview loads but I just started working on the Navigator.
Game Logic is always boring so the update log might get a lil bit slower as time goes on, reading on database architecture as every current Habbo Emulator's database looks like cluttered garbage.
Adil has considered joining the team to help me with game logic, I won't have my PC July 9--Undetermined because I'm going on holiday and my PC wil be in the shop from then until --Undetermined.
Looking for decent Java Developers to consider helping me out with game logic, don't be SHY.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Game Logic is always boring
Honest question though; why are you building an emulator then? Its what an emulator is about, emulating Habbos game logic. It is what it is for 99%...
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
Honest question though; why are you building an emulator then? Its what an emulator is about, emulating Habbos game logic. It is what it is for 99%...
For once, I got to admit that TG is correct, lol. Why would you develop an emulator without emulating the features that you was going to replicate in your emulator?
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
Honest question though; why are you building an emulator then? Its what an emulator is about, emulating Habbos game logic. It is what it is for 99%...
It's also the most fun part... figuring out the best way to do things, etc.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
http://image.prntscr.com/image/4e606...b8f63b929f.png
Updates as usual, I've been meaning to commit the latest build where the hotelview loads but I just started working on the Navigator.
Game Logic is always boring so the update log might get a lil bit slower as time goes on, reading on database architecture as every current Habbo Emulator's database looks like cluttered garbage.
Adil has considered joining the team to help me with game logic, I won't have my PC July 9--Undetermined because I'm going on holiday and my PC wil be in the shop from then until --Undetermined.
Looking for decent Java Developers to consider helping me out with game logic, don't be SHY.
I didn't say anything about joining a team..
:?:
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Jonteh
It's also the most fun part... figuring out the best way to do things, etc.
Exactly and if you don't feel like implementing logic you shouldn't be making an emulator imho.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Caustik
I didn't say anything about joining a team..
:?:
My fault, must've been miscommunication :glare:. And yeah I've had a sudden recent change of heart towards Game Logic... I guess it was just the navigator that was boring me. That part of the emulator is all done now.
Started working on Game/Room Cycle, Room Manager, and Pathfinder. I'll commit to GitHub soon.
Got bored and since I wanted to bring a unique database structure to the emulator as mentioned before. I figured there wouldn't be any CMS to support it, ergo decreasing the usage. So I took a few mins to scratch up Revolt, an Asynchornous, powerful, stable, and definitely secure Habbo Web CMS for Revolution. It uses Redis for Session Storage, I'm aware that Hazelcast is extremely faster than Redis I just chose to use it because of the support for both Node and Java, meaning I might use Redis for Revolution Session Storage in the future.
http://image.prntscr.com/image/f459e...e99891d74e.png
http://image.prntscr.com/image/e30a1...c163448308.png
Since I'm going this far I might go as far as to switch to PostgreSQL or at least implement some type of support for it, leme know what you guys think!
-
Re: Revolution Server (Java, PRODUCTION)
@Wotsuba is it maybe possible to put the CMS up github? I don't want to steal your code but I'd like to look at it to see how several things are done (as I see you're using Node.JS and I'm making a non-habbo project in Node.JS now)
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Glaceon
@
Wotsuba is it maybe possible to put the CMS up github? I don't want to steal your code but I'd like to look at it to see how several things are done (as I see you're using Node.JS and I'm making a non-habbo project in Node.JS now)
No worries, I'll upload the Node to Github as soon as I'm done with touch-ups.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
It uses Redis for Session Storage, I'm aware that Hazelcast is extremely faster than Redis I just chose to use it because of the support for both Node and Java, meaning I might use Redis for Revolution Session Storage in the future.
Hazelcast and Redis have different uses IMO, one is a data grid and one is a data structure store.
Just use what is ideal for your project, as they both have different purposes.
-
Re: Revolution Server (Java, PRODUCTION)
Decided to go and try an Akka Actor-based messaging system to handle game logistics, GitHub will be updated later that'll be the 10day commit
https://www.youtube.com/watch?v=WJPtq3laocU
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Decided to go and try an Akka Actor-based messaging system to handle game logistics, GitHub will be updated later that'll be the 10day commit
GL redoing most, if not all, your game-logic.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Joopie
GL redoing most, if not all, your game-logic.
Thanks bro, real ENCOURAGING :mad:
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Thanks bro, real ENCOURAGING :mad:
Your welcome, I know how much you love game logic ;)
But I'm interested to see how you are going to implement it.
I suggest you read some blog posts of it from Kevin Hoffman aka Kotancode, especially the one about the shopkeeper. Designing Akka Actor Hierarchies for Online Games - Commerce | Kotan Code 枯淡コード
-
Re: Revolution Server (Java, PRODUCTION)
@Wotsuba idk.. but put your videos in "spoiler", i'm my tablet the Forum laggs because tries to load the content of Video haha.
Waiting for updates.. of the emulator of course...
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
@
Wotsuba idk.. but put your videos in "spoiler", i'm my tablet the Forum laggs because tries to load the content of Video haha.
Waiting for updates.. of the emulator of course...
Haven't had time to write any updates yet, but you can always look at the GitHub... I commtted just recently
GitHub:
https://github.com/HeyItsKawaii/Revolution
-
Re: Revolution Server (Java, PRODUCTION)
Changelog (7/8/2016):
Revolution Emulator:
- Finished Database Table Structure for hotelview_promos
- Finished Database Table Structure for flat_categories New Navigator packet handlers, Navigator still not finished though
- Started working on Redis for Session Storage and Game Caching
- Implemented a GlobalThreadPool for developers trying to preform asynchronous task, not yet configurable. Default Max Pool Size: 3
- Added more packet handlers, user currency now working, not yet Database cached though
- Added more player data columns
Still haven't had time to recode the Habbo encryption, A boring procedure I'm not ready to encounter.
Revolt:
- More pages added (Me, Community, Staff)
- Source code optomizations, completely ES6
- Now utilizing Bluebird Promises
- Page added to monitor server analytics provided by Revolution via RCON in real-time
- Revolt now sharing the same Redis Database as Revolution and will probably be used for inter-process communication with the web server
-
Re: Revolution Server (Java, PRODUCTION)
Again @Wotsuba, good luck for the project. Waiting new screenshots of progress. Latest progress i saw was you entering at HotelView..
Generally new emulators tak 1 week to already "Enter in HotelView working", but seems you're stuck in this.
If you need help, i'm here...
-
Re: Revolution Server (Java, PRODUCTION)
@Wotsuba
I see you use annotations for linking fields in your classes to your databases, what framework do you use for this?
Also why do you have to manually say its nullable or not? This can also be defined in the database. So if you change it in the database you also have to modify the emulator.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
I see you use annotations for linking fields in your classes to your databases, what framework do you use for this?
JPA 2.0
https://github.com/HeyItsKawaii/Revo...ersistence.xml
Quote:
Originally Posted by
The General
Also why do you have to manually say its nullable or not? This can also be defined in the database. So if you change it in the database you also have to modify the emulator.
And It's just so the Hibernate DAO won't be able to set the value as null, it can still be a null value it just can't be "nulled". Default is true so I only set it false to values that I know won't be null when I'm building DB tables.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
JPA 2.0
https://github.com/HeyItsKawaii/Revo...ersistence.xml
And It's just so the Hibernate DAO won't be able to set the value as null, it can still be a null value it just can't be "nulled". Default is true so I only set it false to values that I know won't be null when I'm building DB tables.
Yeah but like if you make changes in the database to allow null, you have to modify your source code again.
-
Re: Revolution Server (Java, PRODUCTION)
Goodluck with project and enjoy the fun Gamelogic development.
-
Re: Revolution Server (Java, PRODUCTION)
Err... Whoop! Guess it's that time again...
Changelog (7/17/2016):
- Now using Hazelcast for IMDB instead of Redis
- Hibernate now uses Hazelcast for 2nd level caching
- Room Manager functional (in-development) uses ConcurrentHashMap for caching of RoomBean objects which contain the "Room" JPA Model which stores all of the room data obviously.
- Room Manager uses object synchronization for room loading and unloading and other room fonctionnel that utilize the "put" and "remove" map functions.
- Room Manager switched from Synchronized THashMap to ConcurrentHashMap
- RoomAvatar which is now the Player's and Bot's Room instance has been started on, prepareRoom() , enterRoom() has been written but not yet tested because I no longer have my server
- Removed PlayerService, now using PlayerDao which is no longer an extension of the GenericJpaDao
- Renamed all of the Events and Composers classes removing the "Message" from them because consistency matters, only packet values will contain "Message" in the name.
- Configured libraries not to log weird shit to the console, log4j2 now logs errors and information in separate files under the /logs directory
- Hazelcast now being used to cache Navigator search queries (mediocre implementation will be revised in the future)
- Cleaned up the JPA Models annotations, redundant variables removed from the annotation.
Like I've said before, room entering has been written it just hasn't been tested yet because my server was turned off, but I'm going to set up a localhost in a few...
- Room Models and Heightmap have yet to be coded
- MemorySession (previously RedisSession) has yet to be coded
- Habbo Encryption has yet to be refactored
GitHub: https://github.com/HeyItsKawaii/Revolution
-
Re: Revolution Server (Java, PRODUCTION)
Rewrote the Habbo Encryption in JavaScript/Node.js using Hazelcast to communicate with the server.
I know I might be overengineering a tad but Node has a solid RSA & DiffieHellman implementation in C++ and I will be utilizing JavaScript/Node for other things such as PathFinding in the near future.
I haven't progressed any, I might release a version using Pre-Shuffle first before Post, because of the lack of "features" required.
???
Screenshot by Lightshot
Judge for yourself
https://github.com/nodejs/node/blob/...node_crypto.cc
Lemme know whatcha think!
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Rewrote the Habbo Encryption in JavaScript/Node.js using Hazelcast to communicate with the server.
I know I might be overengineering a tad but Node has a solid RSA & DiffieHellman implementation in C++ and I will be utilizing JavaScript/Node for other things such as PathFinding in the near future.
I haven't progressed any, I might release a version using Pre-Shuffle first before Post, because of the lack of "features" required.
???
Screenshot by Lightshot
Judge for yourself
https://github.com/nodejs/node/blob/...node_crypto.cc
Lemme know whatcha think!
I don't understand why you are incorporating NodeJS into the equation at all.
There isn't any point going overboard for the sake of it when you already have the ideal libraries and resources native to your project.
You'll end up creating more overhead which ultimately equals to a less desirable solution.
But hey, that's just my opinion.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Francis Joseph
I don't understand why you are incorporating NodeJS into the equation at all.
There isn't any point going overboard for the sake of it when you already have the ideal libraries and resources native to your project.
You'll end up creating more overhead which ultimately equals to a less desirable solution.
But hey, that's just my opinion.
The current Habbo Encryption in Java wasn't as accurate and speedy as the latest one in C++/Node.js. One reason being... it's Java. Not here to start WW3 but we all know what's faster, and the fact that Java's littleEndian uses signed bytes, we don't get as close to the metal as we need to (metaphorically speaking) we're limited to things such as byte size.
It also crashed sometimes. XD
As I've explained before, I chose Node over Java for multiple reasons... select libraries being oine of them. I can see your point though, although what I'm using Node for (multiple features) I don't expect to hog much resources rather than have a ++ performance impact on the overall server.
Certain languages have their strengths, and this way my scripting/plugin system would be much easier (familiar) to work with.
Scalability is also a factor I'm considering, especially when it comes to the usual performance (memory leaks, etc) Habbo Emulator problems being PathFinder and Habbo Encryption. I mostlikely won't have to worry about either.
The current Java implementation will be kept in the source but not maintained by me until further notice, whether you choose to use it or not is your decision.
I'd hate to spoil the surprise but my pal @Joopie helped out a lot, unknowingly.
-
Re: Revolution Server (Java, PRODUCTION)
Then steal my pathfinder. Define not fast enough? Mine could handle 250 bots in one room with no problem. You are never going to need more than that really.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
Then steal my pathfinder. Define not fast enough? Mine could handle 250 bots in one room with no problem. You are never going to need more than that really.
If you want me to, then I will. But since I already have an implementation in Node, I'll keep both. Everybody loves options!
:marchmellow:
Saves me a lot of time,
Cheers.
-
Re: Revolution Server (Java, PRODUCTION)
No that was sarcasm. You better dont copy or steal.
I am just pointing out that your statement is bullshit.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
The General
No that was sarcasm. You better dont copy or steal.
I am just pointing out that your statement is bullshit.
... I don't get it? :sleep: Have you not read my sig?
But anyways, no worries I won't use your PathFinder... I can code my own.
JavaScript Library:
https://qiao.github.io/PathFinding.js/visual/
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
The current PathFinder in Java wasn't as accurate and speedy as the latest one in C++/Node.js. One reason being... it's Java. Not here to start WW3 but we all know what's faster, and the fact that Java's littleEndian uses signed bytes, we don't get as close to the metal as we need to (metaphorically speaking) we're limited to things such as byte size.
It also crashed sometimes. XD
As I've explained before, I chose Node over Java for multiple reasons... select libraries being oine of them. I can see your point though, although what I'm using Node for (multiple features) I don't expect to hog much resources rather than have a ++ performance impact on the overall server.
Certain languages have their strengths, and this way my scripting/plugin system would be much easier (familiar) to work with.
Scalability is also a factor I'm considering, especially when it comes to the usual performance (memory leaks, etc) Habbo Emulator problems being PathFinder and Habbo Encryption. I mostlikely won't have to worry about either.
The current Java implementation will be kept in the source but not maintained by me until further notice, whether you choose to use it or not is your decision.
I'd hate to spoil the surprise but my pal @
Joopie helped out a lot, unknowingly.
Whatever floats your boat, scalability is a factor as you said.
Which also means to consider the hardware in-which will be running your software and so forth.
Be sure to endeavor into unit testing and benchmarking too, since it would be project specific.
Doing your research is one thing but testing and analyzing it for yourself is another.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Francis Joseph
Whatever floats your boat, scalability is a factor as you said.
Which also means to consider the hardware in-which will be running your software and so forth.
Be sure to endeavor into unit testing and benchmarking too, since it would be project specific.
Doing your research is one thing but testing and analyzing it for yourself is another.
Wasn't going to start unit testing until room walking was done.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wotsuba
Wasn't going to start unit testing until room walking was done.
Biggest mistake. If I had to restart building an emulator I would start writing unittests straight away.
-
Re: Revolution Server (Java, PRODUCTION)
Sorry for not posting any recent updates, I have been experiencing a little problem with loading rooms. Screen just goes black. Also, got school to worry about in a week or so means getting my things prepared.
-
Re: Revolution Server (Java, PRODUCTION)
Ok so, things haven't gone as planned recently... PC went out on me. Fortunately for me the store can replace it with replica + authentic parts (screen, and body) so it'll be in the shops for god knows how long and until then I'll have to refrain from working on this.
Other news (good):
Doing sum cool stuff n assembly so we'll see wut I come up wid
-
Re: Revolution Server (Java, PRODUCTION)
Back with more gangsta stuff, started working on this again and I'll post more in-game screenies soon.
Can't wait to do plugins/scripting though, which will be done later in development!
-
Re: Revolution Server (Java, PRODUCTION)
2 months and only one picture of the in-game client with an alert? GG m8
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Quackster
2 months and only one picture of the in-game client with an alert? GG m8
Actually stopped after I finished navigator, and sending a user to a room. Development currently inactive but I plan on working on it in a few days or so.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
jaden83
Actually stopped after I finished navigator, and sending a user to a room. Development currently inactive but I plan on working on it in a few days or so.
This is your 3rd emulator, and you already stopped and you want to start again in a few days. I only have 3 words for you -> waste of time
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Wuzix
This is your 3rd emulator, and you already stopped and you want to start again in a few days. I only have 3 words for you -> waste of time
>already stopped
Development was active daily until school started? Which happens to be the only thing holding me back. The emulator itself I'd say is pretty much easy sailing from here. "already" is an understatement of the time and work I've put into this emulator if you're unaware of how much progress has been made.
>waste of time
Waste of who's time? How can you assume I don't have the time nor patience to work on an emulator when you're unaware of my schedule.
Let's skip the personal bullshit regarding what I do what my time, let's stay focused on code. Any comments on that? No? Cool.
@Quackster stalking my thread because some people just can't compete #IFeelTheEnvy #NegativeEnergyIsJealousy
Pardon the conflict.
-
Re: Revolution Server (Java, PRODUCTION)
Begun working on an emulator in C, still working on it atm.
As for Revolution, encountered a DI error while updating Guice dep. still working on running and testing out epolling on a Linux system so yeah :)
Gotta work on more packets, this will be done soon... when I get a to a stopping point with my C emulator I'll prioritize on what I shall work on more.
-
Re: Revolution Server (Java, PRODUCTION)
So you're saying that the Revolution Server is ended?
- - - Updated - - -
Observation.: I would not recommend to try to do an Emulator in C. C doesn't ever have strings. Doesn't ever is Object Oriented. Also you need do the Socket System from the scratch.
How you're thinking to code this?
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
So you're saying that the Revolution Server is ended?
- - - Updated - - -
Observation.: I would not recommend to try to do an Emulator in C. C doesn't ever have strings. Doesn't ever is Object Oriented. Also you need do the Socket System from the scratch.
How you're thinking to code this shit?
There is also no polymorphism in C either.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Quackster
There is also no polymorphism in C either.
Polymorphism is part of the OO programming idiom.
There are many other ways to do things.
Its not a reason that this is impossible.
But honestly, the C sockets are the best out there and properly implemented will outperform any other language.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
ovflowd
So you're saying that the Revolution Server is ended?
- - - Updated - - -
Observation.: I would not recommend to try to do an Emulator in C. C doesn't ever have strings. Doesn't ever is Object Oriented. Also you need do the Socket System from the scratch.
How you're thinking to code this?
Revolution Server is no where near ended, the development has just been going slower due to school, and other interests (C), so naw I'm still working on bits and pieces, I'll post an update log when I update the packet id's from January maybe I'll get some progress done after that.
I'll post a thread on the C emulator when it's far enough in development, right now I've been focused on getting the sockets in order then everything else comes after.
And to briefly answer your question, I'll code it "THE RIGHT WAY". Get it? The way people used to code before the OOP paradigm was introduced everything was either functional or procedural-- so it's definitely not impossible.
"THE RIGHT WAY" = What many programmers tell me how they program.
-
Re: Revolution Server (Java, PRODUCTION)
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
jaden83
Nobody has to understand this, right?
http://i.philxd.xyz/dA3Nk.png
(more code here: https://github.com/jadenmitchell/Red...r/src/buffer.c)
I hope you know you can make a method returning a void, right?
http://i.philxd.xyz/AOf9p.png
A booleans value is always true or false => 1 or 0, so its size is always 1. ¯\_(ツ)_/¯
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
iExit
In C, it is common practice to return ints for better error handling. Example, one could return -1 if the task was unsuccessful.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
Leon
In C, it is common practice to return ints for better error handling. Example, one could return -1 if the task was unsuccessful.
Yes it's used for that, but in this case Jaden didn't added any check that can return -1. Also by default if an execution time happens this method will return void, or better in some cases, will return false (0).
Also the parte of sizeof(bool) - 1, it's kinda lmfao. I didn't get what he tried with that. But whatever.
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
iExit
A boolean is *at least* but not limited to 1 byte, which is why I was getting the size of a bool on the machine and subtracting it by the byte that was read.
method returning a void? Elaborate? My current implementation passes a pointer to object which will be changed, I haven't added errors in yet but 0 is success and -1 means buffer overflow.
Seems like you're nitpicking tbh, but if you truly don't understand my tactics then you can watch more here (Stanford University C lecture)
https://www.youtube.com/watch?v=jTSvthW34GU
EDIT:
Another good read.
In C how much space does a bool (boolean) take up? Is it 1 bit, 1 byte or something else? - Stack Overflow
-
Re: Revolution Server (Java, PRODUCTION)
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
jaden83
Well, since you have no checks its retarded code.
On the boolean thing you got me.
Sometimes everbody is like Ash, a god damn retardelle ¯\_(ツ)_/¯
-
Re: Revolution Server (Java, PRODUCTION)
Quote:
Originally Posted by
iExit
Well, since you have no checks its retarded code.
On the boolean thing you got me.
Sometimes everbody is like Ash, a god damn retardelle ¯\_(ツ)_/¯
"since you have no checks it's retarded code"
I'm trying to be as nice as I possibly can with you, so right now we're heading towards passive aggressive.
What "checks" are you referring to? You need to acknowledge that you are viewing unfinished code, every function is designed said way for a reason and you a few times in C... you might have no reason at all other than the fact that you know there will be errors to check for in the future.
The current checks that were not committed were checking for buffer overflows, but if you were using the functions correctly and knew the habbo packet structure then you wouldn't have any problems anyway.
It's not about whether it "looks" like it make sense. See that's the difference between writing code, and programming software. In my opinion at least.
Coding vs. Programming -- Battle of the Terms! | Huffington Post
No funny shit but...
Doesn't take a genius to figure out where I was going there, just a REAL programmer. and @Leon (and anyone who thought the same before reading his post) happen to be the only ones thus far.
Btw, been added these checks -- yet to commit because my computer time has been cut short lately. Got a big test tomorrow.
http://image.prntscr.com/image/6f6ce...603430f639.png
- - - Updated - - -
Quote:
Originally Posted by
Leon
Any updates on this? ;)
My monitor broke a few days ago and my PC doesn't take VGA (only HDMI) so a replacement is going to be expensive :(
Been using the flat in the family room and I can't be in there monopolizing all day, so every once and a while at night. I'll commit a few bug fixes I made to the source code a while ago to Git because I was holding back until everything was working.
-
Re: Revolution Server (Java, PRODUCTION)
You may want to re-think about your buffer_bytes_available. For example what happens if I do (buffer, 10000) while the size is only 10?