Mixins eklentisi
Uyarı
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 sınıfları, yüklenmeden önce çalışma zamanında değiştirmek için kullanılabilir. Oyunun bir bölümünü sunucunuz için özel olarak optimize etmek isterseniz, Sponge’u çatala sokmadan eklentilerde kullanabilirsiniz. Değişiklikler doğrudan eklentinizle birlikte verilir ve yalnızca eklenti yüklendiği sürece etkin olurlar.
Ayrıca bakınız
- Mixin dökümantasyonları <https://github.com/SpongePowered/Mixin/wiki>`_
Mixins’e giriş içeren Mixin dökümantasyonları.
- Örnek eklenti
Sunucu başlatıldığında bir mesaj yazdırabilmek için Plugin Mixins kullanan örnek eklenti.
Kurulum
Eklentinize bağımlılık olarak Mixin kütüphanesini ekleyin:
dependencies { compile 'org.spongepowered:mixin:0.7.11-SNAPSHOT' }
Eklentiniz için yeni bir Mixin yapılandırması ekleyin, örneğin, kaynak klasörünüzde
mixins.myplugin.json
:{ "required": true, "minVersion": "0.7.10", "package": "com.example.myplugin.mixin", "refmap": "mixins.myplugin.refmap.json", "target": "@env(DEFAULT)", "compatibilityLevel": "JAVA_8", "mixins": [ "MixinMinecraftServer" ] }
Belirtilen pakete bir Mixin sınıfı ekleyin:
package com.example.myplugin.mixin; import net.minecraft.server.MinecraftServer; import org.spongepowered.asm.mixin.Mixin; @Mixin(MinecraftServer.class) public abstract class MixinMinecraftServer { }
Hata ayıklama
Normalde, Mixin yapılandırması, eklentinin JAR manifestinde kayıtlıdır. Eklenti, IDE içinde hata ayıklarken bir JAR’da paketlenmediğinden, komut satırı seçenekleri olarak uygulamak için Mixins’i belirtmeniz gerekir:
Çalıştırma yapılandırmanızın program değişkenlerine her bir Mixin yapılandırma dosyası için bir
--mixin <mixin config file name>
seçeneği ekleyin:--mixin mixins.myplugin.json
Ürünler
Mixin’iniz geliştirme ortamınızda çalışıyorsa, üretimde çalışması için hala bazı değişiklikler yapmanız gerekir:
MixinGradle pluginini oluşturup, komut dosyanıza uygulayın:
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'
Refmap’i, Mixin yapılandırmasından ayarlayın:
sourceSets { main { ext.refMap = "mixins.myplugin.refmap.json" } }
Mixin yapılandırmanızı JAR manifest dosyasına ekleyin. Eğer Mixin’i SpongeForge’a yüklemek istiyorsanız
FMLCorePluginContainsFMLMod
manifest girişi gereklidir:jar { manifest.attributes( 'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker', 'MixinConfigs': 'mixins.myplugin.json', 'FMLCorePluginContainsFMLMod': 'true', ) }
Eklentiyi Gradle kullanarak yeniden oluşturduğunuzdan emin olun. Mixin, SpongeVanilla ve SpongeForge tarafından uygulanmalıdır.
gradle clean build