SunLicenseВойти
Для разработчиков плагинов Minecraft

Ваш плагин Minecraft, только на платящих серверах.

Ключ в каждом jar, лимит серверов на каждой лицензии.

Создать бесплатный аккаунт

Тариф Free · Без банковской карты · Готово за минуты

Пишете код с ИИ-агентом? Вставьте один промпт
  • JavaJava
  • Paper
  • Velocity
  • BuiltByBit
  • SpigotMC
  • Voxel Shop
  • Tebex
  • Discord
Что вы получаете

Создано под то, как вы продаёте.

Ключ внутри jar

Плейсхолдеры BuiltByBit и Voxel Shop вписывают его сами.

%%__SUNLICENSE__%%

Серверы на лицензию

1, 2 или 10 серверов на ключ.

TOO_MANY_MACHINES

Возврат отключает доступ

Возвраты в Voxel Shop и Tebex отзывают ключ.

Никогда не роняет серверы

Шаблоны продолжают работать, если SunLicense недоступен.

Роли покупателей в Discord

Активация даёт роль; отзыв её снимает.

/claim

Sentinel находит утечку

Отмечает ключи на слишком многих серверах.

Любой тариф
Как работает

Готово до следующего релиза.

  1. 1Создать бесплатный аккаунт
  2. 2Добавьте плейсхолдер магазина
  3. 3Одна проверка в onEnable
MyPlugin.java
// BuiltByBit or Voxel Shop writes the buyer's key here
private static final String LICENSE_KEY = "%%__SUNLICENSE__%%";

@Override
public void onEnable() {
    SunLicense client = new SunLicense.Builder()
            .baseUrl("https://api.sunlicense.com")
            .token(API_KEY)          // slk_..., can only validate
            .build();
    getServer().getScheduler().runTaskAsynchronously(this, () -> {
        if (!client.validate(LICENSE_KEY, Map.of("host", serverId())).isValid()) {
            getLogger().severe("License denied, disabling.");
            getServer().getScheduler().runTask(this,
                    () -> getServer().getPluginManager().disablePlugin(this));
        }
    });
}
Вопросы и ответы

Вопросы и ответы.

Как защитить мой плагин Minecraft от утечек?

Никакая проверка не остановит того, кто твёрдо решил отредактировать jar. Работает ключ на каждого покупателя: BuiltByBit и Voxel Shop вписывают его в jar при скачивании, так что утёкший jar несёт ключ того, кто его слил. Отзовите эту одну лицензию, и все копии jar остановятся при следующей проверке, а серверы остальных покупателей продолжат работать.

Это работает с BuiltByBit, премиум-ресурсами SpigotMC и Tebex?

Да. Плейсхолдер External license key от BuiltByBit и плейсхолдер External API от Voxel Shop вписывают ключ каждого покупателя в загрузку. На SpigotMC ваш плагин обменивает ID покупателя, который подставляет SpigotMC, на ключ этого покупателя. Tebex выдаёт ключ при каждом платеже. BuiltByBit и SpigotMC не сообщают о возвратах, так что покупателей, получивших возврат, вы отзываете сами.

Как ограничить мой плагин одним сервером на покупку?

Задайте в политике 1 устройство и отправляйте стабильный ID сервера, как это делает шаблон для Paper, или задайте лимит по IP: каждый новый адрес занимает слот, а адрес, не использовавшийся 30 дней, освобождается сам. Когда покупатель меняет хостинг, он может освободить старый слот в клиентском портале (Lite и Standard), или вы освободите его на странице лицензии.

Уронит ли мой плагин серверы, если SunLicense недоступен?

Только не с шаблонами. Они не считают отсутствие ответа отказом: используют подписанный офлайн-файл лицензии, если он есть у покупателя, а иначе продолжают работать и повторяют попытку каждые 10 минут. Отключает плагин только настоящий отказ, например отозванный или неизвестный ключ.

Защитите следующий релиз.

  • Тариф Free
  • Без банковской карты
  • Отмена в любой момент