diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 000000000..b9715dadb --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,28 @@ +## How to contribute to Minestom +#### **Did you find a bug?** +* Open a new GitHub issue if it's not already reported. + +* Use the relevant bug report template to create the issue. + +#### **Did you write some code that fixes a bug?** +* Open a new GitHub pull-request with the commits if it hasn't already been proposed. + +* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. + +#### **Do you intend to add a new feature or change an existing one?** +* Do not open a pull-request on GitHub until you have collected positive feedback about the change from a maintainer. + +#### **Do you have questions about the source code?** +* Ask any question about how to use Minestom in the GitHub issues section or the community portals. + +#### **Do you want to contribute to the Minestom documentation?** +* Feel free to do so! Just make sure to conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification when editing the README.md. + +## General Contribution Rules +* By contributing to the Minestom project your code/contribution will be licensed under the [Apache Version 2.0](../LICENSE) license. + +Minestom is a community project. We encourage you to contribute! :) + +Thanks! :heart: :heart: :heart: + +~Minestom Community \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md b/.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md new file mode 100644 index 000000000..9c4f21d6c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md @@ -0,0 +1,22 @@ +--- +name: Bug report +labels: Bug +about: Use this to report unexpected behavior (bugs and errors). +--- +### What is the current behavior? + + +### What is the expected behavior? + + +### What steps will reproduce the problem? + + +### What operating system and java version is being used? + + +### If there is an exception, use pastebin/hastebin (NB: no expiry date!) to send the stacktrace + + +### Additional information / Possible thoughts on why this bug is happening + diff --git a/.github/ISSUE_TEMPLATE/FEATURE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/FEATURE_TEMPLATE.md new file mode 100644 index 000000000..1a3588f66 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE_TEMPLATE.md @@ -0,0 +1,15 @@ +--- +name: Feature Request +labels: Enhancement +about: Use this to request an addition (feature). +--- +### What would you like added/changed? + + +### Why do you think this is a good addition/alteration? + + +### Why do you want this to be added? + + +### Additional Information diff --git a/.github/ISSUE_TEMPLATE/QUESTION_TEMPLATE.md b/.github/ISSUE_TEMPLATE/QUESTION_TEMPLATE.md new file mode 100644 index 000000000..ef4781501 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/QUESTION_TEMPLATE.md @@ -0,0 +1,7 @@ +--- +name: Question +labels: Question +about: Use this to ask a question. +--- +### Your Question: + diff --git a/README.md b/.github/README.md similarity index 64% rename from README.md rename to .github/README.md index a85cd9d04..7a9270f8f 100644 --- a/README.md +++ b/.github/README.md @@ -1,9 +1,33 @@ -# About Minestom -Minestom is an alternative to the popular minecraft server API named Bukkit/Spigot. The main difference is that our implementation of Notchian server does not contain any features by default! However, we have a complete API which allows you to make anything possible with current spigot's plugins. +# Minestom +![banner](banner.png) -All planned features are listed on [trello](https://trello.com/b/4ysvj5hT/minestom) +[![license](https://img.shields.io/github/license/Minestom/Minestom.svg)](../LICENSE) +[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![discord-banner](https://discordapp.com/api/guilds/706185253441634317/widget.png?style=banner2)](https://discord.gg/pkFRvqB) -An example of how to use the Minestom library is available [here](src/main/java/fr/themode/demo) +Minestom is an alternative to the popular Minecraft server API called Bukkit. + + +The main difference is that our implementation of the Notchian server does not contain any features by default! +However, we have a complete API which allows you to make anything possible with current spigot plugins. + +# Table of contents +- [Install](#install) +- [Usage](#usage) +- [Why Minestom?](#why-minestom) +- [Advantages & Disadvantages](#advantages-and-disadvantages) +- [API](#api) +- [Contributing](#contributing) +- [License](#license) + +# Install +Minestom is similar to Bukkit in the fact that it is not a standlone program, it must be expanded upon. +It is the base for interfacing between the server and client. +Our own expanded version for Vanilla can be found [here](https://github.com/Minestom/VanillaReimplementation). + +# Usage +An example of how to use the Minestom library is available [here](src/main/java/fr/themode/demo). +You can also check out the vanilla implementation of Minestom [here](https://github.com/Minestom/VanillaReimplementation). # Why Minestom? Minecraft evolved a lot since its release, most of the servers today do not take advantage of vanilla features and even have to struggle because of them. Our target audience is those who want to make a completely different server compared to default Minecraft gamemode such as survival or creative building. @@ -11,7 +35,26 @@ The goal is to offer more performance for those who need it, Minecraft being sin In other words, it makes sense to use Minestom when it takes less time to implement everything you want than removing everything you don't need. -# API features +# Advantages and Disadvantages +Minestom isn't perfect, our choices make it much better for some cases, worse for some others. + +## Advantages +* Remove the overhead of vanilla features +* Multi-threaded (Chunks & Entities) +* 100% Thread-Safe +* Instance system which is much more scalable than worlds +* Open-source +* Modern API +* No more disgusting NMS + +## Disadvantages +* Does not work with Bukkit/Spigot plugins +* Does not work with older clients +* Bad for those who want a vanilla experience +* Longer to develop something playable +* Multi-threaded environments are prone to complications + +# API Even if we do not include anything by default in the game, we simplify the way you add them, here is a preview. ## Instances @@ -36,21 +79,11 @@ It is a field where Minecraft evolved a lot, inventories are now used a lot as c ## Commands Commands are the simplest way of communication between clients and server. Since 1.13 Minecraft has incorporated a new library denominated "Brigadier", we then integrated an API meant to use the full potential of args types. -# Pros & Cons -Minestom isn't perfect, our choices make it much better for some cases, worse for some others. +# Contributing +See [the contributing file](CONTRIBUTING.md)! +All planned features are listed on [Trello](https://trello.com/b/4ysvj5hT/minestom) + +# License +This project is licensed under the [Apache License Version 2.0](../LICENSE). -## Pros -* Remove the overhead of vanilla features -* Multi-threaded (Chunks & Entities) -* 100% Thread-Safe -* Instance system which is much more scalable than worlds -* Open-source -* Modern API -* No more disgusting NMS -## Cons -* Does not work with bukkit plugins -* Does not work with older clients -* Bad for those who want vanilla experience -* Longer to obtain something playable -* Multi-threaded environments are prone to complications diff --git a/.github/banner.png b/.github/banner.png new file mode 100644 index 000000000..fb1758ac6 Binary files /dev/null and b/.github/banner.png differ