sub-project rename, added velocity (unfihsed) + config api and the velocity implemntation of the config

This commit is contained in:
mohammed jasem alaajel 2021-12-14 18:47:17 +04:00
parent a4fc072dde
commit 4d19f68a28
11 changed files with 242 additions and 23 deletions

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>GreenAppleLogin</artifactId>
<groupId>net.limework.plugins</groupId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>agl-velocity</artifactId>
</project>

View File

@ -9,8 +9,6 @@
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>agl-api</artifactId>
<artifactId>gal-api</artifactId>
</project>

View File

@ -0,0 +1,27 @@
package net.limework.gal.utils;
/**
* @since 1.0.0
*
* @// TODO: 12/14/21 move the messages into A Config file in yaml or json
*/
public class Messages {
//
public final static String FAILED_CONNECTION = """
&2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040
&6- &a&lGovindas Limework&6 -
&c&oYour connection has failed to authenticate and cracked mode was enabled!
&7&o This could happen because:
1. Mojang / Microsoft api is down\040\040\040\040\040\040\040\040\040
2. Using cracked minecraft (if you are using cracked Minecraft please relog!)
&6If this a mistake and you own a Minecraft account\040
&cPlease connect to &a&lreset.limework.net\040\040
&7&oPro tip: use Direct connection
&2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m &2&m""".replace("&", "§");
}

View File

@ -0,0 +1,18 @@
package net.limework.gal.utils.config;
import java.util.concurrent.TimeUnit;
public record AntiBot(int maxConnections, long reset, TimeUnit resetUnit) {
public int getMaxConnections() {
return maxConnections;
}
public long getReset() {
return reset;
}
public TimeUnit getResetUnit() {
return resetUnit;
}
}

View File

@ -0,0 +1,13 @@
package net.limework.gal.utils.config;
public interface Configuration {
String getCrackedChar();
AntiBot getAntiBot();
}

View File

@ -0,0 +1,7 @@
{
"default-cracked-char": "-",
"simple-anti-bot": {
"max-connections" : 590,
"reset" : 10
}
}

View File

@ -0,0 +1,16 @@
# This message handles what type of char the system should use
# like if its - Cracked players will have it in the name
# example:
# Ham1255 is a cracked player want to join mc.limework.net
# when system checks if he is cracked then if the name does not contain -
# system will replace the name to -Ham1255
default-cracked-char: "-"
# Just simple anti bot
# example:
# when a player joins a server it makes request to mojang api which has 600 per 10 mins
# if the server reach's the limits players can no longer join + possibility of getting banned by mojang api for a day!
simple-anti-bot:
max-connections: 590
reset: 10

37
gal-velocity/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>GreenAppleLogin</artifactId>
<groupId>net.limework.plugins</groupId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gal-velocity</artifactId>
<repositories>
<repository>
<id>velocitypowered</id>
<url>https://nexus.velocitypowered.com/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<artifactId>gal-api</artifactId>
<groupId>net.limework.plugins</groupId>
<version>${version}</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,34 @@
package net.limework.gal;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.limework.gal.utils.config.AntiBot;
import net.limework.gal.utils.config.Configuration;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.concurrent.TimeUnit;
public class ConfigLoader implements Configuration {
private final String crackedChar;
private final AntiBot antiBot;
public ConfigLoader(File file) throws FileNotFoundException {
JsonObject jsonObject = JsonParser.parseReader(new FileReader(file)).getAsJsonObject();
this.crackedChar = jsonObject.get("default-cracked-char").getAsString();
JsonObject antiBotJson = jsonObject.getAsJsonObject("simple-anti-bot");
this.antiBot = new AntiBot(antiBotJson.get("max-connections").getAsInt(), antiBotJson.get("reset").getAsLong(), TimeUnit.MINUTES);
}
@Override
public String getCrackedChar() {
return this.crackedChar;
}
@Override
public AntiBot getAntiBot() {
return this.antiBot;
}
}

View File

@ -0,0 +1,65 @@
package net.limework.gal;
import com.google.inject.Inject;
import com.velocitypowered.api.plugin.Plugin;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
import java.util.logging.Logger;
@Plugin(name = "GreenAppleLogin", id = "greenapplelogin", version = "1.0.0", description = "Plugin that handle cracked + premium")
public class VelocityGalPlugin {
private final ProxyServer proxyServer;
private final Logger logger;
private final File dataFolder;
private final ConfigLoader config;
@Inject
public VelocityGalPlugin(ProxyServer proxyServer, Logger logger, @DataDirectory Path dataDirectory) {
this.proxyServer = proxyServer;
this.logger = logger;
this.dataFolder = dataDirectory.toFile();
if (this.dataFolder.mkdir()) {
getLogger().info("Created Plugin data folder.");
}
File file = new File(getDataFolder(), "config.json");
if (!file.exists()) {
try (InputStream in = getClass().getClassLoader().getResourceAsStream("config.json")) {
Files.copy(Objects.requireNonNull(in), file.toPath());
} catch (NullPointerException | IOException e) {
throw new RuntimeException("unable to load config file", e);
}
}
try {
this.config = new ConfigLoader(file);
} catch (FileNotFoundException e) {
throw new RuntimeException("unable to load config file", e);
}
}
public ProxyServer getProxyServer() {
return proxyServer;
}
public Logger getLogger() {
return logger;
}
public File getDataFolder() {
return dataFolder;
}
}

28
pom.xml
View File

@ -9,9 +9,29 @@
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>agl-api</module>
<module>agl-velocity</module>
<module>gal-api</module>
<module>gal-velocity</module>
</modules>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<target>17</target>
<source>17</source>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project-version>${project.version}</project-version>
</properties>
</project>