{"id":15323112,"url":"https://github.com/superioz/moo","last_synced_at":"2025-10-09T10:31:02.980Z","repository":{"id":139674638,"uuid":"89555868","full_name":"Superioz/Moo","owner":"Superioz","description":"A minecraft network communication system based on netty","archived":true,"fork":false,"pushed_at":"2018-11-07T15:22:43.000Z","size":3945,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-12T03:37:20.504Z","etag":null,"topics":["jline","minecraft-network","netty","redis"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Superioz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-27T04:33:32.000Z","updated_at":"2023-01-28T14:50:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"eaf2c377-f789-4ae1-9af6-35087d598858","html_url":"https://github.com/Superioz/Moo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Superioz/Moo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Superioz%2FMoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Superioz%2FMoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Superioz%2FMoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Superioz%2FMoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Superioz","download_url":"https://codeload.github.com/Superioz/Moo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Superioz%2FMoo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001275,"owners_count":26083040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jline","minecraft-network","netty","redis"],"created_at":"2024-10-01T09:19:06.492Z","updated_at":"2025-10-09T10:31:02.975Z","avatar_url":"https://github.com/Superioz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/license-GPLv2-blue.svg)](https://github.com/Superioz/MooProject/blob/master/LICENSE) [![Build Status](https://travis-ci.org/Superioz/MooProject.svg?branch=master)](https://travis-ci.org/Superioz/MooProject) \n[![CircleCI](https://circleci.com/gh/Superioz/MooProject/tree/master.svg?style=shield)](https://circleci.com/gh/Superioz/MooProject/tree/master)\n[![Wiki](https://img.shields.io/badge/wiki-click%20here-%2333bbff.svg)](https://github.com/Superioz/MooProject/wiki) [![Jenkins](https://img.shields.io/badge/jenkins-click%20here-b21a1a.svg)](http://ci.superioz.de:8080/job/MooProject/)\n\n![Logo](/.github/assets/moo_banner_new.png \"Logo\")\n\u003e Logo made by Karumata | Banner mady by [Slickz](https://www.youtube.com/SlickzDE)\n\n# MooProject\nA minecraft network communication system based on [Netty](https://github.com/netty) (Some call it 'Cloud system', which is not quite correct).\n\nThis project was originally written for a minecraft network, but after it went down I decided to share it on Github. So use this on your own responsibility.  \n**If you find any flaws feel free to open up an [Issue](https://github.com/Superioz/MooProject/issues/new) or a [Pull Request](https://github.com/Superioz/MooProject/compare)**  \n**It is recommended to setup this Cloud on an Unix system**\n\n# Getting started\n1. Download the .sh files from the [/scripts](https://github.com/Superioz/MooProject/tree/master/.github/scripts) folder (`Raw` -\u003e `Rightlick` -\u003e `Save site`) and save them inside a folder where you want the program to be installed (e.g.: `/home/minecraft/`).  \n2. Run **install_requirements.sh** to install Redis and MongoDB (you can skip this step if you've already installed them or if you want to install them yourself).\n3. Run **setup_cloud.sh** to create the `/cloud` folder and to download the files from [Jenkins](http://ci.superioz.de:8080/job/MooProject/). (**Note**: This step is **not supported anymore**, therefore you have to compile the source yourself.)\n4. Put the **start_cloud.sh** into the `/cloud` folder and run the script to start the cloud once - It'll fail but now you're able to configure the MongoDB connection inside the `/cloud/configuration/config.yml`.  \nIt could now look like this:\n```JSON\n{\n  \"debug\": false,\n  \"redis-config\": \"redis_config.json\",\n  \"max-ram-usage\": 60,\n  \"netty\": {\n    \"host\": \"localhost\",\n    \"port\": 8000,\n    \"whitelist\": {\n      \"activated\": true,\n      \"ips\": [\n        \"127.0.0.1\"\n      ]\n    }\n  },\n  \"database\": {\n    \"hostname\": \"localhost\",\n    \"database\": \"dbName\",\n    \"port\": 27017,\n    \"user\": \"user\",\n    \"password\": \"password\"\n  }\n}\n```\n5. For configuring the Redis connection go to `redis_config.json`  \nFor further informations about the `redis_config.json` visit the [Redisson Wiki](https://github.com/redisson/redisson/wiki/2.-Configuration)  \n6. If the configuration is correct the Cloud should be able to start successfully now.\n\n# \u003ca name=\"thunder\"\u003e\u003c/a\u003eSetting up Thunder\nThunder is the bungee part of the cloud, so setting it up is fairly simple.\n1. Download the bungee file from the [md-5 Jenkins](https://ci.md-5.net/job/BungeeCord/) server and put it inside a folder of your choice (e.g.: `/home/minecraft/bungee/`).\n2. Create the `start.sh` to start the bungee and put it into the same folder as the Bungeecord jar.\n  It could look like this:\n```SH\n#!/bin/sh\nscreen -S bungeecord -dm java -jar -Xmx1024M yourBungeecordFile.jar\n```\n3. Start the bungeecord once to create the folders and files.\n4. Put the `/cloud/jars/thunder.jar` into the `/plugins` folder.\n5. Now start the bungee again and edit the `/plugins/Thunder/config.json` to set the instance name, cloud-ip and cloud-port (If no changes needed leave it as it is). If you want to edit the Redis config, you can do it with the same file as the cloud (`redis_config.json`).\n6. Done.\n\n# Setting up Daemons\nA daemon is in this setup a program which runs in the background and manages the server dynamically.  \n\nIt's basically the same setup as [Thunder](#thunder) but instead of downloading the bungeecord jar get the `/cloud/jars/daemon.jar` and put it inside a folder of your choice and instead of creating a script take the **start_daemon.sh** script. Start the daemon and configure it just like the you did with the Thunder configuration files.\n\n# Setting up patterns\nA pattern is a pre-defined server folder which will be used to start multiple servers of one instance. It is recommended to use something like RSync (Thanks @Doppelnull) to synchronize data between the servers. Creating a pattern:\n1. Use `/pattern create \u003c...\u003e` inside the Cloud console.\n2. After creation in the database go to a daemon and inside the `patterns/nameOfYourCreatedPattern` put all your server files (You know how to obtain them hopefully) inside there (plugins, worlds, server.jar, start.sh, ...). Finish it up by putting the `cloud/jars/lightning.jar` inside the plugins folder as well.  \nFor different pattern management (deletion, ..) use `/pattern` inside the cloud console, you'll get sub commands as help.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperioz%2Fmoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuperioz%2Fmoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperioz%2Fmoo/lists"}