Change project and repo name
This commit is contained in:
parent
838fa9fe03
commit
71bd4e6606
27 changed files with 1112 additions and 0 deletions
|
@ -0,0 +1,42 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public final class ChatonlyCommand extends TBMCCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[]{
|
||||
"§6---- Chat-only mode ----",
|
||||
"This mode makes you invincible but unable to move, teleport or interact with the world in any way",
|
||||
"It was designed for chat clients",
|
||||
"Once enabled, the only way of disabling it is by relogging to the server"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
Player player=(Player)sender;
|
||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(player
|
||||
.getUniqueId());
|
||||
p.ChatOnly = true;
|
||||
player.setGameMode(GameMode.SPECTATOR);
|
||||
player.sendMessage("§bChat-only mode enabled. You are now invincible.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "chatonly";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class MWikiCommand extends TBMCCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Minecraft Wiki linker ----",
|
||||
"Use without parameters to get a link to the wiki",
|
||||
"You can also search the wiki, for example:",
|
||||
" /"
|
||||
+ alias
|
||||
+ " beacon - Provides a link that redirects to the beacon's wiki page" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
String query = "";
|
||||
for (int i = 0; i < args.length; i++)
|
||||
query += args[i];
|
||||
query = query.trim();
|
||||
if (args.length == 0)
|
||||
sender.sendMessage("§bMinecraft Wiki link: http://minecraft.gamepedia.com/");
|
||||
else
|
||||
sender.sendMessage("§bMinecraft Wiki link: http://minecraft.gamepedia.com/index.php?search="
|
||||
+ query + "&title=Special%3ASearch&go=Go");
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "mwiki";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public final class OOCCommand extends TBMCCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Out-of-character message ----",
|
||||
"This command will put a [OCC] tag before your message indicating that you are talking out of character",
|
||||
"Usage: /" + alias + " <message>" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
Player player = (Player) sender;
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
} else {
|
||||
MaybeOfflinePlayer.AddPlayerIfNeeded(player.getUniqueId()).RPMode = false;
|
||||
String message = "";
|
||||
for (String arg : args)
|
||||
message += arg + " ";
|
||||
player.chat(message.substring(0, message.length() - 1));
|
||||
MaybeOfflinePlayer.AddPlayerIfNeeded(player.getUniqueId()).RPMode = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "ooc";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.appendtext.TableflipCommand;
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.appendtext.UnflipCommand;
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.ucmds.UCommand;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public abstract class TBMCCommandBase implements CommandExecutor {
|
||||
|
||||
public static void RegisterCommands(PluginMain plugin) {
|
||||
TBMCCommandBase cmd = new UCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new OOCCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new UnlolCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new MWikiCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new TableflipCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new UnflipCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
cmd = new ChatonlyCommand();
|
||||
plugin.getCommand(cmd.GetCommandName()).setExecutor(cmd);
|
||||
}
|
||||
|
||||
private static HashMap<String, TBMCCommandBase> commands = new HashMap<String, TBMCCommandBase>();
|
||||
|
||||
public static HashMap<String, TBMCCommandBase> GetCommands() {
|
||||
return commands;
|
||||
}
|
||||
|
||||
public TBMCCommandBase() {
|
||||
commands.put(GetCommandName(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String alias,
|
||||
String[] args) {
|
||||
if (GetPlayerOnly() && !(sender instanceof Player)) {
|
||||
sender.sendMessage("§cError: You must be a player to use this command.");
|
||||
return true;
|
||||
}
|
||||
if (!OnCommand(sender, alias, args))
|
||||
sender.sendMessage(GetHelpText(alias));
|
||||
return true;
|
||||
}
|
||||
|
||||
public abstract String[] GetHelpText(String alias);
|
||||
|
||||
public abstract boolean OnCommand(CommandSender sender, String alias,
|
||||
String[] args);
|
||||
|
||||
public abstract String GetCommandName();
|
||||
|
||||
public abstract boolean GetPlayerOnly();
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public final class UnlolCommand extends TBMCCommandBase {
|
||||
|
||||
public static CommandSender Lastlol = null;
|
||||
public static boolean Lastlolornot;
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Unlol/unlaugh ----",
|
||||
"This command is based on a joke between NorbiPeti and Ghostise",
|
||||
"It will make anyone saying one of the recognized laugh strings blind for a few seconds",
|
||||
"Note that you can only unlaugh laughs that weren't unlaughed before" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
if (Lastlol != null) {
|
||||
if (Lastlol instanceof Player)
|
||||
((Player) Lastlol).addPotionEffect(new PotionEffect(
|
||||
PotionEffectType.BLINDNESS, 10 * 20, 5, false, false));
|
||||
String msg = (sender instanceof Player ? ((Player) sender)
|
||||
.getDisplayName() : sender.getName())
|
||||
+ (Lastlolornot ? " unlolled " : " unlaughed ")
|
||||
+ (Lastlol instanceof Player ? ((Player) Lastlol)
|
||||
.getDisplayName() : Lastlol.getName());
|
||||
for (Player pl : PluginMain.GetPlayers())
|
||||
pl.sendMessage(msg);
|
||||
Bukkit.getServer().getConsoleSender().sendMessage(msg);
|
||||
Lastlol = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "unlol";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.appendtext;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.ChatProcessing;
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.TBMCCommandBase;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public abstract class AppendTextCommandBase extends TBMCCommandBase {
|
||||
|
||||
public abstract String[] GetHelpText(String alias);
|
||||
|
||||
public abstract String GetAppendedText();
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
String msg = GetAppendedText();
|
||||
if (args.length > 0) {
|
||||
msg = args[0] + " " + msg;
|
||||
} else
|
||||
msg = " " + msg;
|
||||
ChatProcessing.ProcessChat(sender, msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
public abstract String GetCommandName();
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.appendtext;
|
||||
|
||||
public final class ShrugCommand extends AppendTextCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Shrug ----",
|
||||
"This command appends a shrug after your message",
|
||||
"Or just makes you shrug",
|
||||
"Use either /" + alias + " <message> or just /" + alias };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAppendedText() {
|
||||
return "¯\\_(ツ)_/¯";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "shrug";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.appendtext;
|
||||
|
||||
public final class TableflipCommand extends AppendTextCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Tableflip ----",
|
||||
"This command appends a tableflip after your message",
|
||||
"Or just makes you tableflip",
|
||||
"Use either /" + alias + " <message> or just /" + alias };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAppendedText() {
|
||||
return "(╯°□°)╯︵ ┻━┻";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "tableflip";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.appendtext;
|
||||
|
||||
public final class UnflipCommand extends AppendTextCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Unflip ----",
|
||||
"This command appends an unflip after your message",
|
||||
"Or just unflips as you",
|
||||
"Use either /" + alias + " <message> or just /" + alias };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAppendedText() {
|
||||
return "┬─┬ ノ( ゜-゜ノ)";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "unflip";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.FlairStates;
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
import io.github.norbipeti.thebuttonmcchat.PlayerJoinTimerTask;
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import java.util.Timer;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class AcceptCommand extends UCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Accept flair ----",
|
||||
"Accepts a flair from Reddit",
|
||||
"Use /u accept <username> if you commented from multiple accounts" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnUCommand(CommandSender sender, String alias, String[] args) {
|
||||
final Player player = (Player) sender;
|
||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.GetFromPlayer(player);
|
||||
if (args.length < 1 && p.UserNames.size() > 1) {
|
||||
player.sendMessage("§9Multiple users commented your name. §bPlease pick one using /u accept <username>");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("§6Usernames:");
|
||||
for (String username : p.UserNames)
|
||||
sb.append(" ").append(username);
|
||||
player.sendMessage(sb.toString());
|
||||
return true;
|
||||
}
|
||||
if (p.FlairState.equals(FlairStates.NoComment)
|
||||
|| p.UserNames.size() == 0) {
|
||||
player.sendMessage("§cError: You need to write your username to the reddit thread at /r/TheButtonMinecraft§r");
|
||||
return true;
|
||||
}
|
||||
if (args.length > 0 && !p.UserNames.contains(args[0])) {
|
||||
player.sendMessage("§cError: Unknown name: " + args[0] + "§r");
|
||||
return true;
|
||||
}
|
||||
if (p.Working) {
|
||||
player.sendMessage("§cError: Something is already in progress.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((args.length > 0 ? args[0] : p.UserNames.get(0)).equals(p.UserName)) {
|
||||
player.sendMessage("§cYou already have this user's flair.§r");
|
||||
return true;
|
||||
}
|
||||
if (args.length > 0)
|
||||
p.UserName = args[0];
|
||||
else
|
||||
p.UserName = p.UserNames.get(0);
|
||||
|
||||
player.sendMessage("§bObtaining flair...");
|
||||
p.Working = true;
|
||||
Timer timer = new Timer();
|
||||
PlayerJoinTimerTask tt = new PlayerJoinTimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
PluginMain.Instance.DownloadFlair(mp);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
player.sendMessage("Sorry, but an error occured while trying to get your flair. Please contact a mod.");
|
||||
mp.Working = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (mp.FlairState.equals(FlairStates.Commented)) {
|
||||
player.sendMessage("Sorry, but your flair isn't recorded. Please ask an admin to set it for you. Also, prepare a comment on /r/thebutton, if possible.");
|
||||
mp.Working = false;
|
||||
return;
|
||||
}
|
||||
String flair = mp.GetFormattedFlair();
|
||||
mp.FlairState = FlairStates.Accepted;
|
||||
PluginMain.ConfirmUserMessage(mp);
|
||||
player.sendMessage("§bYour flair has been set:§r " + flair);
|
||||
mp.Working = false;
|
||||
}
|
||||
};
|
||||
tt.mp = p;
|
||||
timer.schedule(tt, 20);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "accept";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.TBMCCommandBase;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public final class HelpCommand extends UCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Help ----",
|
||||
"Prints out help messages for the TBMC plugin" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnUCommand(CommandSender sender, String alias, String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(new String[] {
|
||||
"§6---- TBMC Help ----",
|
||||
"Do /u help <subcommand> for more info",
|
||||
"Alternatively, you can do /u help <commandname> for more info about a command",
|
||||
"Subcommands:",
|
||||
"flairs: The flairs are the numbers near your name",
|
||||
"commands: See all the commands from this plugin",
|
||||
"login: If you or someone else has any problems with logins, lost inventory/location, etc." });
|
||||
return true;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("flairs"))
|
||||
sender.sendMessage(new String[] { "§6---- About flairs ----", "" }); // TODO
|
||||
else if (args[0].equalsIgnoreCase("commands")) {
|
||||
String[] text = new String[TBMCCommandBase.GetCommands().size() + 1];
|
||||
int i = 0;
|
||||
text[i++] = "§6---- Command list ----";
|
||||
for (TBMCCommandBase cmd : TBMCCommandBase.GetCommands().values())
|
||||
text[i++] = "/" + cmd.GetCommandName();
|
||||
sender.sendMessage(text);
|
||||
} else {
|
||||
TBMCCommandBase cmd = TBMCCommandBase.GetCommands().get(args[0]);
|
||||
if (cmd == null)
|
||||
sender.sendMessage(new String[] {
|
||||
"§cError: Command not found: " + args[0],
|
||||
"Use either a command of this plugin or a subcommand (for example: /u accept --> /u help accept" });
|
||||
else
|
||||
sender.sendMessage(cmd.GetHelpText(args[0]));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "help";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.FlairStates;
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public final class IgnoreCommand extends UCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Ignore flair ----",
|
||||
"Stop the \"write your name in the thread\" message from showing up",
|
||||
"Use /u ignore <username> if you commented from multiple accounts" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnUCommand(CommandSender sender, String alias, String[] args) {
|
||||
final Player player = (Player) sender;
|
||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.GetFromPlayer(player);
|
||||
if (p.FlairState.equals(FlairStates.Accepted)) {
|
||||
player.sendMessage("§cYou can only ignore the \"write yoőu rname in the thread\" message.");
|
||||
return true;
|
||||
}
|
||||
if (p.FlairState.equals(FlairStates.Commented)) {
|
||||
player.sendMessage("Sorry, but your flair isn't recorded. Please ask a mod to set it for you.");
|
||||
return true;
|
||||
}
|
||||
if (!p.FlairState.equals(FlairStates.Ignored)) {
|
||||
p.FlairState = FlairStates.Ignored;
|
||||
p.SetFlair(MaybeOfflinePlayer.FlairTimeNone);
|
||||
p.UserName = "";
|
||||
player.sendMessage("§bYou have ignored the message. You can still use /u accept to get a flair.§r");
|
||||
} else
|
||||
player.sendMessage("§cYou already ignored the message.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "ignore";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.TBMCCommandBase;
|
||||
|
||||
public final class UCommand extends UCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- U commands ----",
|
||||
"Subcommands: help, accept, ignore, admin" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "u"; //TODO: Same as at AdminCommand
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.TBMCCommandBase;
|
||||
|
||||
public abstract class UCommandBase extends TBMCCommandBase {
|
||||
|
||||
public abstract String[] GetHelpText(String alias);
|
||||
|
||||
@Override
|
||||
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
|
||||
return OnUCommand(sender, alias,
|
||||
Arrays.copyOfRange(args, 1, args.length));
|
||||
}
|
||||
|
||||
public abstract boolean OnUCommand(CommandSender sender, String alias,
|
||||
String[] args);
|
||||
|
||||
@Override
|
||||
public String GetCommandName() {
|
||||
return "u";
|
||||
}
|
||||
|
||||
public abstract String GetUCommandName(); //TODO: Help for /u commands
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public final class AdminCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Admin ----",
|
||||
"These commands are for mods only.", "Subcommands: reload, " }; // TODO
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "admin"; //TODO: Call this by default (so /u admin invalidcmd should point here)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.ucmds.UCommandBase;
|
||||
|
||||
public abstract class AdminCommandBase extends UCommandBase {
|
||||
|
||||
public abstract String[] GetHelpText(String alias);
|
||||
|
||||
@Override
|
||||
public boolean OnUCommand(CommandSender sender, String alias, String[] args) { // TODO:
|
||||
// Only
|
||||
// mods/admins
|
||||
// should
|
||||
// be
|
||||
// able
|
||||
// to
|
||||
// use
|
||||
// these
|
||||
if (args.length == 0)
|
||||
return false;
|
||||
return OnAdminCommand(sender, alias,
|
||||
Arrays.copyOfRange(args, 1, args.length));
|
||||
}
|
||||
|
||||
public abstract boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args); // TODO: Actually call subcommands
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "admin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean GetPlayerOnly() {
|
||||
return false; // Allow admin commands in console
|
||||
}
|
||||
|
||||
public abstract String GetAdminCommandName();
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ConfirmCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6--- Confirm reload ----",
|
||||
"Use this after using /u admin reload and /u admin save" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (ReloadCommand.Reloader == sender) {
|
||||
try {
|
||||
if (sender != PluginMain.Console)
|
||||
PluginMain.Console
|
||||
.sendMessage("§6-- Reloading The Button Minecraft plugin...§r");
|
||||
sender.sendMessage("§6-- Reloading The Button Minecraft plugin...§r");
|
||||
PluginMain.LoadFiles(true);
|
||||
if (sender != PluginMain.Console)
|
||||
PluginMain.Console.sendMessage("§6-- Reloading done!§r");
|
||||
sender.sendMessage("§6-- Reloading done!§r");
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
if (sender != PluginMain.Console)
|
||||
sender.sendMessage("§cAn error occured. See console for details.§r");
|
||||
PluginMain.LastException = e; // 2015.08.09.
|
||||
}
|
||||
} else
|
||||
sender.sendMessage("§cYou need to do /u admin reload first.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "confirm";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class GetLastErrorCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Get last error ----",
|
||||
"This command returns the last exception",
|
||||
"Note that not all exceptions are recorded" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (PluginMain.LastException != null) {
|
||||
sender.sendMessage("Last error:");
|
||||
sender.sendMessage(PluginMain.LastException.toString());
|
||||
PluginMain.LastException = null;
|
||||
} else
|
||||
sender.sendMessage("There were no exceptions.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "getlasterror";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PlayerInfoCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Player info ----",
|
||||
"Shows some info about the player's flair, Reddit username(s) and other data known by the plugin",
|
||||
"Usage: /u admin playerinfo <player>" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.GetFromName(args[0]);
|
||||
if (p == null) {
|
||||
sender.sendMessage("§cPlayer not found: " + args[0]
|
||||
+ " - Currently only online players can be viewed§r");
|
||||
return true;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("§6Usernames:");
|
||||
for (String username : p.UserNames)
|
||||
sb.append(" ").append(username);
|
||||
sender.sendMessage(new String[] { "Player name: " + p.PlayerName,
|
||||
"User flair: " + p.GetFormattedFlair(),
|
||||
"Username: " + p.UserName, "Flair state: " + p.FlairState,
|
||||
sb.toString(), "FCount: " + p.FCount, "FDeaths: " + p.FDeaths });
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "playerinfo";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public final class ReloadCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Reload plugin ----",
|
||||
"This command allows you to reload the plugin's config",
|
||||
"This isn't the same as reloading the server, and should not cause any issues with other plugins",
|
||||
"Save the config by using /u admin save before you reload it",
|
||||
"Because of this, you'll need to confirm the reload with /u admin confirm" };
|
||||
}
|
||||
|
||||
public static CommandSender Reloader;
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
Reloader = sender;
|
||||
sender.sendMessage("§bMake sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "reload";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class SaveCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Save config ----",
|
||||
"This command saves the config file(s)" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
PluginMain.SaveFiles(); // 2015.08.09.
|
||||
sender.sendMessage("§bSaved files. Now you can edit them and reload if you want.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "save";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.FlairStates;
|
||||
import io.github.norbipeti.thebuttonmcchat.MaybeOfflinePlayer;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class SetFlairCommand extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Set flair -----",
|
||||
"Set a flair for a player",
|
||||
"Usage: /u admin setflair <player> <flairtime (or non-presser, cant-press, none)> <cheater(true/false)> [username]",
|
||||
"Example 1: /u admin setflair NorbiPeti 19 false NorbiPeti --> orange (19s)",
|
||||
"Example 2: /u admin setflair iie 0 true asde --> purple (0s)" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (args.length < 3) {
|
||||
return false;
|
||||
}
|
||||
Player p = Bukkit.getPlayer(args[0]);
|
||||
if (p == null) {
|
||||
sender.sendMessage("§cPlayer not found.&r");
|
||||
return true;
|
||||
}
|
||||
short flairtime = 0x00;
|
||||
if (args[1].equalsIgnoreCase("non-presser"))
|
||||
flairtime = MaybeOfflinePlayer.FlairTimeNonPresser;
|
||||
else if (args[1].equalsIgnoreCase("cant-press"))
|
||||
flairtime = MaybeOfflinePlayer.FlairTimeCantPress;
|
||||
else if (args[1].equalsIgnoreCase("none"))
|
||||
flairtime = MaybeOfflinePlayer.FlairTimeNone;
|
||||
else {
|
||||
try {
|
||||
flairtime = Short.parseShort(args[1]);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("§cFlairtime must be a number, \"non-presser\", \"cant-press\" or \"none\". Run without args to see usage.");
|
||||
return true;
|
||||
}
|
||||
} // TODO: Split config to per-player
|
||||
boolean cheater = false;
|
||||
if (args[2].equalsIgnoreCase("true"))
|
||||
cheater = true;
|
||||
else if (args[2].equalsIgnoreCase("false"))
|
||||
cheater = false;
|
||||
else {
|
||||
sender.sendMessage("§cUnknown value for cheater parameter. Run without args to see usage.");
|
||||
return true;
|
||||
}
|
||||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p
|
||||
.getUniqueId());
|
||||
mp.SetFlair(flairtime, cheater);
|
||||
mp.FlairState = FlairStates.Accepted;
|
||||
if (args.length < 4)
|
||||
mp.UserName = "";
|
||||
else {
|
||||
mp.UserName = args[3];
|
||||
if (!mp.UserNames.contains(args[3]))
|
||||
mp.UserNames.add(args[3]);
|
||||
}
|
||||
sender.sendMessage("§bThe flair has been set. Player: " + mp.PlayerName
|
||||
+ " Flair: " + mp.GetFormattedFlair() + "§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "setflair";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.admin;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class UpdatePlugin extends AdminCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Update plugin ----",
|
||||
"This command downloads the latest version of the plugin from GitHub" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAdminCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
sender.sendMessage("Updating Auto-Flair plugin...");
|
||||
System.out.println("Forced updating of Auto-Flair plugin.");
|
||||
URL url;
|
||||
try {
|
||||
url = new URL(
|
||||
"https://github.com/NorbiPeti/thebuttonmcchat/raw/master/TheButtonAutoFlair.jar");
|
||||
FileUtils.copyURLToFile(url, new File(
|
||||
"plugins/TheButtonAutoFlair.jar"));
|
||||
sender.sendMessage("Updating done!");
|
||||
} catch (MalformedURLException e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
PluginMain.LastException = e;
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
PluginMain.LastException = e;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAdminCommandName() {
|
||||
return "updateplugin";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.announce;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class AddCommand extends AnnounceCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Add announcement ----",
|
||||
"This command adds a new announcement",
|
||||
"Note: Please avoid using this command, if possible",
|
||||
"Instead, use the command blocks in flatworld to set announcements",
|
||||
"This makes editing announcements easier" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAnnounceCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 2; i < args.length; i++) {
|
||||
sb.append(args[i]);
|
||||
if (i != args.length - 1)
|
||||
sb.append(" ");
|
||||
}
|
||||
String finalmessage = sb.toString().replace('&', '§');
|
||||
PluginMain.AnnounceMessages.add(finalmessage);
|
||||
sender.sendMessage("§bAnnouncement added. - Plase avoid using this command if possible, see /u announce add without args.§r");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAnnounceCommandName() {
|
||||
return "add";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.announce;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class AnnounceCommand extends AnnounceCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] { "§6---- Announce ----",
|
||||
"Subcommands: add, settime, remove, list, edit" }; // TODO
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAnnounceCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAnnounceCommandName() {
|
||||
return "announce";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.announce;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.commands.ucmds.UCommandBase;
|
||||
|
||||
public abstract class AnnounceCommandBase extends UCommandBase {
|
||||
|
||||
public abstract String[] GetHelpText(String alias);
|
||||
|
||||
@Override
|
||||
public boolean OnUCommand(CommandSender sender, String alias, String[] args) {
|
||||
if (args.length == 0)
|
||||
return false;
|
||||
return OnAnnounceCommand(sender, alias,
|
||||
Arrays.copyOfRange(args, 1, args.length)); //TODO: Only allow OPs and mods to use it
|
||||
}
|
||||
|
||||
public abstract boolean OnAnnounceCommand(CommandSender sender,
|
||||
String alias, String[] args);
|
||||
|
||||
@Override
|
||||
public String GetUCommandName() {
|
||||
return "announce";
|
||||
}
|
||||
|
||||
public abstract String GetAnnounceCommandName();
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package io.github.norbipeti.thebuttonmcchat.commands.ucmds.announce;
|
||||
|
||||
import io.github.norbipeti.thebuttonmcchat.PluginMain;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class RemoveCommand extends AnnounceCommandBase {
|
||||
|
||||
@Override
|
||||
public String[] GetHelpText(String alias) {
|
||||
return new String[] {
|
||||
"§6---- Remove announcement ----",
|
||||
"This command removes an announcement",
|
||||
"Note: Please avoid using this command, if possible",
|
||||
"Instead, use the command blocks in flatworld to set announcements",
|
||||
"This makes editing announcements easier" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean OnAnnounceCommand(CommandSender sender, String alias,
|
||||
String[] args) {
|
||||
if (args.length < 1) {
|
||||
sender.sendMessage("§cUsage: /u announce remove <index>");
|
||||
return true;
|
||||
}
|
||||
PluginMain.AnnounceMessages.remove(Integer.parseInt(args[0]));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetAnnounceCommandName() {
|
||||
return "remove";
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue