SteamWar/BungeeCore
Archiviert
13
2

Adding serverSwitcher

Dieser Commit ist enthalten in:
Lixfel 2019-03-10 19:42:48 +01:00
Ursprung 7f2ce30727
Commit 9cac4c6dcd
5 geänderte Dateien mit 167 neuen und 2 gelöschten Zeilen

19
pom.xml
Datei anzeigen

@ -6,7 +6,14 @@
<groupId>de.warking</groupId>
<artifactId>BungeeCore</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.0</version>
<packaging>jar</packaging>
<name>BungeeCore</name>
<url>https://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
@ -16,6 +23,16 @@
</repositories>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/*.kt</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

Datei anzeigen

@ -1,4 +1,67 @@
package de.warking.bungeecore;
public class BungeeCore {
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import java.io.File;
import java.io.IOException;
public class BungeeCore extends Plugin {
private Configuration config;
public static String ChatPrefix;
@Override
public void onEnable(){
try{
if(!getDataFolder().exists()){
getDataFolder().mkdir();
}
File configFile = new File(getDataFolder().getPath(), "config.yml");
if(!configFile.exists()){
configFile.createNewFile();
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
config.set("prefix", "[WarKing] ");
config.set("db.url", "jdbc:mysql://127.0.0.1:3306/core");
config.set("db.username", "root");
config.set("db.password", "$password");
config.set("servers.l.server", "HunjyLobby");
config.set("servers.l.permission", "bungeecore.server.user");
ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, configFile);
}
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
}catch(IOException e){
System.err.println("Error not create/load config.yml, Aborting!");
return;
}
ChatPrefix = config.getString("prefix");
sql.connect(
config.getString("db.url"),
config.getString("db.username"),
config.getString("db.password")
);
final Configuration servers = config.getSection("servers");
for(final String cmd : servers.getKeys()){
final Configuration server = servers.getSection(cmd);
addCmd(new ServerSwitchCommand(
cmd,
server.getString("server"),
server.getString("permission")
));
}
}
@Override
public void onDisable(){
sql.close();
}
private void addCmd(Command cmd){
getProxy().getPluginManager().registerCommand(this, cmd);
}
}

Datei anzeigen

@ -0,0 +1,30 @@
package de.warking.bungeecore;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
public class ServerSwitchCommand extends Command {
private String serverName;
public ServerSwitchCommand(String cmd, String name, String permission, String... aliases) {
super(cmd, permission, aliases);
serverName = name;
}
@Override
public void execute(CommandSender sender, String[] strings) {
if(sender instanceof ProxiedPlayer){
ProxiedPlayer player = (ProxiedPlayer) sender;
if(!player.getServer().getInfo().getName().equalsIgnoreCase(serverName)){
ServerInfo target = ProxyServer.getInstance().getServerInfo(serverName);
player.connect(target);
}else{
player.sendMessage(BungeeCore.ChatPrefix + "§cDu bist bereits auf diesem Server!");
}
}
}
}

Datei anzeigen

@ -0,0 +1,51 @@
package de.warking.bungeecore;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class sql {
private static Connection con;
public static void connect(String url, String user, String password) {
try {
con = DriverManager.getConnection(url + "?autoreconnect=true", user, password);
}catch (SQLException e) {
e.printStackTrace();
}
}
public static void close() {
try {
if(con != null)
con.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
public static void update(String qry) {
try {
PreparedStatement st = con.prepareStatement(qry);
st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static ResultSet select(String qry) {
try {
PreparedStatement st = con.prepareStatement(qry);
return st.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}

4
src/plugin.yml Normale Datei
Datei anzeigen

@ -0,0 +1,4 @@
name: BungeeCore
main: de.warking.bungeecore.BungeeCore
version: 1.0
author: Lixfel