Ore Plugin Submission Guidelines

Попередження

This document refers to an outdated SpongeAPI version and is no longer actively maintained. The policies, guidelines, and some links have changed. Please refer to the latest version of the documentation instead.

Welcome to the Ore submission guidelines. This document provides an outline of our expectations for both project and file submissions.

Remember that these are just guidelines and the Ore team, referred to as the “staff” throughout these guidelines, may choose to allow or disallow an action that is not explicitly listed here at our own discretion.


Projects

Submitted projects should meet the following expectations:

Name

Your project’s submitted name should not include a version, tagline, or other description. The name should be unique and original and must not have a name implying it is a Sponge project (e.g. SpongeWarp is not allowed, Cool Warps for Sponge is).

Main Documentation Page (Home)

Це перша сторінка, яку бачать під час відвідування вашого проекту. Інформація тут повинна містити опис функцій вашого проекту. Далі, при наявності у вашому плагіні, повинні бути задокументовані на головній сторінці, якщо вони не задокументовані в іншому місці проекту Ore: команди, конфігурація та вузли дозволів. Крім того, нижче подана інформація повинна бути задокументована на головній сторінці, якщо це доречно:

External Connections

Якщо ваш проект використовує веб-API, телефонує на домашній телефон для збирання даних або іншим способом підключаються до системи, зовнішньої по відношенню до сервера, на якому він працює, наявність цієї функції, а також інформація про те, як включити чи відключити її, повинна бути відображена помітно на головній сторінці. Якщо для вашого проекту єдиною метою є використання зовнішньої системи (наприклад, плагін Sponge, який перекладає чат іншими мовами), параметр конфігурації для переключення з’єднання з цією службою не є обов’язковим. Якщо ваш плагін надсилає інформацію (наприклад, список плагінів або дані гравця), зібрана інформація повинна бути вказана на головній сторінці.

Examples of systems that require documentation:

  • Statistics or usage information collection (‘metrics’)

  • Geolocation

  • Translation service

  • Web server that runs on the plugin, serving information to users

  • Server that runs on the plugin, listening to requests from other services

  • IRC/Discord/Telegram/WhatsApp bot or relay

Category

The category you choose should be accurate. Your project should use the narrowest category possible rather than any category that slightly applies. If no category appears accurate, the Miscellaneous category should be used.

Monetization / Advertising

Матеріали не можуть продаватися, а також додаткові функції не можна розблоковувати шляхом платежу. Реклама та інші джерела, що генерують дохід (наприклад, adfly) не дозволяються. Документація може містити посилання на сторінку для пожертвувань на користь супроводжуючому проекту або іншим авторам, як подяка, але на цій сторінці не можуть бути запропоновані додаткові функції або інші плагіни/моди для продажу.

“Cracked” / Offline-mode / online-mode=false Support

Проекти, про які явно вказано, що вони призначені для таких цілей, не допускаються. Деякі проекти, такі як системи аутентифікації, можуть мати функціональність, яка може бути корисною для серверів незалежно від використання сервером аутентифікації Mojang, але вони можуть не сприяти такому додатковому використанню або бути спеціально розробленими для серверів, з уникненням авторизації Mojang. Проекти, призначені для проксі-серверів, що вимагають онлайн-режиму=false, дозволяються, якщо метою їх написання не є полегшення обходу права власності на обліковий запис Minecraft.

EULA

We aim to comply entirely with the Mojang EULA. Any plugins, services, posts, and/or links suspected of violating the EULA may be removed at the discretion of the Sponge Staff or at the request of Mojang AB.

Forks

Forks are permitted, provided they meet all items in the below list. Staff have the final say in what constitutes an accepted fork. Follow the license of the parent project appropriately.

Either:

  • Contain significant changes warranting the creation of a new project. This is to avoid “I changed the message colors in Plugin X and now I claim credit!”, or

  • Continue a plugin that has been abandoned, with proof the author has not been answering messages or has stated the project will no longer be updated.

Acknowledge or credit the past plugin and developers. Essentially, don’t claim it is a new plugin and exclusively your creation.


Files

Files submitted should meet the following expectations:

Obfuscation

A file that utilizes obfuscation will be denied unless it falls under the following exception:

NMS Obfuscation

This only applies for plugins which reference Minecraft or a Forge mod. Examples would be a plugin using Mixins or a plugin which doubles as a Forge mod (hybrid plugin). Provided that the only obfuscated references are to obfuscated source generated using ForgeGradle or VanillaGradle, the plugin is allowed to proceed through the review process.

Core Mods and Mixins: Modification of the Minecraft Base Code

Плагіни та моди, що використовують систему, яка модифікує базовий код Minecraft під час виконання (наприклад, ядерні моди та міксіни), повинні розкривати зміни, внесені в код Minecraft, та аргументацію для них. Плагіни Sponge повинні використовувати Sponge API-інтерфейс, де це можливо. Реалізація Sponge може призвести до технічних обмежень, щоб запобігти застосуванню таких модифікацій за замовчуванням. Файлам не дозволяється пробувати обійти ці обмеження, але вони можуть повідомити користувачеві про те, що розширені функції можна ввімкнути за допомогою параметрів конфігурації, наданих Sponge.

External Connections (Web API, Phoning Home, etc.)

Багато чудових функцій можна записати, якщо звернутися до зовнішних систем. Окрім чіткого задокументування в описі проектів, такі функції повинні бути налаштовуваними та відключеними за замовчуванням. Якщо для вашого проекту єдиною метою є використання зовнішньої системи (наприклад, плагіна Sponge, який перекладає чат іншими мовами), з’єднання з цією системою не повинно бути відключено. Якщо ваш плагін надсилає інформацію (наприклад, список плагінів, дані про гравця або дані карт) до зовнішніх систем, зібрана інформація повинна бути вказана на головній сторінці (див. вище).

Execution of Downloaded Code

Це є небезпека, яку ми не будемо терпіти. Це включає завантаження jar-файлів або клас-файлів, генерацію байт-коду з завантажених джерел та виконання сценаріїв оболонки.

Monetization / Advertising

Усі функціональні можливості вашого плагіна повинні використовуватись без обмежень, і не повинні вимагати наявності ліцензійного ключа. Зовнішні API-інтерфейси, такі як послуги перекладу або геолокації, які потребують плати за функціональність, можуть бути дозволені, але це потрібно обговорити між співробітниками перед схваленням. Плагіни не можуть використовуватися для відображення реклами.

Update Checking

Перевірка наявності оновлень повинна виконуватися за допомогою наданого API Ore. Ваш плагін може зв’язатися не скрізь, Ore спрямує користувачів вашого плагіна на завантаження нових версій. Зверніть увагу, що ця перевірка на оновлення вважається як зовнішнім з’єднанням, яке повинно бути задокументовано та для якого має існувати конфігурація, щоб вимкнути його.

Privilege Granting

Плагіни не повинні надавати або відкликати доступ до функцій певному користувачеві або групі користувачів, визначених розробником плагінів. Включаючи і надання автором самому собі особливого відображуваного імені або дозволу на використання спеціальної команди. Функції, по можливості, слід заблокувати поза межами вузлів дозволів, а не попередньо визначити доступ до них автором. Команди для надання конкретних, попередньо запрограмованих користувачів OP або дозволів неприйнятні.