From 87d167d87b13be56c26fd8d66fd9be520276d482 Mon Sep 17 00:00:00 2001
From: "Ansgar [Hiajen]" <info@hiajen.de>
Date: Tue, 27 Jul 2021 12:17:39 +0200
Subject: [PATCH 1/3] #11 Provide readonly config, extend readme, refactor
 database location

---
 README.md                                     |  46 +++++++++++++++++-
 .../database}/datenbank_shema.mwb             | Bin
 .../database}/datenbank_shema.png             | Bin
 .../database}/datenbank_shema.sql             |   0
 config/settings.properties                    |   4 ++
 .../net/saltymc/eaa/commands/TagCommand.java  |  22 +++++----
 .../saltymc/eaa/function/LobbyFunction.java   |   4 +-
 .../net/saltymc/eaa/util/database/DB_Tag.java |   2 -
 8 files changed, 63 insertions(+), 15 deletions(-)
 rename {src/main/resources/datenbank => config/database}/datenbank_shema.mwb (100%)
 rename {src/main/resources/datenbank => config/database}/datenbank_shema.png (100%)
 rename {src/main/resources/datenbank => config/database}/datenbank_shema.sql (100%)
 create mode 100644 config/settings.properties

diff --git a/README.md b/README.md
index 3cea151..b347c7a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,43 @@
 EAA_MOD
 ===============
+This MOD is created by the "Eggwars Am Abend" (EAA) Squad, to increase fun playing minecraft by avoiding hacking/idiotic players and providing some useful tools.
+This mod is 100% clientside and does not interact with the server you are playing on.
+
+## Features
+Following a list of features this mod provides
+### TAG
+It's basically a report system.
+
+Users are able to mark other players with a set of tags. As example as Hacker/Friend/Goodplayer and so on.
+In addition, the tag gets weighted by a scale from 0 to 10.
+
+Tagged players are shown at the player overview (TAB) including their recent tag with grade.
+Other commands like playercheck/lobbycheck also use tag data.
+
+### Ping as Number
+Heavily inspired by this cool project, check it out!
+
+https://www.curseforge.com/minecraft/mc-mods/better-ping-display-fabric
+
+### Echo
+uhm ... yeh ... it echos ... uhm ... you
+
+## Commands
+All mod commands start with a double slash (`//`), so they don't get confused with other commands
+
+* `//tag <player> <tag> <grade>`
+  * Tags player with chosen tag and grade. On success a toast is shown.
+* `//lobby`
+  * Checks if any negative tagged players (Hacker/Idiot/Noob) are in the current lobby.
+* `//check <player>`
+  * shows detailed information about player including past playernames and tags.
+* `//echo <text>`
+  * reply with text
+* `//reload`
+  * reloads cashed players. Useful when playing in a team and someone tagged another player. Otherwise the tag would not appear till next game start.
+    
+    
+
 
 ## Settings
 Mod needs a file in modfolder called settings.properties containing following values:
@@ -9,4 +47,10 @@ url=mysql://<DATABASE_URL>/
 user=<DATABASE USER>
 password=<DATABASE USER PASSWORD>
 db_name=<DATABASE NAME>
-```
\ No newline at end of file
+```
+
+A working sample config is provided in the config folder, setup with a readonly user of the developers Database.
+
+## Database
+Database-Model and SQL-Starterscript can be found in the config/database folder.
+The Mod itself does not create the needed Database structure. The user has to init the Database by itself.
\ No newline at end of file
diff --git a/src/main/resources/datenbank/datenbank_shema.mwb b/config/database/datenbank_shema.mwb
similarity index 100%
rename from src/main/resources/datenbank/datenbank_shema.mwb
rename to config/database/datenbank_shema.mwb
diff --git a/src/main/resources/datenbank/datenbank_shema.png b/config/database/datenbank_shema.png
similarity index 100%
rename from src/main/resources/datenbank/datenbank_shema.png
rename to config/database/datenbank_shema.png
diff --git a/src/main/resources/datenbank/datenbank_shema.sql b/config/database/datenbank_shema.sql
similarity index 100%
rename from src/main/resources/datenbank/datenbank_shema.sql
rename to config/database/datenbank_shema.sql
diff --git a/config/settings.properties b/config/settings.properties
new file mode 100644
index 0000000..8bc9426
--- /dev/null
+++ b/config/settings.properties
@@ -0,0 +1,4 @@
+url=mysql://mysql2f88.netcup.net/
+user=k85020_EAA_MOD_RO
+password=EeChf3dfZmwDgMo4rYSFj9bC9i5EaFkKtXfw5F7hPSQyKTZfNv3qougR3jn99ehUiRAgyr9ypLQJUyQhDQAdLf35ymst5sXf34Zo
+db_name=k85020_EAA_MOD
\ No newline at end of file
diff --git a/src/main/java/net/saltymc/eaa/commands/TagCommand.java b/src/main/java/net/saltymc/eaa/commands/TagCommand.java
index c02d634..fc3dfe2 100644
--- a/src/main/java/net/saltymc/eaa/commands/TagCommand.java
+++ b/src/main/java/net/saltymc/eaa/commands/TagCommand.java
@@ -35,15 +35,17 @@ public class TagCommand extends EaaModCommand{
                 .then(
                     argument("player", StringArgumentType.word())
                             .suggests((ctx, builder) -> EntityArgumentType.player().listSuggestions(ctx, builder))
-                            .then(argument("tag", StringArgumentType.word())
-                                    .suggests(((context, builder) -> {
-                                        for (DB_Tag.Type tag : DB_Tag.Type.values())
-                                            builder.suggest(tag.name());
-                                        return builder.buildFuture();
-                                    }))
-                                    .then(
-                                            argument("grade", IntegerArgumentType.integer(0,10))
-                                                    .executes(this)
-                                    )));
+                            .then(
+                                    argument("tag", StringArgumentType.word())
+                                            .suggests(((context, builder) -> {
+                                                for (DB_Tag.Type tag : DB_Tag.Type.values())
+                                                    builder.suggest(tag.name());
+                                                return builder.buildFuture();
+                                            }))
+                                            .then(
+                                                    argument("grade", IntegerArgumentType.integer(0,10))
+                                                            .suggests((ctx, builder) -> IntegerArgumentType.integer(0,10).listSuggestions(ctx, builder))
+                                                            .executes(this)
+                                            )));
     }
 }
