Plugin Mixins
Peringatan
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
Mixins dapat digunakan untuk mengubah classes pada waktu pelaksanaan sebelum mereka dimuat. Anda dapat menggunakannya pada plugins jika anda ingin mengoptimalkan bagian dari permainan secara spesifik untuk server anda tanpa harus merubah Sponge. Perubahan akan ditumpuk secara langsung dengan plugins anda dan hanya aktif selama plugin anda dimuat.
Lihat juga
- Mixin documentation
Mixin documentation termasuk sebuah pengenalan terhadap Mixins.
- Example plugin
Example plugins yang menggunakan Plugins Mixins untuk mencetak sebuah pesan ketika server dimulai.
Pengaturan
Tambahkan Mixin library secara bebas kedalam plugins anda:
dependencies { compile 'org.spongepowered:mixin:0.7.11-SNAPSHOT' }
Tambahkan pengaturan Mixin baru kedalam plugin, contohnya
mixins.myplugin.json
inside your resource folder:{ "required": true, "minVersion": "0.7.10", "package": "com.example.myplugin.mixin", "refmap": "mixins.myplugin.refmap.json", "target": "@env(DEFAULT)", "compatibilityLevel": "JAVA_8", "mixins": [ "MixinMinecraftServer" ] }
Tambahkan Mixin class kedalam paket tertentu:
package com.example.myplugin.mixin; import net.minecraft.server.MinecraftServer; import org.spongepowered.asm.mixin.Mixin; @Mixin(MinecraftServer.class) public abstract class MixinMinecraftServer { }
Menelusuri
Biasanya, pengaturan Mixin terdaftar didalam JAR yang jelas dari plugin. Karena plugin tidak dikemas dalam sebuah JAR saat penelusuran didalam IDE anda harus menentukan Mixins untuk menerapkan sebagain opsi command line:
Tambahkan opsi
--mixin <mixin config file name>
untuk setiap pengaturan berkas Mixin kedalam program arguments dari pengaturan anda yang sedang berjalan:--mixin mixins.myplugin.json
Produksi
Jika Mixin anda bekerja di lingkungan pengembangan anda, anda masih harus membuat beberapa perubahan agar itu bekerja didalam produksi:
Terapkan plugin MixinGradle kedalam build script anda:
buildscript { repositories { maven { name = 'sponge' url = 'https://repo.spongepowered.org/repository/maven-public/' } } dependencies { classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT' } } apply plugin: 'org.spongepowered.mixin'
Atur refmap dari pengaturan Mixin anda:
sourceSets { main { ext.refMap = "mixins.myplugin.refmap.json" } }
Tambahkan pengaturan Mixin anda kedalam JAR yang jelas. catatan
FMLCorePluginContainsFMLMod
yg jelas dibutuhkan jika anda ingin memuat Mixin anda di SpongeForge:jar { manifest.attributes( 'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker', 'MixinConfigs': 'mixins.myplugin.json', 'FMLCorePluginContainsFMLMod': 'true', ) }
Pastikan untuk membangun ulang plugin menggunakan Gradle. Kemudian Mixin harus diaplikasikan oleh SpongeVanilla dan SpongeForge.
gradle clean build