add guild mods, delete unused config

This commit is contained in:
speedxx 2020-06-28 13:46:49 -04:00
parent bc7ca70e72
commit c8975e8576
11 changed files with 219 additions and 21 deletions

View file

@ -6,7 +6,7 @@
<groupId>me.totalfreedom</groupId> <groupId>me.totalfreedom</groupId>
<artifactId>TFGuilds</artifactId> <artifactId>TFGuilds</artifactId>
<version>0.1.5</version> <version>0.1.6</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>TFGuilds</name> <name>TFGuilds</name>

View file

@ -12,7 +12,6 @@ public final class TFGuilds extends JavaPlugin
{ {
public static TFGuilds plugin; public static TFGuilds plugin;
public TFMBridge tfmb; public TFMBridge tfmb;
public Config config;
public Config guilds; public Config guilds;
@Override @Override
@ -21,7 +20,6 @@ public final class TFGuilds extends JavaPlugin
plugin = this; plugin = this;
enableCommands(); enableCommands();
enableListeners(); enableListeners();
config = new Config(plugin, "config.yml");
guilds = new Config(plugin, "guilds.yml"); guilds = new Config(plugin, "guilds.yml");
tfmb = new TFMBridge(); tfmb = new TFMBridge();
GLog.info("Enabled"); GLog.info("Enabled");
@ -30,7 +28,6 @@ public final class TFGuilds extends JavaPlugin
@Override @Override
public void onDisable() public void onDisable()
{ {
config.save();
guilds.save(); guilds.save();
GLog.info("Disabled"); GLog.info("Disabled");
} }
@ -48,6 +45,8 @@ public final class TFGuilds extends JavaPlugin
this.getCommand("guildkick").setExecutor(new GuildKickCommand()); this.getCommand("guildkick").setExecutor(new GuildKickCommand());
this.getCommand("guildinfo").setExecutor(new GuildInfoCommand()); this.getCommand("guildinfo").setExecutor(new GuildInfoCommand());
this.getCommand("guildadmin").setExecutor(new GuildAdminCommand()); this.getCommand("guildadmin").setExecutor(new GuildAdminCommand());
this.getCommand("guildsetmoderator").setExecutor(new GuildSetModeratorCommand());
this.getCommand("guildremovemoderator").setExecutor(new GuildRemoveModeratorCommand());
} }
private void enableListeners() private void enableListeners()

View file

