Nothing to see here. Move along!
Go to file
Daniel Waggner e39939151f Parse Files
Apparently there's some files that didn't commit within the parse folder
2023-05-22 06:39:25 -07:00
.FILES USED TO GET TO WHERE WE ARE PRESENTLY Parse Files 2023-05-22 06:39:25 -07:00
.idea Map Parser Fixes 2023-05-22 06:38:52 -07:00
GOD DAMN COSMETICS Removed Files 2021-05-23 18:13:37 -07:00
Libraries Updated Libraries 2021-05-23 18:06:10 -07:00
mineplex-develop-9-seperated-files Removed Files 2021-05-23 18:13:37 -07:00
Mineplex.Cache Bug Fixes 2021-06-05 09:21:13 -07:00
Mineplex.Core Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.Core.Common Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.Core.Common.Base Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.Database Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.Hub Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.MapParser Map Parser Fixes 2023-05-22 06:38:52 -07:00
Mineplex.Minecraft.Game.ClassCombat PUUUUUSH 2023-05-17 14:44:01 -07:00
Mineplex.Minecraft.Game.Core Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.ServerData Roll Back 2023-05-20 16:10:56 -07:00
Mineplex.ServerMonitor Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
Mineplex.StaffServer PUUUUUSH 2023-05-17 14:44:01 -07:00
Nautilus.Game.Arcade Roll Back 2023-05-20 16:10:56 -07:00
Nautilus.Game.Arcade.UHC.WorldGen Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
out Map Parser Fixes 2023-05-22 06:38:52 -07:00
Parsed CS Maps MAPS 2023-05-21 13:49:29 -07:00
.gitattributes Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
.gitignore Update .gitignore 2021-05-25 13:58:30 -07:00
account.sql Roll Back 2023-05-20 16:10:56 -07:00
api-config.dat PUUUUUSH 2023-05-17 14:44:01 -07:00
app.xml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
CS Maps List.txt maps 2023-05-21 22:42:49 -07:00
mineplex-app.iml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
mineplex-parent.iml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
mineplex-plugin.iml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
mineplex.sql Roll Back 2023-05-20 16:10:56 -07:00
plugin.xml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
pom.xml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
README.txt MAPS 2023-05-21 13:49:29 -07:00
redis-config.dat PUUUUUSH 2023-05-17 14:44:01 -07:00
settings.xml Mineplex "Stuff" 2021-05-23 16:58:33 -07:00
stats.sql Database go brrrrrrr 2021-05-28 22:22:21 -07:00

====================================================================================================================
Disclaimer:
- I am not the creator of the original code
- I do not condone stealing any of the content within the repository
- These instructions are for educational purposes only
	You can learn a lot from the way others go about getting things done!
====================================================================================================================
IMPORTANT
====================================================================================================================
All of the below instructions reference the files located within 
".FILES USED TO GET TO WHERE WE ARE PRESENTLY"
The rest of the content within this repository is the current state of the source code.

Order of Launch:
1. Ensure required systems are running (the web-api [attached] XMAPP, Redis and RDM [Redis Desktop Manager])
2. Start Bungeecord FIRST
3. THEN start the other 3 servers

Notes:
- The bungeecord server is set to the IP 172.17.19.162:25565. This can be modified in the config.yml file within 
	the bungeecord directory where it says "host:"
- The other servers are set to localhost:25566, localhost:25567, and localhost:25568 for mineplex-dev-spigot-1, 
	mineplex-dev-spigot-mainHub, and mineplex-dev-spigot-map-parser respectively.
- Ensure that the config.yml files in mineplex-dev-spigot-1 and mineplex-dev-spigot-map-parser point towards the 
	directory mineplex-dev-spigot-1/update/maps. This will allow us to have parsed maps be automatically sent 
	over to the arcade server.
- I have no idea what the deal is with port forwarding the servers that are not bungeecord... Portforward all of
	their ports, I guess! 
====================================================================================================================
Setup Instructions
====================================================================================================================
SETUP
	MySQL:
