Add change password permission to old configs...
...and add optional custom join messages when authing.
This commit is contained in:
parent
ab5b8f6cb5
commit
7c1a55918d
|
@ -1,15 +1,19 @@
|
||||||
package net.md_5.bungee.api.config;
|
package net.md_5.bungee.api.config;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class AuthServiceInfo {
|
public class AuthServiceInfo {
|
||||||
|
|
||||||
private final boolean enabled;
|
private final boolean enabled;
|
||||||
private final String authfile;
|
private final String authfile;
|
||||||
private final int ipLimit;
|
private final int ipLimit;
|
||||||
|
private final List<String> joinMessages;
|
||||||
|
|
||||||
public AuthServiceInfo(boolean enabled, String authfile, int timeout) {
|
public AuthServiceInfo(boolean enabled, String authfile, int timeout, List<String> joinMessages) {
|
||||||
this.enabled = enabled;
|
this.enabled = enabled;
|
||||||
this.authfile = authfile;
|
this.authfile = authfile;
|
||||||
this.ipLimit = timeout;
|
this.ipLimit = timeout;
|
||||||
|
this.joinMessages = joinMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
|
@ -24,4 +28,8 @@ public class AuthServiceInfo {
|
||||||
return ipLimit;
|
return ipLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getJoinMessages() {
|
||||||
|
return joinMessages;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -68,13 +69,15 @@ public class YamlConfig implements ConfigurationAdapter {
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
throw new RuntimeException("Could not load configuration!", ex);
|
throw new RuntimeException("Could not load configuration!", ex);
|
||||||
}
|
}
|
||||||
final Map<String, Object> permissions = this.get("permissions", new HashMap<String, Object>());
|
final Map<String, List<String>> permissions = this.get("permissions", new HashMap<String, List<String>>());
|
||||||
if (permissions.isEmpty()) {
|
if (permissions.isEmpty()) {
|
||||||
permissions.put("default", Arrays.asList("bungeecord.command.server", "bungeecord.command.list", "bungeecord.command.eag.domain", "bungeecord.command.eag.changepassword"));
|
permissions.put("default", Arrays.asList("bungeecord.command.server", "bungeecord.command.list", "bungeecord.command.eag.domain", "bungeecord.command.eag.changepassword"));
|
||||||
permissions.put("admin", Arrays.asList("bungeecord.command.alert", "bungeecord.command.end", "bungeecord.command.ip", "bungeecord.command.reload",
|
permissions.put("admin", Arrays.asList("bungeecord.command.alert", "bungeecord.command.end", "bungeecord.command.ip", "bungeecord.command.reload",
|
||||||
"bungeecord.command.eag.ban", "bungeecord.command.eag.banwildcard", "bungeecord.command.eag.banip", "bungeecord.command.eag.banregex",
|
"bungeecord.command.eag.ban", "bungeecord.command.eag.banwildcard", "bungeecord.command.eag.banip", "bungeecord.command.eag.banregex",
|
||||||
"bungeecord.command.eag.reloadban", "bungeecord.command.eag.banned", "bungeecord.command.eag.banlist", "bungeecord.command.eag.unban", "bungeecord.command.eag.ratelimit",
|
"bungeecord.command.eag.reloadban", "bungeecord.command.eag.banned", "bungeecord.command.eag.banlist", "bungeecord.command.eag.unban", "bungeecord.command.eag.ratelimit",
|
||||||
"bungeecord.command.eag.blockdomain", "bungeecord.command.eag.blockdomainname", "bungeecord.command.eag.unblockdomain"));
|
"bungeecord.command.eag.blockdomain", "bungeecord.command.eag.blockdomainname", "bungeecord.command.eag.unblockdomain"));
|
||||||
|
} else if (this.get("authservice", new HashMap<String, Object>()).isEmpty() && permissions.containsKey("default") && !permissions.get("default").contains("bungeecord.command.eag.changepassword")) {
|
||||||
|
permissions.get("default").add("bungeecord.command.eag.changepassword");
|
||||||
}
|
}
|
||||||
this.get("groups", new HashMap<String, Object>());
|
this.get("groups", new HashMap<String, Object>());
|
||||||
}
|
}
|
||||||
|
@ -275,7 +278,9 @@ public class YamlConfig implements ConfigurationAdapter {
|
||||||
@Override
|
@Override
|
||||||
public AuthServiceInfo getAuthSettings() {
|
public AuthServiceInfo getAuthSettings() {
|
||||||
final Map<String, Object> auth = this.get("authservice", new HashMap<String, Object>());
|
final Map<String, Object> auth = this.get("authservice", new HashMap<String, Object>());
|
||||||
return new AuthServiceInfo(this.get("enabled", false, auth), this.get("authfile", "auths.db", auth), this.get("ip_limit", 0, auth));
|
final List<String> defaultJoinMessages = new ArrayList<String>();
|
||||||
|
defaultJoinMessages.add("&3Welcome to my &aEaglercraftBungee &3server!");
|
||||||
|
return new AuthServiceInfo(this.get("enabled", false, auth), this.get("authfile", "auths.db", auth), this.get("ip_limit", 0, auth), this.get("join_messages", defaultJoinMessages, auth));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -50,6 +50,8 @@ public class AuthHandler extends PacketHandler {
|
||||||
this.con.unsafe().sendPacket(new Packet9Respawn(1, (byte) 0, (byte) 2, (short) 255, "END"));
|
this.con.unsafe().sendPacket(new Packet9Respawn(1, (byte) 0, (byte) 2, (short) 255, "END"));
|
||||||
this.con.unsafe().sendPacket(new Packet0DPositionAndLook(0, 0, 0, 0, 0f, 0f, true));
|
this.con.unsafe().sendPacket(new Packet0DPositionAndLook(0, 0, 0, 0, 0f, 0f, true));
|
||||||
|
|
||||||
|
this.con.sendMessages(authSystem.joinMessages);
|
||||||
|
|
||||||
if (authSystem.isRegistered(this.username)) {
|
if (authSystem.isRegistered(this.username)) {
|
||||||
this.con.sendMessage("\u00A7cPlease login to continue! /login <password>");
|
this.con.sendMessage("\u00A7cPlease login to continue! /login <password>");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package net.md_5.bungee.eaglercraft;
|
package net.md_5.bungee.eaglercraft;
|
||||||
|
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.md_5.bungee.api.config.AuthServiceInfo;
|
import net.md_5.bungee.api.config.AuthServiceInfo;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -12,15 +13,23 @@ import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class AuthSystem {
|
public class AuthSystem {
|
||||||
private final String authFileName;
|
private final String authFileName;
|
||||||
private final int ipLimit;
|
private final int ipLimit;
|
||||||
|
public final String[] joinMessages;
|
||||||
|
|
||||||
public AuthSystem(AuthServiceInfo authInfo) {
|
public AuthSystem(AuthServiceInfo authInfo) {
|
||||||
this.authFileName = authInfo.getAuthfile();
|
this.authFileName = authInfo.getAuthfile();
|
||||||
this.ipLimit = authInfo.getIpLimit();
|
this.ipLimit = authInfo.getIpLimit();
|
||||||
|
List<String> listJoinMessages = authInfo.getJoinMessages();
|
||||||
|
String[] arrayJoinMessages = new String[listJoinMessages.size()];
|
||||||
|
for (int i = 0; i < listJoinMessages.size(); i++) {
|
||||||
|
arrayJoinMessages[i] = ChatColor.translateAlternateColorCodes('&', listJoinMessages.get(i));
|
||||||
|
}
|
||||||
|
this.joinMessages = arrayJoinMessages;
|
||||||
|
|
||||||
this.readDatabase();
|
this.readDatabase();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user