Skip to content

Commit d3ad5af

Browse files
committed
Update files like in microtus main
1 parent 99cc6da commit d3ad5af

17 files changed

+479
-333
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
* @OneLiteFeatherNET/core-team
2+
/.github/CODEOWNERS @OneLiteFeatherNET/core-team

.github/CONTRIBUTING.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
1-
## How to contribute to Minestom
2-
#### **Did you find a bug?**
3-
* Open a new GitHub issue if it's not already reported.
1+
Contributing to Microtus
2+
========================
43

5-
* Explain it clearly, with steps (or code) to reproduce it.
4+
We (the Microtus team) would be very glad if you want to contribute to the project.
5+
The process to contribute requires some guidelines that you need to follow.
6+
These help us to improve the project and maintain a consistent style for each contributor
67

7-
#### **Did you write some code that fixes a bug?**
8-
* Open a new GitHub pull-request with the commits if it hasn't already been proposed.
8+
## Use a Personal Fork and not an Organization
99

10-
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
10+
If you want to contribute to Microtus, please fork the repository to your personal account and not to an organization.
11+
This is because GitHub does not allow to push as maintainer of our fork into a repository from an organization to another organization.
12+
If you fork the repository to an organization, you can open a pr, but we want to accept it.
1113

12-
#### **Do you intend to add a new feature or change an existing one?**
13-
* Do not open a pull-request on GitHub until you have collected positive feedback about the change from a maintainer.
14+
We much prefer to have PRs show as merged, so please do not use repositories
15+
on organizations for PRs.
1416

15-
#### **Do you have questions about the source code?**
16-
* Ask any question about how to use Minestom in the GitHub issues section or the community portals.
17+
See <https://github.com/isaacs/github/issues/1681> for more information on the
18+
issue.
1719

18-
#### **Do you want to contribute to the Minestom documentation?**
19-
* 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.
20+
## Requirements
2021

21-
## General Contribution Rules
22-
* By contributing to the Minestom project your code/contribution will be licensed under the [Apache Version 2.0](../LICENSE) license.
22+
To get started with the contributing of change, you will need some additional software.
23+
Most of them can be obtained in (most) package managers on different platforms.
2324

