Skip to content

Bunch of stuff#14

Open
Cobollatin wants to merge 1 commit into
manulaiko:developfrom
Cobollatin:feature/bunch_of_stuff
Open

Bunch of stuff#14
Cobollatin wants to merge 1 commit into
manulaiko:developfrom
Cobollatin:feature/bunch_of_stuff

Conversation

@Cobollatin
Copy link
Copy Markdown

Hey, hope this PR finds you well.

I had some time this weekend and was looking for a DarkOrbit server emulator. I found yours and, after running it, it looked like it still needed a good amount of work. I made a set of changes mainly to get a clearer picture of what’s done vs. what’s missing, and to make local testing easier.

  • Local/dev infra: I added a Docker Compose file to set up a local DB so anyone can clone the repo, run the containers, and have a DB to use. Configs are under a .env file - you can copy from .env.example.
  • Build system: I upgraded to Gradle 9 because Gradle 8 was complaining that my Java version was too high (Java 25). Since the project already uses Java 25, upgrading Gradle to run on a Java 25 JVM made sense. I also updated the Gradle build scripts to match the newer version.
  • CMS build system: I noticed the CMS was commented out / not being built with the app, but I needed to test everything (since that’s the only interface I had). I updated the Gradle build to install and build the Vue.js app depending on some flags. Please see gradle.properties.example for the required flags - basically runCMS plus the npm path/args (the path/args are only needed if you run nvm on Windows; if not, leave them empty and it works).
  • Logging: I added some log categories, and now it writes to files under /logs depending on the category. I also added an XML config.
  • README: I updated the README to include instructions for the new Docker Compose setup and the Gradle config.
  • JavaFx: I added a vendors folder where devs can put the needed JavaFX jars/SDK and reference them from the IDE. This isn’t necessary when running with Gradle directly, but for an IDE (IntelliJ in my case) you need to include those in the VM options. I added instructions in the README as well.
  • CMS Vue.js app: This one is special - I had to use Node 16. The app was also broken, so I fixed Sass to use SCSS. This still needs a rewrite entirely, but there isn’t much there, so that shouldn’t be an issue.
  • CMS backend execution: I saw the architecture idea is to start/stop servers on demand, so the CMS should do the same (right?). I added a handler to run the CMS Spring app when the server starts, using the same @EventListener system the other services use. It was a pain setting up an isolated Spring context and getting all the endpoints working. This still needs more testing, but at least Spring doesn’t crash.
  • CMS frontend execution: As part of CMS instantiation, I also added (in the same event) a handler to start the Vue.js app. Implementation is in CMS.java - it just calls npm run serve.
  • DB creation: I saw the app was relying on JPA to create the tables when we already had SQL scripts available, so I changed that. Now we run the scripts in order: structure.sql first, then relations.sql, and finally dump.sql.

Some stuff that still needs to be addressed: some dump.sql scripts fail (haven’t looked into this yet - Hibernate reports “syntax error”). Also, some JPA operations fail: when I try to use the register endpoint, Hibernate reports a Data truncated for column ID error when trying to save an account.

Please take your time reviewing this PR. I don’t think I’ll have time during the week; I should be available again next weekend if you request changes.

@manulaiko
Copy link
Copy Markdown
Owner

I'm not reading all of that

@Cobollatin
Copy link
Copy Markdown
Author

I'm not reading all of that

Then approve and merge :)

@hlock56
Copy link
Copy Markdown

hlock56 commented Mar 5, 2026

@Cobollatin Do you have a discord? Would love to chat with you about this project

@Cobollatin
Copy link
Copy Markdown
Author

@Cobollatin Do you have a discord? Would love to chat with you about this project

Right, sent you cna email. Tho you cna find me in discord with the same username

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants