-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 0d21c78
Showing
101 changed files
with
8,534 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
# User-specific stuff | ||
.idea/ | ||
|
||
*.iml | ||
*.ipr | ||
*.iws | ||
|
||
# IntelliJ | ||
out/ | ||
# mpeltonen/sbt-idea plugin | ||
.idea_modules/ | ||
|
||
# JIRA plugin | ||
atlassian-ide-plugin.xml | ||
|
||
# Compiled class file | ||
*.class | ||
|
||
# Log file | ||
*.log | ||
|
||
# BlueJ files | ||
*.ctxt | ||
|
||
# Package Files # | ||
*.jar | ||
*.war | ||
*.nar | ||
*.ear | ||
*.zip | ||
*.tar.gz | ||
*.rar | ||
|
||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml | ||
hs_err_pid* | ||
|
||
*~ | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
|
||
# .nfs files are created when an open file is removed but is still being accessed | ||
.nfs* | ||
|
||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
# Windows thumbnail cache files | ||
Thumbs.db | ||
Thumbs.db:encryptable | ||
ehthumbs.db | ||
ehthumbs_vista.db | ||
|
||
# Dump file | ||
*.stackdump | ||
|
||
# Folder config file | ||
[Dd]esktop.ini | ||
|
||
# Recycle Bin used on file shares | ||
$RECYCLE.BIN/ | ||
|
||
# Windows Installer files | ||
*.cab | ||
*.msi | ||
*.msix | ||
*.msm | ||
*.msp | ||
|
||
# Windows shortcuts | ||
*.lnk | ||
|
||
.gradle | ||
build/ | ||
|
||
# Ignore Gradle GUI config | ||
gradle-app.setting | ||
|
||
# Cache of project | ||
.gradletasknamecache | ||
|
||
**/build/ | ||
|
||
# Common working directory | ||
plugin/run/ | ||
|
||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) | ||
!gradle-wrapper.jar | ||
/gradle/ | ||
editor/run/ | ||
/editor/run/ | ||
editor/run | ||
/editor/run | ||
/.kotlin/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Instantiated, the better dungeon solution for Minecraft | ||
|
||
Instantiated is a plugin designed to enhance gameplay by allowing the creation and customization of dungeons. | ||
|
||
Utilizing libraries like WorldEdit, Instantiated provides a robust and flexible platform for instantiating dungeons with custom features such as custom mob spawning, interactive doors, and an intuitive dungeon edit mode. | ||
|
||
Mythic mobs is supported, with the mythic-mobs.yml config file. Just add the dungeon mob identifier from in game to the map, with the value being the mythic mob type. | ||
|
||
## Dependencies | ||
|
||
1. Paper | ||
> Needed for their library loading at runtime for compatibility with other plugins that may make use of the Kotlin Runtime in Minecraft plugin development. | ||
> Various Server Optimization | ||
2. FastAsynchronousWorldEdit | ||
> Needed for fast, efficient, and reliable block changes. Think of all the block changes! | ||
## Features | ||
Instantiated boasts many features, but of course not everything can be done. If you have a request or suggestion, do that in the [discord](https://discord.gg/XggaTq7kjR) | ||
|
||
1. Edit mode | ||
|
||
> With edit mode, you can customize nearly every facet of a dungeon, while the server is running. Now, some things cannot be done for performance or reliability reasons. In these sparse cases, changes must be done through the dungeons.json file. | ||
2. Supreme error handling | ||
|
||
> I like to think that Instantiated has quite nice error handling, making use of StackFrames to deduce the cause of nearly any error. This includes data syntax in the dungeons.json. So don't worry about changing things in there as long as you are ready to read the error and fix it! | ||
## TODO (what i want to add) | ||
|
||
* Procedural dungeons | ||
> Already some backend set up for this, the main issue is actually generating the rooms. | ||
> Stuff like where rooms connect to each other, how to handle different floors, etc. | ||
* A client mod to replace the server-side editing | ||
> There is a start made for this, but it is quite the endeavor | ||
> This will really make configuring dungeons super seamless and FAST | ||
> Think like axiom 🤤 | ||
* SQL support, if there is interest (and reason) | ||
|
||
* Multi world / server modes | ||
> Modes to support multi-world setups, like giving each dungeon its own world for instancing, or each dungeon having its own server. Will look further into these options if interest permits. | ||
* Really, really good documentation (and API) | ||
> Its only a matter of time to get remarkable documentation. If I could get just one dedicated person to build up the foundation of the documentation, never again would I have to worry about something not being documented. | ||
> This also means I want good javadocs, which can be hard. | ||
* Better in-house mob support | ||
> Mythic support as is, is not terrible. But without Mythic Mobs, the support is abyssmal. I want to really make Instantiated a plugin capable of handling its own "custom" mobs. | ||
* ### And much more i cannot think of! | ||
> Please add more things to this list by making a post in `#suggestions` in the [discord](https://discord.gg/XggaTq7kjR) | ||
## Showcase | ||
![showcase](./assets/image1.png) | ||
|
||
## Documentation | ||
|
||
[documentation is here](devmunky.github.io/Instantiated-Public/) | ||
|
||
## Support | ||
Support is provided in the [discord](https://discord.gg/XggaTq7kjR), specifically in the `#create-ticket` channel. | ||
|
||
## Credits | ||
##### Created and maintained by DevMunky | ||
##### Thanks for the help Faceguy | ||
##### Thank you ACraftingFish |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
theme: jekyll-theme-cayman | ||
show_downloads: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
<!DOCTYPE html> | ||
<html lang="{{ site.lang | default: "en-US" }}"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
|
||
{% seo %} | ||
<link rel="preconnect" href="https://fonts.gstatic.com"> | ||
<link rel="preload" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" as="style" type="text/css" crossorigin> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<meta name="theme-color" content="#157878"> | ||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> | ||
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}"> | ||
{% include head-custom.html %} | ||
</head> | ||
<body> | ||
<a id="skip-to-content" href="#content">Skip to the content.</a> | ||
|
||
<header class="page-header" role="banner"> | ||
<h1 class="project-name" href="https://devmunky.github.io/Instantiated-Public/">Instantiated</h1> | ||
<h2 class="project-tagline">The better dungeon solution for Minecraft</h2> | ||
{% if site.github.is_project_page %} | ||
<a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a> | ||
{% endif %} | ||
{% if site.show_downloads %} | ||
<a href="https://discord.gg/XggaTq7kjR" class="btn">Download latest release</a> | ||
{% endif %} | ||
</header> | ||
|
||
<main id="content" class="main-content" role="main"> | ||
{{ content }} | ||
|
||
<footer class="site-footer"> | ||
{% if site.github.is_project_page %} | ||
<span class="site-footer-owner"><a href="{{ site.github.repository_url }}">{{ site.github.repository_name }}</a> is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a>.</span> | ||
{% endif %} | ||
</footer> | ||
</main> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# What is Instantiated? | ||
|
||
Instantiated is the newest competitor in the Minecraft dungeon plugin space. | ||
|
||
I made Instantiated because I noticed there were not a lot of options for server owners who wanted custom instanced dungeons for multiple players. With that, I want Instantiated to be able to cater to as many servers as possible. | ||
|
||
So, here is what you can do with Instantiated. | ||
|
||
## The Do | ||
|
||
- ### Instance dungeons for groups of players | ||
|
||
Create an instance of a dungeon for a given group of players, that is completely independent of any other instance, and can be updated at any time with the in-house [edit mode](../usage/editmode.md#the-edit-mode) | ||
|
||
This is achieved by having a master `dungeon format` that all instances use to create their instanced counterparts. | ||
|
||
For example, if you have a dungeon called `prison` in `dungeons.json` (the data file for Instantiated), any instance of `prison` will use the same format that gets loaded from file. That also means that when the dungeon format changes, any future instances will inherit those changes. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# The Instantiated API | ||
> As with any API, the maintainers of Instantiated hope that the API is as logical and accessible as possible. If you feel there is a way to improve the API or functionality of Instantiated, please reach out in our [discord](https://discord.gg/XggaTq7kjR). | ||
The API begins with the entry point, `InstantiatedAPI`. You can access the it with this call: | ||
```java | ||
InstantiatedAPI.getAPI() | ||
``` | ||
|
||
The members of `InstantiatedAPI` look like this: | ||
```java | ||
public interface InstantiatedAPI { | ||
DungeonManager getDungeonManager(); | ||
Logger getLogger(); | ||
PluginState getState(); | ||
void loadData(); | ||
void saveData(); | ||
boolean debug(); | ||
void reload(boolean save); | ||
boolean isMythicSupportEnabled(); | ||
} | ||
``` | ||
> Please let us know if you want something exposed in this class! | ||
The `DungeonManager` does the bulk of the instancing work. It handles starting new instances, caching instances for later use, and removing instances. It also handles the `Dungeon World`, which is almost an instanced world dedicated to holding dungeons inside. | ||
> Currently, it is only possible to have one dedicated dungeon world. In the future, this may change to support different server configurations. | ||
The dungeon world is deleted and recreated upon server stop and start respectively, so **any changes made in this world will be lost**. Make sure to use a dungeon to create instances, and not manually building something! | ||
|
||
The metadata keys that Instantiated also occasionally uses are exposed within the DungeonManager interface as well, if you were curious. | ||
|
||
Here is the `DungeonManager` interface: | ||
```java | ||
public interface DungeonManager { | ||
boolean startDungeon(String identifier, boolean force, Player... players); | ||
void cacheDungeon(String identifier); | ||
void createDungeonWorld(); | ||
Optional<InstancedDungeon> getCurrentDungeon(UUID player); | ||
void cleanup(); | ||
World getDungeonWorld(); | ||
Map<IdentifiableKey, DungeonFormat> getDungeons(); | ||
Stream<InstancedDungeon> getInstancedDungeons(); | ||
} | ||
``` | ||
|
||
Instantiated gives server owners the option to create a number of cached instances at the start of the server, those of which will persist. In other words, a cached instance will cache another instance following its scheduled removal for any reason other than the plugin disabling. | ||
|
||
> "cache another instance" here just means that certain things are reset to prepare for another group to start the dungeon | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Welcome to the Instantiated documentation | ||
|
||
## [Commands](./usage/commands.md#commands) | ||
## [Edit Mode](./usage/editmode.md#the-edit-mode) | ||
## [Discord](https://discord.gg/XggaTq7kjR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Commands | ||
/instantiated:dungeons | ||
/instantiated:inst | ||
/instantiated:instantiated | ||
|
||
All commands have syntax highlighting and error handling | ||
|
||
Any branches without a description implies that there are more arguments needed before executing the command | ||
|
||
- ### Command root `dungeons`, `inst`, or `instantiated` | ||
- ### literal argument `reload` | ||
> Reloads the plugin data and configuration straight from file, without saving! | ||
- ### literal argument `save` | ||
|
||
> Saves plugin data (does not affect configuration) as is | ||
- ### literal argument `start` | ||
- multiple player argument `players` | ||
- dungeon argument `dungeon` | ||
- boolean argument `force-create` | ||
|
||
> Starts a dungeon containing all of the given players | ||
- ### literal argument `leave` | ||
|
||
> forces the sender of the command to leave the current dungeon, if in one | ||
- multiple player argument `players` | ||
|
||
> forces the given players to leave their current dungeon, if in one | ||
- ### literal argument `edit` | ||
|
||
> puts the sender into [edit mode](../usage/editmode.md#the-edit-mode). This means seeing room and door boundaries, as well as mob spawn locations. Your inventory is also swapped out for the dedicated edit tools. | ||
- dungeon argument `dungeon` | ||
- literal argument `static` *(only exists to make adding more dungeon types easier)* | ||
- literal argument `set-schematic` | ||
- schematic argument `schematic` | ||
|
||
> sets the schematic of the given dungeon | ||
- literal argument `set-spawn` | ||
- location argument `new-location` | ||
|
||
> sets the spawn location of the given dungeon | ||
- literal argument `add-room` | ||
- text argument `room-id` | ||
|
||
> adds a blank room with 5 length, 5 width, and 5 height. Further configuration can be done in dungeons.json or with the [ingame edit tool](../usage/editmode.md#the-edit-mode) | ||
- literal argument `remove-room` | ||
- text argument `room-id` | ||
|
||
> removes the room with the matching room-id |
Oops, something went wrong.