24-
Minestom is a community project. We encourage you to contribute! :)
25-
26-
Thanks! :heart: :heart: :heart:
27-
28-
~Minestom Community
25+
- `git` - Version control system
26+
- A Java 21 or later JDK:
27+
- [Adoptium](https://adoptium.net/) has builds for most operating systems

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Report a bug
2+
description: You found a bug? Let us know!
3+
title: "[Bug]: "
4+
labels: [ "type: Bug" ]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for reporting a bug to Microtus!
10+
Please fill out the information below to help us understand the issue.
11+
- type: markdown
12+
attributes:
13+
value: |
14+
Before filling in the form fields, please consider the following:
15+
- Ensure that you are using the latest version of Microtus.
16+
- Search for existing issues in the [issue tracker](https://github.com/OneLiteFeatherNET/Microtus/issues)
17+
- type: textarea
18+
attributes:
19+
label: Describe the bug
20+
description: |
21+
A clear and concise description of what the bug is.
22+
If you have a screenshot of the bug, please attach it below.
23+
validations:
24+
required: true
25+
- type: textarea
26+
attributes:
27+
label: Steps to reproduce the bug
28+
description: Tell us exactly how to reproduce the bug you are experiencing
29+
placeholder: |
30+
1. ...
31+
2. ...
32+
3. ...
33+
validations:
34+
required: true
35+
- type: textarea
36+
attributes:
37+
label: Code sample
38+
description: |
39+
Please create a reproducible sample to show us the bug in action and attach it below between the lines with the backticks.
40+
This helps us to verify that the bug is valid and prevents us from having to ask you for a sample later.
41+
42+
Without this we will unlikely be able to progress on the issue, and because of that
43+
we regretfully will have to close it.
44+
45+
**Note**: Please do not upload screenshots of text. Instead, use code blocks
46+
or the above mentioned ways to upload your code sample.
47+
value: |
48+
```java
49+
[Paste your code here]
50+
```
51+
validations:
52+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: OneLiteFeather Discord
4+
url: https://discord.onelitefeather.net/
5+
about: Please join our Discord server if you have any questions or concerns.
6+
icon: https://github.com/simple-icons/simple-icons/blob/develop/icons/discord.svg
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Feature Request
2+
description: Suggest an idea for this project
3+
title: "[Feature]: "
4+
labels: [ "type: feature" ]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for suggesting an idea to make Microtus better!
10+
Please fill out the information below to help us understand your idea.
11+
- type: textarea
12+
attributes:
13+
label: Is your feature request related to a problem?
14+
description: Please give some context for this request. Why do you want it added?
15+
validations:
16+
required: true
17+
- type: textarea
18+
attributes:
19+
label: Describe the solution you'd like
20+
description: Give us a clear description of what you want
21+
validations:
22+
required: true
23+
- type: textarea
24+
attributes:
25+
label: Describe alternatives you've considered
26+
description: A clear and concise description of any alternative solutions or features you've considered.
27+
validations:
28+
required: false
29+
- type: markdown
30+
attributes:
31+
value: |
32+
Before submitting your feature request, please make sure you have done the following:
33+
- [ ] Searched for existing feature requests
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Performance Problem
2+
description: Report a performance problem which is related to Microtus
3+
labels: [ "type: needs triage", "type: performance" ]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Before creating an issue regarding to the performance, please reach out for support on our [Discord](https://discord.onelitefeather.net/)
9+
or in the [Discussions](https://github.com/OneLiteFeatherNET/Microtus/discussions)!
10+
11+
**Please be aware: Performance issues can sometimes depend on your specific implementation and not on Microtus itself. If the situation is clear and it's not a problem with the project, we will close the issue without any comment.**
12+
- type: input
13+
attributes:
14+
label: Used Microtus version
15+
description: Which version of Microtus are you using?
16+
placeholder: 1.0.0
17+
validations:
18+
required: true
19+
- type: textarea
20+
attributes:
21+
label: Describe the performance problem
22+
description: If applicable, please describe your issue.
23+
validations:
24+
required: false
25+
- type: textarea
26+
attributes:
27+
label: Other
28+
description: |
29+
Please include other helpful links below.
30+
The more information we receive, the quicker and more effective we can be at finding the solution to the issue.
31+
validations:
32+
required: false
33+
- type: markdown
34+
attributes:
35+
value: |
36+
Before submitting your issue, please make sure you have done the following:
37+
38+
1. You are running the latest version of Microtus from [Release page](https://github.com/OneLiteFeatherNET/Microtus/releases)
39+
2. You searched for and ensured there isn't already an open issue regarding this
40+
3. Your version of Minecraft is supported by Microtus

.github/README.md

Lines changed: 91 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,114 @@
1-
![banner](banner_dark.png#gh-dark-mode-only)
2-
![banner](banner_light.png#gh-light-mode-only)
1+
# Microtus
32

4-
# Minestom
5-
6-
[![license](https://img.shields.io/github/license/Minestom/Minestom?style=for-the-badge&color=b2204c)](../LICENSE)
7-
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=for-the-badge)](https://github.com/RichardLitt/standard-readme)
8-
[![javadocs](https://img.shields.io/badge/documentation-javadocs-4d7a97?style=for-the-badge)](https://javadoc.minestom.net)
3+
[![license](https://img.shields.io/github/license/OneLiteFeatherNET/Microtus?style=for-the-badge&color=b2204c)](../LICENSE)
94
[![wiki](https://img.shields.io/badge/documentation-wiki-74aad6?style=for-the-badge)](https://wiki.minestom.net/)
10-
[![discord-banner](https://img.shields.io/discord/706185253441634317?label=discord&style=for-the-badge&color=7289da)](https://discord.gg/pkFRvqB)
11-
12-
Minestom is an open-source library that enables developers to create their own Minecraft server software, without any code from Mojang.
135

14-
The main difference between Mojang's vanilla server and a minestom-based server, is that ours does not contain any features by default!
15-
However, we have a complete API which is designed to allow you to make anything possible, with ease.
6+
[Microtus](https://en.wikipedia.org/wiki/Microtus) is a fork of the original minestom but patch based.
167

17-
This is a developer API not meant to be used by end-users. Replacing Bukkit/Forge/Sponge with this **will not work** since we do not implement any of their APIs.
8+
Our projects get names of animals but in latin.
189

19-
# Table of contents
20-
- [Install](#install)
21-
- [Usage](#usage)
22-
- [Why Minestom?](#why-minestom)
23-
- [Advantages & Disadvantages](#advantages-and-disadvantages)
24-
- [API](#api)
25-
- [Credits](#credits)
26-
- [Contributing](#contributing)
27-
- [License](#license)
10+
Discord for discussion: [OneLiteFeather.net](https://discord.onelitefeather.net)
2811

29-
# Install
30-
Minestom is not installed like Bukkit/Forge/Sponge.
31-
As Minestom is a Java library, it must be loaded the same way any other Java library may be loaded.
32-
This means you need to add Minestom as a dependency, add your code and compile by yourself.
12+
## Our goals
13+
- Include patches from open pull requests on minestom repository
14+
- Fixes issues from original minestom repository
15+
- Make useful decisions
16+
- Include new features
17+
- Try to stay updated with original minecraft cycle
18+
- Release cycle of 2 weeks
3319

34-
Minestom is available on [Maven Central](https://mvnrepository.com/artifact/net.minestom/minestom-snapshots),
35-
and can be installed like the following (Gradle/Groovy):
20+
## Project contribution:
3621

37-
```groovy
38-
repositories {
39-
mavenCentral()
40-
maven { url 'https://jitpack.io' }
41-
}
22+
For details how you can contribute to the project please read our [Contributing](CONTRIBUTING.md).
4223

43-
dependencies {
44-
implementation 'net.minestom:minestom-snapshots:<???>'
45-
}
46-
```
24+
## Usage of Jitpack:
4725

48-
# Usage
49-
An example of how to use the Minestom library is available [here](/demo).
50-
Alternatively you can check the official [wiki](https://wiki.minestom.net/) or the [javadocs](https://minestom.github.io/Minestom/).
26+
Some of the project's dependencies are only available in the Jitpack repository.
27+
To ensure a seamless experience, kindly include this repository in your project configuration to prevent any potential issues.
5128

52-
# Why Minestom?
53-
Minecraft has 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.
54-
Our target audience is those who want to make a server that benefits little from vanilla features. e.g. creative, kitpvp.
55-
The goal is to offer more performance for those who need it.
56-
In other words, it makes sense to use Minestom when it takes less time to implement every missing vanilla feature you want than removing every vanilla feature that will slow you down.
57-
58-
# Advantages and Disadvantages
59-
Minestom isn't perfect, our choices make it much better for some cases, worse for some others.
60-
61-
## Advantages
62-
* Remove the overhead of vanilla features
63-
* Multi-threaded
64-
* Instance system (Collections of blocks and entities) which is much more scalable than worlds
65-
* Open-source
66-
* Modern API
67-
* No more legacy NMS
29+
```kt
30+
maven("https://jitpack.io")
31+
```
6832

69-
## Disadvantages
70-
* Does not work with Bukkit/Forge/Sponge plugins or mods
71-
* Does not work with older clients (using a proxy with ViaBackwards is possible)
72-
* Bad for those who want a vanilla experience
73-
* Longer to develop something playable
74-
* Multi-threaded environments need extra consideration
7533

76-
# API
77-
Even if we do not include anything by default in the game, we simplify the way you add them, here is a preview.
34+
## Usage of microtus
35+
Since 23.07.2023 we are now official on the maven central for releases and snapshots.
36+
To use Microtus in your projects you need:
37+
<details>
38+
<summary>Snapshot</summary>
7839

79-
## Instances
80-
It is our major concept, worlds are great for survival with friends, but when it scales up it can become unmanageable. The best examples can be found in Skyblock or minigames, not being able to separate each part properly and being forced to save everything in files, not to say the overhead caused by unnecessary data contained in them. Instances are a lightweight solution to it, being able to have every chunk in memory only, copying and sending it to another player in no time, with custom serialization and much more...
40+
Please replace the `<version>` with the right one. You can find the versions here: [Central](https://central.sonatype.com/search?q=microtus)
41+
For example: `1.1.0-SNAPSHOT+9284d26`
8142

82-
Being able to create instances directly on the go is a must-have, we believe it can push many more projects forward.
43+
### Repositories Section
44+
```kt
45+
repositories {
46+
mavenCentral()
47+
maven("https://oss.sonatype.org/content/repositories/snapshots")
48+
}
49+
```
8350

84-
Instances also come with performance benefits, unlike some others which will be fully single-threaded or maybe using one thread per world we are using a set number of threads (pool) to manage all chunks independently from instances, meaning using more CPU power.
51+
### Dependency Section
52+
```kt
53+
dependencies {
54+
implementation("net.onelitefeather.microtus:Minestom:1.1.3-SNAPSHOT")
55+
testImplementation("net.onelitefeather.microtus.testing:testing:1.1.3-SNAPSHOT")
56+
}
57+
```
58+
</details>
8559

86-
## Blocks
87-
Minestom by default does not know what is a chest, you will have to tell him that it opens an inventory.
88-
Every "special blocks" (which aren't only visual) need a specialized handler. After applying this handler, you have a block that can be placed anywhere simply.
89-
However, all blocks are visually there, they just won't have interaction by default.
60+
<details>
61+
<summary>Release</summary>
9062

91-
## Entities
92-
The terms "passive" or "aggressive" monsters do not exist, nobody stops you from making a flying chicken rushing into any players coming too close, doing so with NMS is a real mess because of obfuscation and the large inheritance.
63+
Please replace the `<version>` with the right one. You can find the versions here: [Central](https://central.sonatype.com/search?q=microtus)
64+
For example: `1.1.0`
65+
### Dependency Section
66+
```kt
67+
dependencies {
68+
implementation("net.onelitefeather.microtus:Minestom:1.1.3")
69+
testImplementation("net.onelitefeather.microtus.testing:testing:1.1.3")
70+
}
71+
```
72+
</details>
73+
74+
## Extension usage
75+
### settings.gradle.kts
76+
Read more about here: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry
77+
```kt
78+
pluginManagement {
79+
repositories {
80+
gradlePluginPortal()
81+
maven("https://maven.pkg.github.com/OneLiteFeatherNET/Microtus") {
82+
credentials {
83+
username = "Your username"
84+
password = "your github token"
85+
}
86+
}
87+
}
88+
}
89+
```
9390

94-
## Inventories
95-
It is a field where Minecraft evolved a lot, inventories are now used a lot as client<->server interface with clickable items and callback, we support these interactions natively without the need of programming your solution.
91+
### build.gradle.kts
92+
```kt
93+
plugins {
94+
id("net.onelitefeather.microtus.extension") version "0.0.1"
95+
}
9696

97-
## Commands
98-
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 designed to use the full potential of args types.
97+
dependencies {
98+
extensionLibrary("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2") // Use the external dependencies function from minestom
99+
}
100+
extension {
101+
authors = listOf("TheMeinerLP")
102+
entrypoint = "net.onelitefeather.microtus.extension.ProjectEntry"
103+
// dependencies = listOf("LuckPerms") // To generate dependencies
104+
// version = "1.0.0" // Normally its use the project version
105+
// name = "Example" // Normally its use the project name
106+
// External dependencies are handled via `extensionLibrary("String")` from gradle
107+
}
108+
```
99109

100-
# Credits
101-
* The [contributors](https://github.com/Minestom/Minestom/graphs/contributors) of the project
102-
* [The Minecraft Coalition](https://wiki.vg/) and [`#mcdevs`](https://github.com/mcdevs) -
103-
protocol and file formats research.
104-
* [The Minecraft Wiki](https://minecraft.wiki) for all their useful info
105-
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html) for their amazing Java profiler
110+
---
106111

107-
# Contributing
108-
See [the contributing file](CONTRIBUTING.md)!
109-
All WIP features are previewed as Draft PRs
112+
[![YourKit-Logo](https://www.yourkit.com/images/yklogo.png)](https://www.yourkit.com/)
110113

111-
# License
112-
This project is licensed under the [Apache License Version 2.0](../LICENSE).
114+
[YourKit](https://www.yourkit.com/), makers of the outstanding java profiler, support open source projects of all kinds with their full featured [Java](https://www.yourkit.com/java/profiler) and [.NET](https://www.yourkit.com/.net/profiler) application profilers. We thank them for granting Microtus an OSS license so that we can make our software the best it can be.

0 commit comments

Comments
 (0)