@ -17,7 +17,7 @@ public class GuildInfoCommand extends GBase implements CommandExecutor
{ {
if (args.length == 0) if (args.length == 0)
{ {
if (GUtil.isConsole(sender)) if (GUtil.isConsole(sender) || GUtil.getGuild((Player) sender) == null)
{ {
sender.sendMessage(GUtil.color("&cProvide a guild name.")); sender.sendMessage(GUtil.color("&cProvide a guild name."));
return true; return true;
@ -25,14 +25,8 @@ public class GuildInfoCommand extends GBase implements CommandExecutor
Player player = (Player) sender; Player player = (Player) sender;
String guild = GUtil.getGuild(player); String guild = GUtil.getGuild(player);
if (guild == null)
{
player.sendMessage(GMessage.NOT_IN_GUILD);
return true;
}
String owner = GUtil.getOwner(guild); String owner = GUtil.getOwner(guild);
List<String> moderators = GUtil.getModerators(guild);
String tag = GUtil.getTag(guild); String tag = GUtil.getTag(guild);
String creation = GUtil.getTimeCreated(guild); String creation = GUtil.getTimeCreated(guild);
List<String> members = GUtil.getMember(guild); List<String> members = GUtil.getMember(guild);
@ -40,6 +34,7 @@ public class GuildInfoCommand extends GBase implements CommandExecutor
player.sendMessage(GUtil.color("&2-=-=-=- &aGuild Information &2-=-=-=-")); player.sendMessage(GUtil.color("&2-=-=-=- &aGuild Information &2-=-=-=-"));
player.sendMessage(GUtil.color("&2Guild Name: &a" + guild)); player.sendMessage(GUtil.color("&2Guild Name: &a" + guild));
player.sendMessage(GUtil.color("&2Guild Owner: &a" + owner)); player.sendMessage(GUtil.color("&2Guild Owner: &a" + owner));
player.sendMessage(GUtil.color("&2Guild Moderators: &a" + moderators));
player.sendMessage(GUtil.color("&2Guild Tag: &a" + tag)); player.sendMessage(GUtil.color("&2Guild Tag: &a" + tag));
player.sendMessage(GUtil.color("&2Guild Creation Date: &a" + creation)); player.sendMessage(GUtil.color("&2Guild Creation Date: &a" + creation));
player.sendMessage(GUtil.color("&2Member Count: &a" + members.size())); player.sendMessage(GUtil.color("&2Member Count: &a" + members.size()));
@ -56,6 +51,7 @@ public class GuildInfoCommand extends GBase implements CommandExecutor
} }
String owner = GUtil.getOwner(guild); String owner = GUtil.getOwner(guild);
List<String> moderators = GUtil.getModerators(guild);
String tag = GUtil.getTag(guild); String tag = GUtil.getTag(guild);
String creation = GUtil.getTimeCreated(guild); String creation = GUtil.getTimeCreated(guild);
List<String> members = GUtil.getMember(guild); List<String> members = GUtil.getMember(guild);
@ -63,6 +59,7 @@ public class GuildInfoCommand extends GBase implements CommandExecutor
sender.sendMessage(GUtil.color("&2-=-=-=- &aGuild Information &2-=-=-=-")); sender.sendMessage(GUtil.color("&2-=-=-=- &aGuild Information &2-=-=-=-"));
sender.sendMessage(GUtil.color("&2Guild Name: &a" + guild)); sender.sendMessage(GUtil.color("&2Guild Name: &a" + guild));
sender.sendMessage(GUtil.color("&2Guild Owner: &a" + owner)); sender.sendMessage(GUtil.color("&2Guild Owner: &a" + owner));
sender.sendMessage(GUtil.color("&2Guild Moderators: &a" + moderators));
sender.sendMessage(GUtil.color("&2Guild Tag: &a" + tag)); sender.sendMessage(GUtil.color("&2Guild Tag: &a" + tag));
sender.sendMessage(GUtil.color("&2Guild Creation Date: &a" + creation)); sender.sendMessage(GUtil.color("&2Guild Creation Date: &a" + creation));
sender.sendMessage(GUtil.color("&2Member Count: &a" + members.size())); sender.sendMessage(GUtil.color("&2Member Count: &a" + members.size()));

View file

@ -37,10 +37,9 @@ public class GuildKickCommand extends GBase implements CommandExecutor
return true; return true;
} }
String owner = GUtil.getOwner(guild); if (!GUtil.isGuildModerator(player, guild))
if (!owner.equalsIgnoreCase(player.getName()))
{ {
player.sendMessage(GMessage.NOT_OWNER); player.sendMessage(ChatColor.RED + "You must be a guild moderator in order to kick members.");
return true; return true;
} }
@ -57,6 +56,12 @@ public class GuildKickCommand extends GBase implements CommandExecutor
return true; return true;
} }
if (GUtil.isGuildModerator(target, guild))
{
player.sendMessage(ChatColor.RED + "This player is a moderator and therefore cannot be kicked.");
return true;
}
if (target == player) if (target == player)
{ {
player.sendMessage(ChatColor.RED + "You may not kick yourself."); player.sendMessage(ChatColor.RED + "You may not kick yourself.");

View file

@ -0,0 +1,86 @@
package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.util.GBase;
import me.totalfreedom.tfguilds.util.GMessage;
import me.totalfreedom.tfguilds.util.GUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class GuildRemoveModeratorCommand extends GBase implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
if (args.length == 0)
{
return false;
}
if (GUtil.isConsole(sender))
{
sender.sendMessage(GMessage.PLAYER_ONLY);
return true;
}
Player player = (Player) sender;
String guild = GUtil.getGuild(player);
if (guild == null)
{
player.sendMessage(GMessage.NOT_IN_GUILD);
return true;
}
String owner = GUtil.getOwner(guild);
if (!owner.equalsIgnoreCase(player.getName()))
{
player.sendMessage(GMessage.NOT_OWNER);
return true;
}
Player target = Bukkit.getPlayer(args[0]);
if (target == null)
{
player.sendMessage(GMessage.PLAYER_NOT_FOUND);
return true;
}
if (!GUtil.isGuildMember(target, GUtil.getGuild(player)))
{
player.sendMessage(ChatColor.RED + "That player isn't in your guild.");
return true;
}
if (!GUtil.isGuildModerator(target, guild))
{
player.sendMessage(ChatColor.RED + "This player isn't a guild moderator.");
return true;
}
if (target == player)
{
player.sendMessage(ChatColor.RED + "You may not demote yourself.");
return true;
}
List<String> moderators = plugin.guilds.getStringList("guilds." + guild + ".moderators");
moderators.remove(target.getName());
plugin.guilds.set("guilds." + guild + ".moderators", moderators);
for (Player p : Bukkit.getOnlinePlayers())
{
if (GUtil.isGuildMember(p, guild))
{
p.sendMessage(ChatColor.RED + target.getName() + " has been demoted to guild member");
}
}
player.sendMessage(ChatColor.GREEN + "Successfully demoted " + target.getName() + " to guild member");
return true;
}
}