diff --git a/src/main/java/net/saltymc/eaa/function/LobbyFunction.java b/src/main/java/net/saltymc/eaa/function/LobbyFunction.java
index a427705..9d026af 100644
--- a/src/main/java/net/saltymc/eaa/function/LobbyFunction.java
+++ b/src/main/java/net/saltymc/eaa/function/LobbyFunction.java
@@ -38,7 +38,7 @@ public class LobbyFunction {
                         if (type == DB_Tag.Type.HACKER){
                             dangerLvl = 2;
                             break;
-                        } else if (type == DB_Tag.Type.IDIOT){
+                        } else if (type == DB_Tag.Type.IDIOT || type == DB_Tag.Type.NOOB){
                             dangerLvl = 1;
                         }
                     }
@@ -49,7 +49,7 @@ public class LobbyFunction {
                         SystemToast.add(source.getClient().getToastManager(), SystemToast.Type.WORLD_BACKUP, Text.of("OKAY!"), Text.of("No Hackers found"));
                         break;
                     case 1:
-                        SystemToast.add(source.getClient().getToastManager(), SystemToast.Type.TUTORIAL_HINT, Text.of("MEH!"), Text.of("There is an Idiot!"));
+                        SystemToast.add(source.getClient().getToastManager(), SystemToast.Type.TUTORIAL_HINT, Text.of("MEH!"), Text.of("There is an Idiot or Noob!"));
                         break;
                     case 2:
                         SystemToast.add(source.getClient().getToastManager(), SystemToast.Type.WORLD_ACCESS_FAILURE, Text.of("ALARM!"), Text.of("There is a Hacker!"));
diff --git a/src/main/java/net/saltymc/eaa/util/database/DB_Tag.java b/src/main/java/net/saltymc/eaa/util/database/DB_Tag.java
index 05dbf8a..8b94394 100644
--- a/src/main/java/net/saltymc/eaa/util/database/DB_Tag.java
+++ b/src/main/java/net/saltymc/eaa/util/database/DB_Tag.java
@@ -1,7 +1,5 @@
 package net.saltymc.eaa.util.database;
 
-import net.minecraft.util.Formatting;
-
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;

From 4192c554a5a4bb24f9ef533a860504e7bffcf2cd Mon Sep 17 00:00:00 2001
From: "Ansgar [Hiajen]" <info@hiajen.de>
Date: Wed, 28 Jul 2021 19:30:34 +0200
Subject: [PATCH 2/3] #11 spelling

---
 README.md | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md
index b347c7a..83db887 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
 EAA_MOD
 ===============
-This MOD is created by the "Eggwars Am Abend" (EAA) Squad, to increase fun playing minecraft by avoiding hacking/idiotic players and providing some useful tools.
-This mod is 100% clientside and does not interact with the server you are playing on.
+This MOD is created by the "Eggwars Am Abend" (EAA) Squad, to increase fun playing Minecraft by avoiding hacking/idiotic players and providing some useful tools.
+This mod is 100% client side and does not interact with the server you are playing on.
 
 ## Features
-Following a list of features this mod provides
+Following a list of features, this mod provides
 ### TAG
 It's basically a report system.
 
-Users are able to mark other players with a set of tags. As example as Hacker/Friend/Goodplayer and so on.
+Users are able to tag other players with a set of tags. As example as Hacker/Friend/Good player and so on.
 In addition, the tag gets weighted by a scale from 0 to 10.
 
-Tagged players are shown at the player overview (TAB) including their recent tag with grade.
+Tagged players are shown when pressing TAB, including their recent tag with grade.
 Other commands like playercheck/lobbycheck also use tag data.
 
 ### Ping as Number
@@ -22,25 +22,25 @@ https://www.curseforge.com/minecraft/mc-mods/better-ping-display-fabric
 ### Echo
 uhm ... yeh ... it echos ... uhm ... you
 
+(used as PoC, will be removed sooner or later)
+
 ## Commands
 All mod commands start with a double slash (`//`), so they don't get confused with other commands
 
 * `//tag <player> <tag> <grade>`
-  * Tags player with chosen tag and grade. On success a toast is shown.
+  * Tags player with chosen tag and grade. On success, a notification is shown.
 * `//lobby`
-  * Checks if any negative tagged players (Hacker/Idiot/Noob) are in the current lobby.
+  * Checks if any unwanted players (Hacker/Idiot/Noob) are in the current lobby.
 * `//check <player>`
-  * shows detailed information about player including past playernames and tags.
+  * shows detailed information about a player, including past player names and tags.
 * `//echo <text>`
   * reply with text
 * `//reload`
-  * reloads cashed players. Useful when playing in a team and someone tagged another player. Otherwise the tag would not appear till next game start.
-    
-    
+  * reloads cashed players. Useful when playing in a team and someone tagged another player. Otherwise, the tag would not appear till next game start.
 
 
 ## Settings
-Mod needs a file in modfolder called settings.properties containing following values:
+Mod needs a file in mod folder called settings.properties containing following values:
 
 ```
 url=mysql://<DATABASE_URL>/
@@ -49,8 +49,8 @@ password=<DATABASE USER PASSWORD>
 db_name=<DATABASE NAME>
 ```
 
-A working sample config is provided in the config folder, setup with a readonly user of the developers Database.
+A working sample config is provided in the config folder, setup with a read only user of the developers Database.
 
 ## Database
 Database-Model and SQL-Starterscript can be found in the config/database folder.
-The Mod itself does not create the needed Database structure. The user has to init the Database by itself.
\ No newline at end of file
+The Mod itself does not create the needed Database structure. The user has to init the Database by himself.
\ No newline at end of file

From 2c1d63966c766e579edc7a8bd097004eb15ec8f1 Mon Sep 17 00:00:00 2001
From: "Ansgar [Hiajen]" <info@hiajen.de>
Date: Sat, 11 Dec 2021 17:20:20 +0100
Subject: [PATCH 3/3] update some lib versions

---
 build.gradle      | 11 +++++------
 gradle.properties | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/build.gradle b/build.gradle
index 128dc3f..a1eb4bc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,5 @@
 plugins {
-	id 'fabric-loom' version '0.7-SNAPSHOT'
+	id 'fabric-loom' version '0.10-SNAPSHOT'
 }
 
 sourceCompatibility = JavaVersion.VERSION_1_8
@@ -24,12 +24,11 @@ dependencies {
 	modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
 	//include group: 'org.postgresql', name: 'postgresql', version: '42.2.9'
 	// https://mvnrepository.com/artifact/mysql/mysql-connector-java
-	//implementation(include('mysql:mysql-connector-java:8.0.25'))
-	include group: 'mysql', name: 'mysql-connector-java', version: '8.0.25'
-	implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.25'
+	include group: 'mysql', name: 'mysql-connector-java', version: "${project.jdbc_mysql}"
+	implementation group: 'mysql', name: 'mysql-connector-java', version: "${project.jdbc_mysql}"
 	//modImplementation(group: 'mysql', name: 'mysql-connector-java', version: '8.0.25')
-	include group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
-	implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
+	include group: 'com.googlecode.json-simple', name: 'json-simple', version: "${project.json_simple}"
+	implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: "${project.json_simple}"
 
 	// Fabric API. This is technically optional, but you probably want it anyway.
 	modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
diff --git a/gradle.properties b/gradle.properties
index e223165..9983820 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,14 +4,19 @@ org.gradle.jvmargs=-Xmx1G
 # Fabric Properties
 	# check these on https://fabricmc.net/versions.html
 	minecraft_version=1.16.5
-	yarn_mappings=1.16.5+build.9
-	loader_version=0.11.3
-
+	yarn_mappings=1.16.5+build.10
+	loader_version=0.12.11
 # Mod Properties
-	mod_version = 1.1.1
+	mod_version = 1.1.3
 	maven_group = net.saltymc.eaa
 	archives_base_name = EAA_MOD
 
 # Dependencies
 	# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api (or https://fabricmc.net/versions.html)
-	fabric_version=0.34.2+1.16
\ No newline at end of file
+	fabric_version=0.42.0+1.16
+
+#SQL
+jdbc_mysql=8.0.27
+
+#JSON
+json_simple=1.1.1
\ No newline at end of file