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.
Download Links
Ore на кожній сторінці проекту надає кнопку завантаження, яка автоматично вибере найновішу версію. Якщо ви хочете вставити додаткові посилання для завантаження, всі посилання повинні вказувати на файли, розміщені на Ore. Крім того, ви можете вставити посилання на незатверджені сторінки файлів, не прямі посилання на файли, на Ore, але такі посилання не можуть бути більш помітними, ніж інші. Крім того, ви не можете намагатися обійти будь-які попередження плагіна на Ore, включаючи попередження, які інформують користувача про те, що проект ще не розглянуто.
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 або дозволів неприйнятні.