Skip to content

Commit

Permalink
fixed reload
Browse files Browse the repository at this point in the history
  • Loading branch information
weaondara committed May 22, 2015
1 parent 2ba1019 commit 24bfcee
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 15 deletions.
7 changes: 5 additions & 2 deletions src/main/java/net/alpenblock/bungeeperms/BungeePerms.java
Expand Up @@ -89,12 +89,15 @@ public void disable()
permissionsManager.disable();
}

public void reload()
public void reload(boolean notifynetwork)
{
disable();
load();
permissionsManager.reload();
networkNotifier.reloadAll(null);
if(notifynetwork)
{
networkNotifier.reloadAll("");
}
enable();
}
}
Expand Up @@ -138,7 +138,7 @@ private boolean handleReload(Sender sender, String[] args)
return true;
}

BungeePerms.getInstance().reload();
BungeePerms.getInstance().reload(true);
sender.sendMessage(Lang.translate(MessageType.PERMISSIONS_RELOADED));
return true;
}
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/net/alpenblock/bungeeperms/Statics.java
Expand Up @@ -253,4 +253,16 @@ public static void unregisterListener(Listener l)
}
}
}

public static boolean listContains(List<String> list, String element)
{
for (String l : list)
{
if (l.equalsIgnoreCase(element))
{
return true;
}
}
return false;
}
}
Expand Up @@ -8,8 +8,9 @@
public enum PlatformType
{

Bukkit("bukkit.conf.yml"),
BungeeCord("bungee.conf.yml");
Bukkit("bukkit.conf.yml", false),
BungeeCord("bungee.conf.yml", true);

private final String defaultConfigPath;
private final boolean proxy;
}
Expand Up @@ -150,6 +150,7 @@ public void onChangedWorld(PlayerChangedWorldEvent e)
public void onPluginMessageReceived(String channel, Player player, byte[] bytes)
{
String msg = new String(bytes);
BungeePerms.getLogger().info("msg=" + msg);
List<String> data = Statics.toList(msg, ";");

BungeePerms.getInstance().getDebug().log("msg=" + msg);
Expand Down Expand Up @@ -193,7 +194,15 @@ else if (cmd.equalsIgnoreCase("reloadgroups"))
}
else if (cmd.equalsIgnoreCase("reloadall"))
{
BungeePerms.getInstance().reload();
Runnable r = new Runnable()
{
@Override
public void run()
{
BungeePerms.getInstance().reload(false);
}
};
Bukkit.getScheduler().runTaskLater(BukkitPlugin.getInstance(), r, 1);
}
}

Expand Down
Expand Up @@ -14,6 +14,7 @@
import net.alpenblock.bungeeperms.Statics;
import net.alpenblock.bungeeperms.User;
import net.alpenblock.bungeeperms.platform.EventListener;
import net.alpenblock.bungeeperms.platform.bukkit.BukkitPlugin;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.ProxiedPlayer;
Expand Down Expand Up @@ -159,22 +160,23 @@ public void onMessage(PluginMessageEvent e)
if (config.getNetworkType() == NetworkType.Standalone
|| (config.getNetworkType() == NetworkType.ServerDependend && !config.getNetworkServers().contains(scon.getInfo().getName())))
{
//todo add misconfiguration message
return;
}

//process message
String msg = new String(e.getData());
BungeePerms.getLogger().info("msg=" + msg);
List<String> data = Statics.toList(msg, ";");

String cmd = data.get(0);
String userorgroup = data.size() > 1 ? data.get(1) : null;

if (cmd.equalsIgnoreCase("playerworldupdate"))
{
String player = data.get(1);
String world = data.get(2);

playerWorlds.put(player, world);
playerWorlds.put(userorgroup, world);
}
else if (cmd.equalsIgnoreCase("deleteuser"))
{
Expand Down Expand Up @@ -240,11 +242,18 @@ else if (cmd.equalsIgnoreCase("reloadgroups"))
}
else if (cmd.equalsIgnoreCase("reloadall"))
{
BungeePerms.getInstance().reload();
Runnable r = new Runnable()
{
@Override
public void run()
{
BungeePerms.getInstance().reload(false);
}
};
ProxyServer.getInstance().getScheduler().runAsync(BungeePlugin.getInstance(), r);

//this would be bad
// //forward plugin message to network
// BungeePerms.getInstance().getNetworkNotifier().reloadAll(scon.getInfo().getName());
//forward plugin message to network except to server which issued the reload
BungeePerms.getInstance().getNetworkNotifier().reloadAll(scon.getInfo().getName());
}

e.setCancelled(true);
Expand Down
Expand Up @@ -4,6 +4,7 @@
import lombok.AllArgsConstructor;
import net.alpenblock.bungeeperms.BungeePerms;
import net.alpenblock.bungeeperms.Group;
import net.alpenblock.bungeeperms.Statics;
import net.alpenblock.bungeeperms.User;
import net.alpenblock.bungeeperms.platform.NetworkNotifier;
import net.md_5.bungee.api.ProxyServer;
Expand Down Expand Up @@ -86,7 +87,7 @@ private void sendPM(String player, String msg, String origin)
{
//ignore servers not in config and netork type is server dependend
if (config.getNetworkType() == NetworkType.ServerDependend
&& !config.getNetworkServers().contains(pp.getServer().getInfo().getName()))
&& !Statics.listContains(config.getNetworkServers(), pp.getServer().getInfo().getName()))
{
return;
}
Expand Down Expand Up @@ -115,7 +116,7 @@ private void sendPM(UUID player, String msg, String origin)
{
//ignore servers not in config and netork type is server dependend
if (config.getNetworkType() == NetworkType.ServerDependend
&& !config.getNetworkServers().contains(pp.getServer().getInfo().getName()))
&& !Statics.listContains(config.getNetworkServers(), pp.getServer().getInfo().getName()))
{
return;
}
Expand Down Expand Up @@ -143,7 +144,7 @@ private void sendPMAll(String msg, String origin)
{
//ignore servers not in config and netork type is server dependend
if (config.getNetworkType() == NetworkType.ServerDependend
&& !config.getNetworkServers().contains(si.getName()))
&& !Statics.listContains(config.getNetworkServers(), si.getName()))
{
return;
}
Expand Down

0 comments on commit 24bfcee

Please sign in to comment.