Mixins eklentisi

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

  1. Eklentinize bağımlılık olarak Mixin kütüphanesini ekleyin:

    dependencies {
        compile 'org.spongepowered:mixin:0.7.11-SNAPSHOT'
    }
    
  2. 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"
        ]
    }
    
  3. 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:

  1. Ç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:

  1. MixinGradle pluginini oluşturup, komut dosyanıza uygulayın:

    buildscript {
        repositories {
            maven {
                name = 'sponge'
                url = 'https://repo.spongepowered.org/maven'
            }
        }
        dependencies {
            classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
        }
    }
    
    apply plugin: 'org.spongepowered.mixin'
    
  2. Refmap’i, Mixin yapılandırmasından ayarlayın:

    sourceSets {
        main {
            ext.refMap = "mixins.myplugin.refmap.json"
        }
    }
    
  3. 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',
        )
    }
    
  4. Eklentiyi Gradle kullanarak yeniden oluşturduğunuzdan emin olun. Mixin, SpongeVanilla ve SpongeForge tarafından uygulanmalıdır.

    gradle clean build