View file

@ -0,0 +1,86 @@
package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.util.GBase;
import me.totalfreedom.tfguilds.util.GMessage;
import me.totalfreedom.tfguilds.util.GUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class GuildSetModeratorCommand extends GBase implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
if (args.length == 0)
{
return false;
}
if (GUtil.isConsole(sender))
{
sender.sendMessage(GMessage.PLAYER_ONLY);
return true;
}
Player player = (Player) sender;
String guild = GUtil.getGuild(player);
if (guild == null)
{
player.sendMessage(GMessage.NOT_IN_GUILD);
return true;
}
String owner = GUtil.getOwner(guild);
if (!owner.equalsIgnoreCase(player.getName()))
{
player.sendMessage(GMessage.NOT_OWNER);
return true;
}
Player target = Bukkit.getPlayer(args[0]);
if (target == null)
{
player.sendMessage(GMessage.PLAYER_NOT_FOUND);
return true;
}
if (!GUtil.isGuildMember(target, guild))
{
player.sendMessage(ChatColor.RED + "That player isn't in your guild.");
return true;
}
if (GUtil.isGuildModerator(target, guild))
{
player.sendMessage(ChatColor.RED + "This player is already a guild moderator.");
return true;
}
if (target == player)
{
player.sendMessage(ChatColor.RED + "You are already a moderator.");
return true;
}
List<String> moderators = plugin.guilds.getStringList("guilds." + guild + ".moderators");
moderators.add(target.getName());
plugin.guilds.set("guilds." + guild + ".moderators", moderators);
for (Player p : Bukkit.getOnlinePlayers())
{
if (GUtil.isGuildMember(p, guild))
{
p.sendMessage(ChatColor.GREEN + target.getName() + " has been promoted to guild moderator");
}
}
player.sendMessage(ChatColor.GREEN + "Successfully promoted " + target.getName() + " to guild moderator");
return true;
}
}

View file

