Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera]

Status
Not open for further replies.
Joined
Aug 10, 2011
Messages
7,398
Reaction score
3,301
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

I didn't. If I were ever to comment on that, it would be that you should use try-with-resource instead of those ugly double try-catches.

True. But had to use java 6 for reason initially. Didn't bother upgrading.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Got a current problem with the pathfinder:

Basically, after commenting code and doing stuff I've come to the conclusion the pathfinder is just fucked so I'm going to switch it for a different one.

If you click the square on the gate the character will still walk to it but clicking the square above it will make the character for walk around it.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Fixed pathfinder problem in latest "unstable" branch by using the same pathfinder Comet uses.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Have you looked at the pathfinder Blunk uses?

No I haven't, this pathfinder currently implemented does the job just fine and it's quite small too so I don't see any reason to consider other options.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Streaming some rewriting of my server!

Basically going to make it so network library dependencies can easily be switched without touching the main source.

EDIT:

:cool:

PCGAFLR - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Joined
Jun 23, 2010
Messages
2,318
Reaction score
2,195
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Streaming some rewriting of my server!

Basically going to make it so network library dependencies can easily be switched without touching the main source.

EDIT:

:cool:

PCGAFLR - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums

I think, not sure tho, but I think you have a few errors. I'm sure you know it, right?
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Oct 26, 2014
Messages
176
Reaction score
117
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Fixed pathfinder problem in latest "unstable" branch by using the same pathfinder Comet uses.
You should just go with a basic Orthogonal 2D Pathfinder algorithm.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Changelog

- Sitting on chairs
- Laying on beds
- Applying floor/wall/landscape displays to rooms
- Fixed pathfinder so the user doesn't walk into beds/chairs at all unless their last position is their destination (just like official Habbo).
- Fixed bug where you can't sit on chairs if they're on a rug
- Fixed bug where buying an item doesn't update the inventory unless you reload it (achieved fix by re-sending inventory packet upon purchase).

Backend changelog

- Rewrote all composers to support dependency injection (interfaced the readers and response classes for reading/writing packets)
- Decoupled Netty so it's loaded as an extension, as in the "server" on the main project is all interfaced so you can easily switch it out and change the socket extension to support Apache MINA or the default Java network library.

Netty as a seperate project



The extension configuration for the Netty project



Code:
extension.socket.jar=extensions/Icarus_socket_netty.jar
extension.socket.entry=org.alexdev.icarus.netty.NettyServer

Loading libraries at runtime

(When running Icarus through an IDE, using -debug launch parameter will not load libraries at runtime, because the IDE will include them, but as a jar file, you must run without -debug parameter otherwise things will break, bad.)

I changed them to load at runtime because it allows for easy extension changing if someone wishes to use a different library, for example, switching from Netty to Apache MINA you can recompile small Icarus socket extension, change the library in the properties file without recompiling the main project. :):



Code:
libraries=bonecp,guava,mysql,netty,slf4-api,slf4-simple
library.bonecp=bonecp-0.7.1.RELEASE.jar
library.guava=guava-11.0.2.jar
library.mysql=mysql-connector-java-5.1.6-bin.jar
library.netty=netty-3.10.5.Final.jar
library.slf4-api=slf4j-api-1.7.2.jar
library.slf4-simple=slf4j-simple-1.7.2.jar

Compiled releases of Icarus

A compiled release can be found here: (it will be most likely up to date, including bugs).

As long as you have the Java 1.8 installed, Icarus should boot up fine either by using run.bat (Windows) or running

Code:
java -jar Icarus.jar

You should just go with a basic Orthogonal 2D Pathfinder algorithm.

Sorry but there's no need now. I'm sorry. :(:
 
Last edited:
Junior Spellweaver
Joined
May 14, 2007
Messages
192
Reaction score
10
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Installing JDK now, shall start sussing it soon <3
 
Retired
Loyal Member
Joined
May 5, 2007
Messages
497
Reaction score
665
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

You might wanna look into what automated build systems are like Gradle and Maven instead of leaving dependencies inside your git repo. Anyone who has worked in any project that is larger than a 2-day assignment knows why not using any of those is a bad idea. Had sort of expected that you had this set up, as it is a very basic thing in software development.
 
topkek amirite??
Joined
May 16, 2009
Messages
751
Reaction score
696
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

You might wanna look into what automated build systems are like Gradle and Maven instead of leaving dependencies inside your git repo. Anyone who has worked in any project that is larger than a 2-day assignment knows why not using any of those is a bad idea. Had sort of expected that you had this set up, as it is a very basic thing in software development.

This.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

I have a huge problem.

When sending a packet I'm instantly disconnected. Not sure if I broke something or there's like another date check somewhere which has fucked me over. :)
 
Unknown Place
Joined
Mar 7, 2013
Messages
580
Reaction score
87
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

I have a huge problem.

When sending a packet I'm instantly disconnected. Not sure if I broke something or there's like another date check somewhere which has fucked me over. :)

Invalid packet for sure.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Invalid packet for sure.

Well it's not because I already checked the Chrome console and there's nothing of that nature and it says "failed to parse _-d35" or whatever when there's an invalid packet.

6r7afmY - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums




So it turns out there was a bit of discrepancy between the location of OutgoingMessageComposer class between the Netty extension and the main project since I remember changing the paths.

Therefore, Java just poop itself whenever the extension had to use that class and would just disconnect me without any errors or warnings, all issues have been resolved now :D:
 

Attachments

You must be registered for see attachments list
Joined
Aug 10, 2011
Messages
7,398
Reaction score
3,301
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

So it turns out there was a bit of discrepancy between the location of OutgoingMessageComposer class between the Netty extension and the main project since I remember changing the paths.

Therefore, Java just poop itself whenever the extension had to use that class and would just disconnect me without any errors or warnings, all issues have been resolved now :D:

Consider writing unit tests. I know, its a lot of work for such a small project but you get benefits from it because you can automatically test components like these.
 
  • Like
Reactions: Jax
Status
Not open for further replies.
Back
Top