SunLicense

Które klasy muszą zachować nazwy?

Wklej deskryptor wtyczki lub moda przed zaciemnieniem jara. Jest czytany w Twojej przeglądarce; nic nie jest przesyłane.

  • W przeglądarce
  • Paper, Spigot, BungeeCord, Velocity, Fabric

Wklej deskryptor, aby zobaczyć odpowiedź

plugin.yml, paper-plugin.yml, bungee.yml, velocity-plugin.json lub fabric.mod.json. Albo wybierz jeden z Przykładów.

Co i tak zawsze jest zachowywane

Main-Class z manifestu, dostawcy z META-INF/services, obsługa zdarzeń (@EventHandler, @Subscribe), enumy, serializowalne składowe i klasy Forge z @Mod.

To, co możesz wiedzieć tylko Ty (refleksja, nazwy w plikach konfiguracji)

Klasy wczytywane po nazwie (Class.forName, refleksja, nazwy w plikach konfiguracyjnych) i pola, które biblioteka JSON mapuje po nazwie.

Potem zaciemnij jar w darmowym koncie.Prześlij jar

Ten sam plugin. Dużo trudniejszy do czytania.

Twój kod
public final class AuctionPlugin extends JavaPlugin {
    private final Map<UUID, Listing> listings = new HashMap<>();

    @Override
    public void onEnable() {
        getCommand("ah").setExecutor(new AuctionCommand(this));
    }

    boolean canAfford(Player player, double price) {
        return economy.getBalance(player) >= price;
    }
}
Po zaciemnieniu (zdekompilowane)
public final class AuctionPlugin extends JavaPlugin {
    private final Map<UUID, a> a = new HashMap<>();

    @Override
    public void onEnable() {
        this.getCommand(b.a("\u0d4f\u0d4a")).setExecutor(new c(this));
    }

    boolean a(Player var1, double var2) {
        return d.a.getBalance(var1) >= var2;
    }
}

ProGuard

Zmienia nazwy klas, pól i metod. Domyślny; działa z prawie każdym pluginem.

Skidfuscator

Do zmiany nazw dodaje zaciemnianie przepływu sterowania i szyfrowanie napisów.

Maksimum

Najpierw ProGuard, potem Skidfuscator: najmocniejszy, dla pluginów wartych dodatkowego testu.

Pytania z odpowiedziami

Dlaczego niektóre klasy muszą zachować nazwy?

Serwer wczytuje je po nazwie z deskryptora: klasę główną z plugin.yml, punkty wejścia Fabric, mixiny. Zmień ich nazwy, a plugin przestanie się wczytywać. Wszystko inne może zmienić nazwę.

Czy muszę sam pisać reguły zachowania nazw?

Zwykle nie. SunLicense czyta twój jar i sam zachowuje klasę główną, main z Velocity i BungeeCord, punkty wejścia i mixiny Fabric, dostawców usług, obsługę zdarzeń i enumy. To sprawdzanie pokazuje, co zostaje dla ciebie, np. bootstrapper Paper.

Jakich zaciemniaczy używa SunLicense?

ProGuard (domyślny), yGuard i Skidfuscator, który dodaje zaciemnianie przepływu sterowania i szyfrowanie napisów, albo Maksimum, które uruchamia ProGuard, a potem Skidfuscator. Dostajesz plik mapowania, żeby czytać własne stack trace'y.

Czy mój deskryptor jest wysyłany?

Nie. Sprawdzanie odczytuje go w twojej przeglądarce; nic nie jest wysyłane.

Ile to kosztuje?

Plan Free obejmuje 3 zaciemniania miesięcznie oraz klucze licencji i limity urządzeń dla tego samego pluginu. Lite i Standard obejmują więcej uruchomień.

Przeczytaj przewodnik po zaciemnianiu

Więcej darmowych narzędzi