@ -33,6 +33,12 @@ public class InviteGuildCommand extends GBase implements CommandExecutor
if (target != null) if (target != null)
{ {
if (!GUtil.isGuildModerator(player, GUtil.getGuild(player)))
{
player.sendMessage(ChatColor.RED + "You must be a guild moderator in order to invite players.");
return true;
}
if (GUtil.isGuildMember(target, GUtil.getGuild(player))) if (GUtil.isGuildMember(target, GUtil.getGuild(player)))
{ {
player.sendMessage(ChatColor.RED + "That player is already in a guild."); player.sendMessage(ChatColor.RED + "That player is already in a guild.");

View file

@ -32,10 +32,8 @@ public class TfGuildsCommand extends GBase implements CommandExecutor
sender.sendMessage(GMessage.NO_PERMISSION); sender.sendMessage(GMessage.NO_PERMISSION);
return true; return true;
} }
try try
{ {
plugin.config.load();
plugin.guilds.load(); plugin.guilds.load();
GLog.info("All configs reloaded successfully"); GLog.info("All configs reloaded successfully");
sender.sendMessage(GUtil.color("&aAll configuration files have been reloaded successfully.")); sender.sendMessage(GUtil.color("&aAll configuration files have been reloaded successfully."));

View file

@ -31,6 +31,10 @@ public class GUtil
plugin.guilds.set("guilds." + guildName, guildName); plugin.guilds.set("guilds." + guildName, guildName);
plugin.guilds.set("guilds." + guildName + ".owner", owner.getName()); plugin.guilds.set("guilds." + guildName + ".owner", owner.getName());
List<String> moderators = plugin.guilds.getStringList("guilds." + guildName + ".moderators");
moderators.add(owner.getName());
plugin.guilds.set("guilds." + guildName + ".moderators", moderators);
List<String> players = plugin.guilds.getStringList("guilds." + guildName + ".members"); List<String> players = plugin.guilds.getStringList("guilds." + guildName + ".members");
players.add(owner.getName()); players.add(owner.getName());
plugin.guilds.set("guilds." + guildName + ".members", players); plugin.guilds.set("guilds." + guildName + ".members", players);
@ -159,6 +163,11 @@ public class GUtil
return plugin.guilds.getString("guilds." + guildName + ".owner"); return plugin.guilds.getString("guilds." + guildName + ".owner");
} }
public static List<String> getModerators(String guildName)
{
return plugin.guilds.getStringList("guilds." + guildName + ".moderators");
}
public static List<String> getMember(String guildName) public static List<String> getMember(String guildName)
{ {
return plugin.guilds.getStringList("guilds." + guildName + ".members"); return plugin.guilds.getStringList("guilds." + guildName + ".members");
@ -166,7 +175,12 @@ public class GUtil
public static boolean isGuildMember(Player player, String guildName) public static boolean isGuildMember(Player player, String guildName)
{ {
return getMember(guildName).contains(player.getName().toLowerCase()); return getMember(guildName).contains(player.getName());
}
public static boolean isGuildModerator(Player player, String guildName)
{
return getModerators(guildName).contains(player.getName());
} }
public static void guildChat(CommandSender sender, String message, String guildName) public static void guildChat(CommandSender sender, String message, String guildName)

View file

@ -1 +0,0 @@
# TFGuilds Configuration File

View file

@ -12,7 +12,7 @@ commands:
aliases: [guilds, tfguildsinfo, tfginfo, guildsinfo] aliases: [guilds, tfguildsinfo, tfginfo, guildsinfo]
createguild: createguild:
description: Creates a guild description: Creates a guild
usage: /<command> <name> usage: /<command> <guild>
aliases: [guildcreate] aliases: [guildcreate]
guildtag: guildtag:
description: Modify your guild's tag description: Modify your guild's tag
@ -47,3 +47,11 @@ commands:
guildadmin: guildadmin:
description: Guild commands only for admins description: Guild commands only for admins
usage: /<command> <cleartag | disbandguild | join> <guild> usage: /<command> <cleartag | disbandguild | join> <guild>
guildsetmoderator:
description: Promotes a player to guild mod
usage: /<command> <player>
aliases: [gsetmod, setguildmod, setguildmoderator, guildsetmod, guildpromote, gpromote]
guildremovemoderator:
description: /<command> <player>
usage: /<command> <player>
aliases: [gremovemod, removeguildmod, removeguildmoderator, guildremovemod, guilddemote, gdemote]