chore: Some minor changes
This commit is contained in:
parent
143c4761f5
commit
47e3a1dec5
25
README.md
Normal file
25
README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Chronos
|
||||||
|
|
||||||
|
Jednoduchá multiplayer hra napsaná v Javě.
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
Backend je napsaný v Javě pomocí Spring. Jedná se o jednoduchý HTTP server.
|
||||||
|
|
||||||
|
**Ano jsem debil, využít relační databázi nebyl rozhodě dobrý nápad. Došlo mi to uprostřed programování a už se mi nechtělo vracet zpět.**
|
||||||
|
|
||||||
|
### Enviromental variables
|
||||||
|
|
||||||
|
Nějaké env variables se musí nastavit pro připojení k databázi:
|
||||||
|
|
||||||
|
- `DATASOURCE_URL`: Jdbc url pro databázi. Např. `jdbc:mysql://localhost:3306/chronos`
|
||||||
|
- `DB_USERNAME`: Uživatelské jméno k přístupu k databázi. Např. `root`
|
||||||
|
- `DB_PASSWORD`: Heslo k přístupu k databázi. Např. `root`
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
Frontend je napsaný ve Vanilla Javě. Config soubor se automaticky ukládá v následujících lokacích:
|
||||||
|
|
||||||
|
- Unix-like operační systémy: `~/.config/Chronos/config.json`
|
||||||
|
- Windows: `C:\Users\<username>\AppData\Chronos\config.json`
|
||||||
|
- MaxOS: `~/Library/Application Support/Chronos/config.json`
|
@ -4,6 +4,7 @@ import cz.jzitnik.game.Chronos;
|
|||||||
import cz.jzitnik.utils.Cli;
|
import cz.jzitnik.utils.Cli;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
@ -27,16 +28,16 @@ public class Main {
|
|||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
String[] options = {"Vytvořit novou hru", "Připojit se do již existující hry"};
|
String[] options = {"Vytvořit novou hru", "Připojit se do již existující hry"};
|
||||||
var option = Cli.selectOption(options);
|
var option = Cli.selectOptionIndex(List.of(options));
|
||||||
|
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case "Vytvořit novou hru":
|
case 0:
|
||||||
chronos.createNewGame();
|
chronos.createNewGame();
|
||||||
chronos.addUser();
|
chronos.addUser();
|
||||||
Cli.success("Byl jste úspěšně zaregistrován jako první hráč!");
|
Cli.success("Byl jste úspěšně zaregistrován jako první hráč!");
|
||||||
chronos.adminPanel();
|
chronos.adminPanel();
|
||||||
break;
|
break;
|
||||||
case "Připojit se do hry":
|
case 1:
|
||||||
chronos.connectToExisting();
|
chronos.connectToExisting();
|
||||||
chronos.addUser();
|
chronos.addUser();
|
||||||
Cli.success("Byl jste úspěšně zaregistrován jako hráč!");
|
Cli.success("Byl jste úspěšně zaregistrován jako hráč!");
|
||||||
|
@ -162,25 +162,21 @@ public class Chronos {
|
|||||||
|
|
||||||
var testGameKeyResponse = apiService.testGameKey(code).execute().body().getData().get();
|
var testGameKeyResponse = apiService.testGameKey(code).execute().body().getData().get();
|
||||||
|
|
||||||
if (testGameKeyResponse == TestGameKeyResponse.INVALID_KEY) {
|
switch (testGameKeyResponse) {
|
||||||
Cli.error("Nebyla nalezena hra s tímto kódem!");
|
case INVALID_KEY -> {
|
||||||
connectToExisting();
|
Cli.error("Nebyla nalezena hra s tímto kódem!");
|
||||||
return;
|
connectToExisting();
|
||||||
|
}
|
||||||
|
case GAME_STARTED -> {
|
||||||
|
Cli.error("Tato hra již začala!");
|
||||||
|
connectToExisting();
|
||||||
|
}
|
||||||
|
case MAXIUM_PLAYERS -> {
|
||||||
|
Cli.error("V této hře je již maximální počet hráčů!");
|
||||||
|
connectToExisting();
|
||||||
|
}
|
||||||
|
case WORKING -> localData.setGameKey(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (testGameKeyResponse == TestGameKeyResponse.GAME_STARTED) {
|
|
||||||
Cli.error("Tato hra již začala!");
|
|
||||||
connectToExisting();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (testGameKeyResponse == TestGameKeyResponse.MAXIUM_PLAYERS) {
|
|
||||||
Cli.error("V této hře je již maximální počet hráčů!");
|
|
||||||
connectToExisting();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
localData.setGameKey(code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void waitForStart() throws IOException {
|
public void waitForStart() throws IOException {
|
||||||
|
@ -147,37 +147,6 @@ public class Cli {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays a menu with the provided options and returns the selected option.
|
|
||||||
*
|
|
||||||
* @param options Array of options to display to the user.
|
|
||||||
* @return The selected option as a String.
|
|
||||||
*/
|
|
||||||
public static String selectOption(String[] options) {
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
|
||||||
int choice;
|
|
||||||
|
|
||||||
System.out.println("Vyberte možnost:");
|
|
||||||
for (int i = 0; i < options.length; i++) {
|
|
||||||
System.out.println((i + 1) + ". " + options[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
System.out.print("Vložte číslo možnosti: ");
|
|
||||||
if (scanner.hasNextInt()) {
|
|
||||||
choice = scanner.nextInt();
|
|
||||||
if (choice >= 1 && choice <= options.length) {
|
|
||||||
return options[choice - 1];
|
|
||||||
} else {
|
|
||||||
System.out.println("Neplatní možnost, vyberte číslo mezi 1 a " + options.length);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
System.out.println("Neplatný vstup, vložte číslo.");
|
|
||||||
scanner.next();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays a menu with the provided options and returns the selected option.
|
* Displays a menu with the provided options and returns the selected option.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user