Skip to content
This repository was archived by the owner on Apr 10, 2026. It is now read-only.

Commit cf9b141

Browse files
authored
refactor: kotlin rewrite (#63)
1 parent e3abadc commit cf9b141

135 files changed

Lines changed: 3626 additions & 3552 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,5 @@ trim_trailing_whitespace = false
1515
[{*.yml,*.json}]
1616
indent_size = 2
1717

18-
[*.java]
19-
# Intellij IDEA settings
20-
ij_java_class_count_to_use_import_on_demand = 9999
21-
ij_java_imports_layout = |,java.**,|,javax.**,|,com.**,|,org.bukkit.**,|,io.**,|,me.**,|,net.**,|,*,|,$*
22-
ij_java_names_count_to_use_import_on_demand = 9999
18+
[*.json]
19+
indent_style = tab

.github/workflows/blob-build.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,33 @@ on:
77

88
jobs:
99
build:
10-
if: startsWith(github.event.head_commit.message, '[CI skip]') == false
1110
runs-on: ubuntu-latest
1211
steps:
13-
- uses: actions/checkout@v4
14-
- name: Set up JDK 21
12+
- name: Checkout repository
13+
uses: actions/checkout@v4
14+
15+
- name: Set up JDK ${{ vars.BUILDS_JAVA_VERSION }}
1516
uses: actions/setup-java@v4
1617
with:
17-
java-version: 21
18+
java-version: ${{ vars.BUILDS_JAVA_VERSION }}
1819
distribution: temurin
19-
- name: Build with Maven
20-
run: mvn package --file pom.xml
20+
21+
- name: Validate Gradle wrapper
22+
uses: gradle/actions/wrapper-validation@v4
23+
24+
- name: Setup Gradle
25+
uses: gradle/actions/setup-gradle@v4
26+
27+
- name: Build with Gradle
28+
run: ./gradlew clean shadowJar
29+
30+
- name: Rename jar file
31+
run: mv build/libs/FastMachines-*.jar build/libs/FastMachines.jar
32+
2133
- name: Upload to Blob Builds
2234
uses: WalshyDev/blob-builds/gh-action@main
2335
with:
2436
project: FastMachines
37+
file: ./build/libs/FastMachines.jar
2538
apiToken: ${{ secrets.BLOB_BUILDS_API_TOKEN }}
2639
releaseNotes: ${{ github.event.head_commit.message }}

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Java CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Set up JDK 21
19+
uses: actions/setup-java@v4
20+
with:
21+
java-version: 21
22+
distribution: temurin
23+
24+
- name: Validate Gradle wrapper
25+
uses: gradle/actions/wrapper-validation@v4
26+
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v4
29+
30+
- name: Build with Gradle
31+
run: ./gradlew clean shadowJar
32+
33+
- name: Get build artifact ready
34+
run: mkdir staging && cp build/libs/*.jar staging
35+
36+
- name: Upload a Build Artifact
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: Preview Build (Do not report bugs for this build)
40+
path: staging

.github/workflows/maven.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

.gitignore

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
# IntelliJ
99
out/
10+
# mpeltonen/sbt-idea plugin
11+
.idea_modules/
12+
13+
# JIRA plugin
14+
atlassian-ide-plugin.xml
1015

1116
# Compiled class file
1217
*.class
@@ -95,19 +100,19 @@ $RECYCLE.BIN/
95100
# Windows shortcuts
96101
*.lnk
97102

98-
target/
103+
.gradle
104+
build/
105+
106+
# Ignore Gradle GUI config
107+
gradle-app.setting
99108

100-
pom.xml.tag
101-
pom.xml.releaseBackup
102-
pom.xml.versionsBackup
103-
pom.xml.next
109+
# Cache of project
110+
.gradletasknamecache
104111

105-
release.properties
106-
dependency-reduced-pom.xml
107-
buildNumber.properties
108-
.mvn/timing.properties
109-
.mvn/wrapper/maven-wrapper.jar
110-
.flattened-pom.xml
112+
**/build/
111113

112114
# Common working directory
113115
run/
116+
117+
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
118+
!gradle-wrapper.jar

README.md

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,23 @@
33
[English](README.md) | [中文](README.zh_CN.md)
44

55
This Slimefun addon extracts the manual machines from FinalTECH and made some changes to put them into a separate addon.
6-
Fast machines are manual crafters that cost energy to run and can craft items without recipe to be in order. Also supports bulk crafting.
6+
Fast machines are manual crafters that cost energy to run and can craft items with all shapeless recipes and support bulk crafting.
77

88
Credit: Final_Root
99

1010
## Download
1111

12-
Download from:
12+
Download from (either one is fine):
1313

1414
- [Blob builds](https://blob.build/project/FastMachines)
1515
- [Guizhan Builds![Build Status](https://builds.guizhanss.com/ybw0014/FastMachines/master/badge.svg)](https://builds.guizhanss.com/ybw0014/FastMachines/master)
1616

17-
This plugin supports [SlimefunTranslation](https://github.com/ybw0014/SlimefunTranslation) for per-player localization.
17+
## Supported plugins
1818

19-
## Configuration
20-
21-
### General Config (config.yml)
22-
23-
- `auto-update`: Whether to enable auto update from builds page. (default: `true`)
24-
- `lang`: The language of the addon, check available languages [here](LOCALES.md). (default: `en-US`)
25-
- `enable-researches`: Whether to enable researches for fast machines. (default: `true`)
26-
- `debug`: Whether to enable debug mode. (default: `false`)
27-
- `fast-machines.use-energy`: Whether to enable energy cost of Fast Machines' crafting. (default: `true`)
28-
29-
### Item-specific config (/plugins/Slimefun/Items.yml)
30-
31-
The following settings are available for each individual Fast Machines (default settings may vary due to the original crafter's energy consumption):
32-
33-
- `energy-per-use`: The energy cost of each crafting operation. (default: `8`, range: `0` - `2,147,483,647` (2^31-1))
34-
- `energy-capacity`: The energy capacity of the machine. (default: `1024`, range: `0` - `2,147,483,647` (2^31-1))
19+
- [SlimefunTranslation](https://github.com/ybw0014/SlimefunTranslation): per player localization.
20+
- [InfinityExpansion](https://github.com/Mooy1/InfinityExpansion): extra fast machines for Infinity Expansion.
21+
- [SlimeFrame](https://github.com/VoperAD/SlimeFrame): extra fast machines for SlimeFrame.
22+
- [InfinityExpansion2](https://github.com/ybw0014/InfinityExpansion2): extra fast machines for Infinity Expansion 2.
3523

3624
## Thanks
3725

README.zh_CN.md

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,20 @@
33
[English](README.md) | [中文](README.zh_CN.md)
44

55
该粘液科技附属将快速机器的玩法从[乱序技艺](https://github.com/ecro-fun/FinalTECH)中提取出来,并进行了一些改动,使其作为一个单独的附属。
6-
快捷机器是手动的消耗电力来进行合成的机器,无需将配方按顺序摆放,支持批量合成。
6+
快捷机器是手动的消耗电力来进行合成的机器,所有配方皆为无序配方,支持批量合成。
77

88
鸣谢:Final_Root
99

1010
## 下载
1111

1212
[![Build Status](https://builds.guizhanss.com/ybw0014/FastMachines/master/badge.svg)](https://builds.guizhanss.com/ybw0014/FastMachines/master)
1313

14-
## 配置
14+
## 支持的插件
1515

16-
### 通用配置 (config.yml)
17-
18-
- `auto-update`: 是否启用自动更新(默认值:`true`
19-
- `lang`: 插件的语言,可在[此处](LOCALES.md)查看可用语言(默认值:`en-US`
20-
- `enable-researches`: 是否启用快速机器的研究(默认值:`true`
21-
- `debug`: 是否启用调试模式(默认值:`false`
22-
- `fast-machines.use-energy`: 是否启用快捷机器的能量消耗(默认值:`true`
23-
24-
### 物品特定配置(/plugins/Slimefun/Items.yml)
25-
26-
以下设置适用于每个独立的快捷机器(默认值可能因原合成机器的电力消耗而改变):
27-
28-
- `energy-per-use`:每次制作操作的电力消耗(默认值:`8`,范围:`0` - `2,147,483,647` (2^31-1))
29-
- `energy-capacity`:机器可存储的电力(默认值:`8`,范围:`0` - `2,147,483,647` (2^31-1))
16+
- [SlimefunTranslation](https://github.com/ybw0014/SlimefunTranslation): 为每位玩家显示不同的语言。
17+
- [InfinityExpansion](https://github.com/Mooy1/InfinityExpansion): 为无尽贪婪提供额外的快捷机器。
18+
- [SlimeFrame](https://github.com/VoperAD/SlimeFrame): 为粘液战甲提供额外的快捷机器。
19+
- [InfinityExpansion2](https://github.com/ybw0014/InfinityExpansion2): 为无尽贪婪2提供额外的快捷机器。
3020

3121
## 感谢
3222

build.gradle.kts

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
3+
plugins {
4+
kotlin("jvm") version "2.1.10"
5+
id("com.gradleup.shadow") version "8.3.5"
6+
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
7+
id("xyz.jpenilla.run-paper") version "2.3.1"
8+
}
9+
10+
repositories {
11+
mavenLocal()
12+
mavenCentral()
13+
maven("https://s01.oss.sonatype.org/content/groups/public/")
14+
maven("https://repo.papermc.io/repository/maven-public/")
15+
maven("https://repo.alessiodp.com/releases/")
16+
maven("https://jitpack.io")
17+
}
18+
19+
dependencies {
20+
fun compileOnlyAndTestImpl(dependencyNotation: Any) {
21+
compileOnly(dependencyNotation)
22+
testImplementation(dependencyNotation)
23+
}
24+
25+
compileOnly(kotlin("stdlib")) // loaded through library loader
26+
compileOnly(kotlin("reflect")) // loaded through library loader
27+
compileOnlyAndTestImpl("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
28+
compileOnlyAndTestImpl("com.github.Slimefun:Slimefun4:3ea21da4fe")
29+
compileOnly("net.guizhanss:SlimefunTranslation:e03b01a7b7")
30+
compileOnly("com.github.schntgaispock:SlimeHUD:1.3.0")
31+
compileOnly("com.github.SlimefunGuguProject:InfinityExpansion:bebf0bd0f9")
32+
compileOnly("com.github.VoperAD:SlimeFrame:8af2379a01")
33+
implementation("org.bstats:bstats-bukkit:3.1.0")
34+
implementation("net.guizhanss:guizhanlib-all:2.3.0-SNAPSHOT")
35+
implementation("net.guizhanss:guizhanlib-kt-all:0.1.0-SNAPSHOT")
36+
37+
testImplementation(kotlin("test"))
38+
testImplementation("org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.10.0")
39+
}
40+
41+
group = "net.guizhanss"
42+
description = "FastMachines"
43+
44+
val mainPackage = "net.guizhanss.fastmachines"
45+
46+
java {
47+
disableAutoTargetJvm()
48+
sourceCompatibility = JavaVersion.VERSION_17
49+
targetCompatibility = JavaVersion.VERSION_17
50+
}
51+
52+
kotlin {
53+
compilerOptions {
54+
javaParameters = true
55+
jvmTarget = JvmTarget.JVM_17
56+
}
57+
}
58+
59+
tasks.shadowJar {
60+
fun doRelocate(from: String, to: String? = null) {
61+
val last = to ?: from.split(".").last()
62+
relocate(from, "$mainPackage.libs.$last")
63+
}
64+
65+
doRelocate("net.byteflux.libby")
66+
doRelocate("net.guizhanss.guizhanlib")
67+
doRelocate("org.bstats")
68+
doRelocate("io.papermc.lib", "paperlib")
69+
minimize()
70+
archiveClassifier = ""
71+
}
72+
73+
bukkit {
74+
main = "$mainPackage.FastMachines"
75+
apiVersion = "1.18"
76+
authors = listOf("ybw0014")
77+
description = "More Slimefun machines that bulk craft items with all shapeless recipes"
78+
depend = listOf("Slimefun")
79+
softDepend = listOf(
80+
"GuizhanLibPlugin",
81+
"SlimefunTranslation",
82+
"InfinityExpansion",
83+
"SlimeFrame",
84+
"SlimeHUD",
85+
"InfinityExpansion2",
86+
)
87+
loadBefore = listOf(
88+
"SlimeCustomizer",
89+
"RykenSlimeCustomizer",
90+
"SlimeFunRecipe"
91+
)
92+
}
93+
94+
tasks.runServer {
95+
downloadPlugins {
96+
// Slimefun
97+
url("https://blob.build/dl/Slimefun4/Dev/latest")
98+
// SlimeHUD
99+
url("https://blob.build/dl/SlimeHUD/Dev/latest")
100+
// GuizhanCraft for testing convenient
101+
url("https://builds.guizhanss.com/api/download/ybw0014/GuizhanCraft/master/latest")
102+
}
103+
jvmArgs("-Dcom.mojang.eula.agree=true")
104+
minecraftVersion("1.20.6")
105+
}
106+
107+
tasks.test {
108+
useJUnitPlatform()
109+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version=UNOFFICIAL

gradle/wrapper/gradle-wrapper.jar

42.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)