1 BanchoBot banchoConnection = new BanchoBot("WebFreak", ""); 2 bool running = true; 3 auto botTask = runTask({ 4 while (running) 5 { 6 banchoConnection.connect(); 7 logDiagnostic("Got disconnected from bancho..."); 8 sleep(2.seconds); 9 } 10 }); 11 sleep(3.seconds); 12 auto users = ["WebFreak", "Node"]; 13 OsuRoom room = banchoConnection.createRoom("bob"); 14 runTask({ 15 foreach (user; users) 16 room.invite(user); 17 }); 18 runTask({ 19 room.password = "123456"; 20 room.size = 8; 21 room.mods = [Mod.Hidden, Mod.DoubleTime]; 22 room.map = "1158325"; 23 }); 24 runTask({ 25 int joined; 26 try 27 { 28 while (true) 29 { 30 string user = room.waitForJoin(30.seconds); 31 joined++; 32 room.sendMessage("yay welcome " ~ user ~ "!", HighPriority.yes); 33 } 34 } 35 catch (InterruptException) 36 { 37 if (joined == 0) 38 { 39 // forever alone 40 room.close(); 41 return; 42 } 43 } 44 room.sendMessage("This is an automated test, this room will close in 10 seconds on timer"); 45 room.setTimer(10.seconds); 46 try 47 { 48 room.waitForTimer(15.seconds); 49 } 50 catch (InterruptException) 51 { 52 room.sendMessage("Timer didn't trigger :("); 53 room.sendMessage("closing the room in 5s"); 54 sleep(5.seconds); 55 } 56 room.close(); 57 }).join(); 58 running = false; 59 banchoConnection.disconnect(); 60 botTask.join();