| 
									
										
										
										
											2020-11-28 12:42:46 -05:00
										 |  |  | let | 
					
						
							|  |  |  |   seed = "2151901553968352745"; | 
					
						
							|  |  |  |   rcon-pass = "foobar"; | 
					
						
							|  |  |  |   rcon-port = 43000; | 
					
						
							|  |  |  | in import ./make-test-python.nix ({ pkgs, ... }: { | 
					
						
							|  |  |  |   name = "minecraft-server"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; }; | 
					
						
							| 
									
										
										
										
											2020-11-28 12:42:46 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   nodes.server = { ... }: { | 
					
						
							|  |  |  |     environment.systemPackages = [ pkgs.mcrcon ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     nixpkgs.config.allowUnfree = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.minecraft-server = { | 
					
						
							|  |  |  |       declarative = true; | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  |       eula = true; | 
					
						
							|  |  |  |       serverProperties = { | 
					
						
							|  |  |  |         enable-rcon = true; | 
					
						
							|  |  |  |         level-seed = seed; | 
					
						
							|  |  |  |         online-mode = false; | 
					
						
							|  |  |  |         "rcon.password" = rcon-pass; | 
					
						
							|  |  |  |         "rcon.port" = rcon-port; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtualisation.memorySize = 2048; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							|  |  |  |     server.wait_for_unit("minecraft-server") | 
					
						
							|  |  |  |     server.wait_for_open_port(${toString rcon-port}) | 
					
						
							|  |  |  |     assert "${seed}" in server.succeed( | 
					
						
							|  |  |  |         "mcrcon -H localhost -P ${toString rcon-port} -p '${rcon-pass}' -c 'seed'" | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |   '';
 | 
					
						
							|  |  |  | }) |