Adding serverSwitcher
Dieser Commit ist enthalten in:
Ursprung
7f2ce30727
Commit
9cac4c6dcd
19
pom.xml
19
pom.xml
@ -6,7 +6,14 @@
|
|||||||
|
|
||||||
<groupId>de.warking</groupId>
|
<groupId>de.warking</groupId>
|
||||||
<artifactId>BungeeCore</artifactId>
|
<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>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
@ -16,6 +23,16 @@
|
|||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
<sourceDirectory>src</sourceDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src</directory>
|
||||||
|
<excludes>
|
||||||
|
<exclude>**/*.java</exclude>
|
||||||
|
<exclude>**/*.kt</exclude>
|
||||||
|
</excludes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
@ -1,4 +1,67 @@
|
|||||||
package de.warking.bungeecore;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
30
src/de/warking/bungeecore/ServerSwitchCommand.java
Normale Datei
30
src/de/warking/bungeecore/ServerSwitchCommand.java
Normale Datei
@ -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!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
51
src/de/warking/bungeecore/sql.java
Normale Datei
51
src/de/warking/bungeecore/sql.java
Normale Datei
@ -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
4
src/plugin.yml
Normale Datei
@ -0,0 +1,4 @@
|
|||||||
|
name: BungeeCore
|
||||||
|
main: de.warking.bungeecore.BungeeCore
|
||||||
|
version: 1.0
|
||||||
|
author: Lixfel
|
In neuem Issue referenzieren
Einen Benutzer sperren