-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Ruby with Kotlin #338
base: master
Are you sure you want to change the base?
Conversation
Creates a new sourceset for server plugins to support IDE integration with plugin code. Additionally moves plugins to game/data/plugins and contains some gradle related fixes (remove java plugin from root project and fix exec task dependency).
Adds gradle tasks to build all plugin scripts under data/plugins with the KotlinPluginCompiler implementation previously used for runtime code generation. In addition to .plugin.kts files, scripts can also declare API code in .kt files which will also be included on the classpath and made available to other plugins.
Adds separate build tasks for each plugin by auto-discovering plugin meta files in the build script. Each plugin will automatically have its main sources and tests compiled, and then it's output added to the game modules classpath. This enables support for incremental compilation of scripts, as well as unit testing using Gradle's test framework.
During this conversion I think we should go through and fix any open plugin issues left over from Ruby (such as the bugs that have been found, etc) |
Could also add woodcutting, since it's just mining with a few different ids, I could do it myself as soon as mining is done. |
@ryleykimmel ACK @Promises I'd rather we didn't add new work onto this already monolithic task. However, am happy to merge code into it as we go if people would like to take on plugin work themselves. |
@Promises feel free to work on wc yourself and we'll offer code review + happily accept a pull request @garyttierney |
@Major- right. Probably some core things we want to create bindings for in the bootstrap. Some thoughts:
|
658c33e
to
eed32ef
Compare
I'll help convert some plugins today |
766f94c
to
35ab034
Compare
Prevent bytecode generation related test failures in tests that rely on PowerMock by updating to PowerMock 2.
Update test deps for Java 11
Bumps org.jetbrains.kotlin.jvm from 1.3.40 to 1.3.41. Signed-off-by: dependabot-preview[bot] <[email protected]>
Bumps org.jmailen.kotlinter from 1.16.0 to 1.26.0. Signed-off-by: dependabot-preview[bot] <[email protected]>
Fix location of detekt report
…n.kotlinter-1.26.0 Bump org.jmailen.kotlinter from 1.16.0 to 1.26.0
…ins.kotlin.jvm-1.3.41 Bump org.jetbrains.kotlin.jvm from 1.3.40 to 1.3.41
Bumps org.sonarqube from 2.6.2 to 2.7.1. Signed-off-by: dependabot-preview[bot] <[email protected]>
…ube-2.7.1 Bump org.sonarqube from 2.6.2 to 2.7.1
SonarCloud Quality Gate failed. 0 Bugs |
Fix NPC vertical movement
SonarCloud Quality Gate failed. 2 Bugs |
As discussed in #310 this pull request introduces a new Kotlin based plugin system as well as a much, much better plugin build system.
Major planned features:
For a more detailed explanation of what we get with kotlin and this new plugin system see the discussion in #310.
As well as the plugin system itself, there is a lot of plugins written in Ruby left to port. A list of these is below.
Two pugins have been deselected from the kotlin port, and will be done at a later date - dialogue and the (non-combat) magic skill.
This doesn't include tests for the plugins - see #361.