====================================================================================================================

	>>>Copy the xampp files to your C-drive (C:/)
	   Heads up, they're massive!!
	

	>>>Under the xampp folder (within this project's directory), Run the setup_xampp.bat 
	   if you have not run this before
	>>>Once finished, run the xampp-control.exe file
	>>>Enable MySQL and Apache through xampp
	   by clicking "start" on these respective rows


	>>>Within the xmapp UI, click "admin" on the MySQL row
	>>>On the left nagivation tree, select "New"
	>>>Create new databases named: 	
		"account"
		"mineplex"
		"queue"
		"stats"
		"mysql"
	
	>>>Select the "account: database
	>>>for the "account" database: select the SQL tab
	>>>Open the account.sql file (R-Click>Edit)
	>>>Paste in the code w/in account.sql
		>You can also import this directly
	
	>>>Repeat with the "mineplex" database
	   and the mineplex.sql file

====================================================================================================================
SETUP
	Redis:
====================================================================================================================

	>>>Copy the Redis files to your program files directory 
	   (C:\Program Files)
	

	>>>Copy the RedisDesktopManager files to your 32-bit Program Files directory 
	   (C:\Program Files (x86))
	
	
	>>>Under the Redis folder (within this project's directory)
	   Run the redis-server.exe file
	>>>If successful, you will have a CMD prompt formatted like so:
						_._
				   _.-``__ ''-._
			  _.-``    `.  `_.  ''-._           Redis 3.2.100 (00000000/0) 64 bit
		  .-`` .-```.  ```\/    _.,_ ''-._
		 (    '      ,       .-`  | `,    )     Running in standalone mode
		 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379 <configured port>
		 |    `-._   `._    /     _.-'    |     PID: 16960
		  `-._    `-._  `-./  _.-'    _.-'
		 |`-._`-._    `-.__.-'    _.-'_.-'|
		 |    `-._`-._        _.-'_.-'    |           http://redis.io
		  `-._    `-._`-.__.-'_.-'    _.-'
		 |`-._`-._    `-.__.-'    _.-'_.-'|
		 |    `-._`-._        _.-'_.-'    |
		  `-._    `-._`-.__.-'_.-'    _.-'
			  `-._    `-.__.-'    _.-'
				  `-._        _.-'
					  `-.__.-'



	>>>Under the RedisDesktopManager folder:
	   run the rdm.exe file
	>>>Follow the listed instructions:
		https://gist.github.com/randomdevlol/5b36bdf0972b66d9ed6059b786d78d5a
	IMPORTANT:
		IN ORDER TO HAVE ACCESS TO THE MPS MENU:
			Define "serverType" as "Player"
			Create new Row:
				Key: host
				Value: <YOUR IGN>

	WEB API:
	
	>>>Head over to CSGI Mineplex Testing Servers/MineplexNodeJS-master - Copy
	>>>Run the start.bat file

====================================================================================================================
SETUP
	SERVERS:
====================================================================================================================
	
	>>>Head to CSGI Mineplex Testing Servers
	>>>Follow below instructions:
	
	BUNGEECORD (REQUIRED): 
	----------------------
	>>>Open mineplex-dev-spigot-bungeecord
	>>>Modify the config.yml file:
		>Set:
			bind_local_address: true
			host: 176.16.0.23:25565
		IMPORTANT:
			Set the host as: <Your IPv4 Gateway IP>: <portforwarded port>
	>>>Run start.bat

	ARCADE PLUGIN (MINIGAMES):
	--------------------------
	>>>Open mineplex-dev-spigot-1
	>>>Modify redis-config.dat:
		>Set:
			<IP> 6379 MASTER DefaultConnection
			<IP> 6379 SLAVE ServerStatus
			<IP> 6379 SLAVE globalMotd
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
			<IP> 6379 SLAVE 
		IMPORTANT:
			<IP> is the IP in which Redis is running on
				If you're using your local machine, set this to either localhost or 127.0.0.1
				If you're running a hosted virtural machine (VM), set this to the IPv4 or accessible URL of that service 
					(check ipconfig for IPv4 address of system, or contact local administrator for accessible URL)
			6379 is the default port that Redis configures to
				Check the Redis cmd prompt for the configured port (see above)
				Note:
					You need a unique port for Redis
	>>>Modify database-config.dat:
		>Set:
			ACCOUNT <MySQL-IP>:<MySQL-Port>/account root root 
			QUEUE <MySQL-IP>:<MySQL-Port>/queue root root
			MINEPLEX <MySQL-IP>:<MySQL-Port>/mineplex root root
			MINEPLEX_STATS <MySQL-IP>:<MySQL-Port>/mineplex root root
			PLAYER_STATS <MySQL-IP>:<MySQL-Port>/stats root root
			SERVER_STATS <MySQL-IP>:<MySQL-Port>/stats root root
			MSSQL_MOCK <MySQL-IP>:<MySQL-Port>/mysql root root
					
	>>>Head to plugins>arcade
		>Set:
			webServer: http://176.16.0.23:8080/
				IMPORTANT:
				This listed IP is the IP address in which the API is running off of
				Default port is :8080
				Listed IP is the IPv4 address of the host
					If you're using your local machine, set this to your device's IPv4 address
					If you're running a hosted virtural machine (VM), set this to the IPv4 or accessible URL of that service 
						(check ipconfig for IPv4 address of system, or contact local administrator for accessible URL)
					Set the port to the portforwarded port for the API
				Note:
					You need a unique port for the API
			
			connectionurl: localhost:3306
				IMPORTANT:
				This is the IP of your MySQL database
				If you're using your local machine, set this to either localhost or 127.0.0.1
					If you're running a hosted virtural machine (VM), set this to the IPv4 or accessible URL of that service 
						(check ipconfig for IPv4 address of system, or contact local administrator for accessible URL)
				3306 is the default port that MySQL configures to
					Check the xmapp UI for the configured port
					Note:
						You need a unique port for MySQL
			username: root
			password: root
				IMPORTANT:
				These are the username and password for the MySQL database
					Verify that you have created a user group with the credentials you would like to use in order to
					access the MySQL database
			group: <Designated Group>
				IMPORTANT:
					YOU MUST HAVE CREATED A GROUP WITH THIS NAME WITHIN REDIS (SEE ABOVE)
	Map Parser:
	-----------
		This is required if you want to run any maps on the plugins server
		that have not yet already been parsed.
		With the closure of Mineplex, this is the only way to attain maps that work for these gamemodes
		Good thing we have these, right??
		
		>>>Head to Plugins>config.yml
			>Set:
				fileSettings:
					mapParserOutputDirectory: <PATH\TO\THIS\FOLDER>\mineplex-dev-spigot-map-parser\output
				IMPORTANT:
					This is an EXACT directory link. If you're running this on your desktop, you MUST specify 
					the entire path from your C drive, through your desktop, to this folder.
				
====================================================================================================================
Running
	Everything
====================================================================================================================

1. Ensure all of the databases are up and running.
	The WebAPI, MySQL, and Redis
2. Launch the bungeecord start.bat file

====================================================================================================================
For the Build Server:
	>>>Run the start.bat file located within mineplex-dev-spigot-map-parser
====================================================================================================================
COMMANDS:

To parse a map:
Place the world folder in mineplex-dev-spigot-map-parser/map/In Progress
Load the world via /map (name) (Game Type)
	Note: this is the file name. Ensure that there are no spaces in the world folder's name
	      additionally, the Game Type parameter is optional unless more than one world name
		  is present between multiple gamemodes. If the map is placed under In Progress,
		  specify  the Game Type parameter as "InProgress"
Once in the world, run /info
3 parameters will pop up in chat:
Map Name:
Author:
Game Type:
All 3 of these parameters must be populated to parse the map.

Map Name: /name (name)
	Note: This name CAN have spaces
Author: /author (igns)
	Note: You can list multiple authors with spaces
Game Type: /gametype (name)
	Note: A list of valid game types will populate chat if you enter an invalid name
	      Running /gametype list will generate this list as no valid gametype "list" exists
		  (Weird, right?)

To parse the map:
Run /parse (radius)
	Note: The default radius is 256 blocks (I think...). Leaving this parameter blank will run the parse
	      command at a radius of 256 blocks(?)

Upon running /parse, you will be sent back to the lobby 
(It's the Mineplex pre-2017 hub, where they **BUTCHERED** the Mineplex tree)

Parsed maps will be sent to the specified directory listed in the config/yml file, and will be saved as a .zip
You will also be given a chat message confirming this directory 
(you're welcome - yes, I added that myself... did you really think Mineplex could develop logical output logs??)

To send the parsed maps into the arcade server, simply drag/drop them into the directory listed by
the arcade's config/yml file.
Default: arcadeMapDirectory: update/maps/

====================================================================================================================
For the Arcade Server:
3. Run the start.bat file located within mineplex-dev-spigot-1
====================================================================================================================
COMMANDS:

If you've correctly setup the server as an MPS, you can select the game and map using the MPS menu

Otherwise, set a game via:
/game set (GameType) @m(MapName)
(I believe the MapName is the name of the map's folder, not the actual map's name as no spaces are permitted here)

Start a game via:
/game start
or
/game start (time to start - set to 0 for instant start)

You will need admin perms. No, running /op will not give you these perms

To give user(s) admin (or any other rank):
0. Ensure that they've logged in at least once
1. Go to the MySQL database
2. Go to the "account" database
3. Go to the "accounts" TABLE 
4. Find the specified users' IGNs and UUIDs
   If the yser has not logged in yet, you can find their UUID via online databases.
   Specify an id value and copy in their UUID (long format - include all of the dashes)
	under the "id" and "uuid" columns respectively 
   Specify their ign under the "name" column
5. Specify a valid rank under the "rank" column (eg. ADMIN)
--------------------------------------------------------------------------------------------------------------------
List of valid ranks:
ADMIN		DEV			LEGEND		MOD			QAT			TITAN		
BUILDER		ETERNAL		LT			OWNER		RC			TRAINEE
CMA			EVENTMOD	MA			PLAYER		SRMOD		TWITCH
CMOD		FN			MAPLEAD		QA			STM			ULTRA
CONTENT		HERO		MAPPER		QAM			SUPPORT		YOUTUBE
								YT
--------------------------------------------------------------------------------------------------------------------
To give yourself level 100:
Run: /setlevel (ign) (value 0-100)
eg
/setlevel Lord_of_Creeper 100
====================================================================================================================