Reload msg, old perm check, Player cmd fix

This commit is contained in:
Norbi Peti 2019-03-14 16:27:22 +01:00
parent c62424389f
commit 70cabfaa81
No known key found for this signature in database
GPG key ID: DBA4C4549A927E56
4 changed files with 21 additions and 10 deletions

View file

@ -9,6 +9,9 @@ import org.bukkit.command.CommandSender;
public class ThorpeCommand extends ICommand2MC { public class ThorpeCommand extends ICommand2MC {
@Command2.Subcommand //TODO: Main permissions (groups) like 'mod' @Command2.Subcommand //TODO: Main permissions (groups) like 'mod'
public void reload(CommandSender sender) { public void reload(CommandSender sender) {
MainPlugin.Instance.reloadConfig(); if (MainPlugin.Instance.tryReloadConfig())
sender.sendMessage("§bConfig reloaded.");
else
sender.sendMessage("§cFailed to reload config. Check console.");
} }
} }

View file

@ -71,17 +71,23 @@ public abstract class ButtonPlugin extends JavaPlugin {
@Override @Override
public void reloadConfig() { public void reloadConfig() {
justReload(); tryReloadConfig();
loadConfig();
componentStack.forEach(c -> Component.updateConfig(this, c));
} }
public void justReload() { public boolean tryReloadConfig() {
if (!justReload()) return false;
loadConfig();
componentStack.forEach(c -> Component.updateConfig(this, c));
return true;
}
public boolean justReload() {
if (loaded && ConfigData.saveNow(getConfig())) { if (loaded && ConfigData.saveNow(getConfig())) {
getLogger().warning("Saved pending configuration changes to the file, didn't reload (try again)."); getLogger().warning("Saved pending configuration changes to the file, didn't reload (try again).");
return; return false;
} }
super.reloadConfig(); super.reloadConfig();
loaded = true; //Needed because for the first time it uses reloadConfig() to load it loaded = true; //Needed because for the first time it uses reloadConfig() to load it
return true;
} }
} }

View file

@ -5,7 +5,6 @@ import buttondevteam.lib.player.ChromaGamerBase;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.experimental.var; import lombok.experimental.var;
import lombok.val; import lombok.val;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -105,7 +104,8 @@ public abstract class Command2<TC extends ICommand2, TP extends Command2Sender>
final ChromaGamerBase cg; final ChromaGamerBase cg;
if (sendertype.isAssignableFrom(sender.getClass())) if (sendertype.isAssignableFrom(sender.getClass()))
params.add(sender); //The command either expects a CommandSender or it is a Player, or some other expected type params.add(sender); //The command either expects a CommandSender or it is a Player, or some other expected type
else if (CommandSender.class.isAssignableFrom(sendertype) && sender instanceof Command2MCSender) else if (sender instanceof Command2MCSender
&& sendertype.isAssignableFrom(((Command2MCSender) sender).getSender().getClass()))
params.add(((Command2MCSender) sender).getSender()); params.add(((Command2MCSender) sender).getSender());
else if (ChromaGamerBase.class.isAssignableFrom(sendertype) else if (ChromaGamerBase.class.isAssignableFrom(sendertype)
&& sender instanceof Command2MCSender && sender instanceof Command2MCSender
@ -238,4 +238,4 @@ public abstract class Command2<TC extends ICommand2, TP extends Command2Sender>
public String[] getCommandsText() { public String[] getCommandsText() {
return commandHelp.toArray(new String[0]); return commandHelp.toArray(new String[0]);
} }
} //TODO: Test support of Player instead of CommandSender }

View file

@ -12,7 +12,9 @@ public class Command2MC extends Command2<ICommand2MC, Command2MCSender> {
@Override @Override
public boolean hasPermission(Command2MCSender sender, ICommand2MC command) { public boolean hasPermission(Command2MCSender sender, ICommand2MC command) {
return MainPlugin.permission.has(sender.getSender(), "thorpe.command." + command.getCommandPath().replace(' ', '.')); return command.getClass().getAnnotation(CommandClass.class).modOnly()
? MainPlugin.permission.has(sender.getSender(), "tbmc.admin") //TODO: Change when groups are implemented
: MainPlugin.permission.has(sender.getSender(), "thorpe.command." + command.getCommandPath().replace(' ', '.'));
} }
/** /**