Converted, moved and deleted some commands

Converted & noved:
/u opme
/yeehaw
/u c

Deleted:
/u admin playerinfo
/u admin updateplugin

Also made the FunComponent more configurable
Also removed old command registration, so some commands will stop working
#85
This commit is contained in:
Norbi Peti 2019-03-11 12:36:19 +01:00
parent e510667215
commit 5b5252382e
10 changed files with 246 additions and 294 deletions

View file

@ -39,5 +39,33 @@
<orderEntry type="library" name="Maven: org.anjocaido:EssentialsGroupManager:2.10.1" level="project" /> <orderEntry type="library" name="Maven: org.anjocaido:EssentialsGroupManager:2.10.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:21.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: net.md-5:bungeecord-chat:1.12-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.github.TBMCPlugins.ButtonCore:ButtonCore:master-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.htmlcleaner:htmlcleaner:2.16" level="project" />
<orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.reflections:reflections:0.9.10" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.19.0-GA" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:annotations:2.0.1" level="project" />
<orderEntry type="library" name="Maven: net.ess3:Essentials:2.13.1" level="project" />
<orderEntry type="library" name="Maven: com.github.TBMCPlugins.ButtonCore:Towny:8d3b6b6" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.milkbowl:VaultAPI:master-68f14eca20-1" level="project" />
<orderEntry type="library" name="Maven: org.bukkit:bukkit:1.13.1-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.16.16" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot:1.12.2-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.github.webbukkit:Dynmap-Towny:master-0.60-g924051d-7" level="project" />
<orderEntry type="library" name="Maven: com.github.webbukkit:Dynmap:v2.5" level="project" />
<orderEntry type="library" name="Maven: com.nijikokun.bukkit:Permissions:3.1.6" level="project" />
<orderEntry type="library" name="Maven: ru.tehkode:PermissionsEx:1.19.1" level="project" />
<orderEntry type="library" name="Maven: de.bananaco:bPermissions:2.9.1" level="project" />
<orderEntry type="library" name="Maven: com.platymuus.bukkit.permissions:PermissionsBukkit:1.6" level="project" />
<orderEntry type="library" name="Maven: org.anjocaido:EssentialsGroupManager:2.10.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
</component> </component>
</module> </module>

View file

@ -1,6 +1,5 @@
package buttondevteam.chat; package buttondevteam.chat;
import buttondevteam.chat.commands.YeehawCommand;
import buttondevteam.chat.components.announce.AnnouncerComponent; import buttondevteam.chat.components.announce.AnnouncerComponent;
import buttondevteam.chat.components.appendext.AppendTextComponent; import buttondevteam.chat.components.appendext.AppendTextComponent;
import buttondevteam.chat.components.flair.FlairComponent; import buttondevteam.chat.components.flair.FlairComponent;
@ -49,7 +48,6 @@ public class PluginMain extends ButtonPlugin { // Translated to Java: 2015.07.15
TBMCCoreAPI.RegisterEventsForExceptions(new PlayerListener(), this); TBMCCoreAPI.RegisterEventsForExceptions(new PlayerListener(), this);
TBMCCoreAPI.RegisterEventsForExceptions(new PlayerJoinLeaveListener(), this); TBMCCoreAPI.RegisterEventsForExceptions(new PlayerJoinLeaveListener(), this);
TBMCChatAPI.AddCommands(this, YeehawCommand.class);
MainPlugin.Instance.setChatHandlerEnabled(false); //Disable Core chat handler MainPlugin.Instance.setChatHandlerEnabled(false); //Disable Core chat handler
Console = this.getServer().getConsoleSender(); Console = this.getServer().getConsoleSender();

View file

@ -1,14 +1,13 @@
package buttondevteam.chat.commands.ucmds; package buttondevteam.chat.commands.ucmds;
import java.util.ArrayList;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import buttondevteam.chat.PluginMain; import buttondevteam.chat.PluginMain;
import buttondevteam.lib.chat.CommandClass; import buttondevteam.lib.chat.CommandClass;
import buttondevteam.lib.chat.TBMCChatAPI; import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.lib.chat.TBMCCommandBase; import buttondevteam.lib.chat.TBMCCommandBase;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
@CommandClass(modOnly = false) @CommandClass(modOnly = false)
public final class HelpCommand extends UCommandBase { public final class HelpCommand extends UCommandBase {
@ -46,7 +45,7 @@ public final class HelpCommand extends UCommandBase {
if (!text.contains("/" + topcmd)) if (!text.contains("/" + topcmd))
text.add("/" + topcmd); text.add("/" + topcmd);
} }
sender.sendMessage(text.toArray(new String[text.size()])); sender.sendMessage(text.toArray(new String[0]));
} else if (args[0].equalsIgnoreCase("colors")) { } else if (args[0].equalsIgnoreCase("colors")) {
sender.sendMessage(new String[] { "§6---- Chat colors/formats ----", // sender.sendMessage(new String[] { "§6---- Chat colors/formats ----", //
"Tellraw name - Code | Tellraw name - Code", // "Tellraw name - Code | Tellraw name - Code", //

View file

@ -1,21 +0,0 @@
package buttondevteam.chat.commands.ucmds;
import org.bukkit.command.CommandSender;
import buttondevteam.lib.chat.CommandClass;
@CommandClass(modOnly = false)
public class OpmeCommand extends UCommandBase {
@Override
public String[] GetHelpText(String alias) {
return new String[] { "§6---- OP me ----", "Totally makes you OP" };
}
@Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
sender.sendMessage("It would be nice, wouldn't it?");
return true;
}
}

View file

@ -1,43 +0,0 @@
package buttondevteam.chat.commands.ucmds.admin;
import org.bukkit.command.CommandSender;
import buttondevteam.chat.ChatPlayer;
import buttondevteam.lib.player.TBMCPlayerBase;
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 OnCommand(CommandSender sender, String alias, String[] args) {
if (args.length == 0) {
return false;
}
ChatPlayer p = TBMCPlayerBase.getFromName(args[0], ChatPlayer.class);
if (p == null) {
sender.sendMessage("§cPlayer not found: " + args[0] + "§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;
}
}

View file

@ -1,40 +0,0 @@
package buttondevteam.chat.commands.ucmds.admin;
import buttondevteam.chat.PluginMain;
import buttondevteam.core.component.updater.PluginUpdater;
import buttondevteam.lib.TBMCCoreAPI;
import org.bukkit.Bukkit;
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 a TBMC plugin from GitHub", //
"To update a plugin: /" + alias + " <plugin>", //
"To list the plugin names: /" + alias //
};
}
@Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
Bukkit.getScheduler().runTaskAsynchronously(PluginMain.Instance, () -> {
if (args.length == 0) {
sender.sendMessage("Downloading plugin names...");
boolean first = true;
for (String plugin : PluginUpdater.GetPluginNames()) {
if (first) {
sender.sendMessage("§6---- Plugin names ----");
first = false;
}
sender.sendMessage("- " + plugin);
}
} else
TBMCCoreAPI.UpdatePlugin(args[0], sender, args.length == 1 ? "master" : args[1]);
});
return true;
}
}

View file

@ -1,29 +1,24 @@
package buttondevteam.chat.commands.ucmds; package buttondevteam.chat.components.fun;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer; import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.PluginMain; import buttondevteam.chat.PluginMain;
import buttondevteam.lib.chat.*; import buttondevteam.lib.chat.*;
import buttondevteam.lib.player.TBMCPlayer; import buttondevteam.lib.player.TBMCPlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandClass(modOnly = false) @CommandClass(path = "u c", helpText = {
"Rainbow mode",
"This command allows you to talk in rainbow colors"
})
@OptionallyPlayerCommandClass(playerOnly = true) @OptionallyPlayerCommandClass(playerOnly = true)
public class CCommand extends UCommandBase { public class CCommand extends ICommand2MC {
@Command2.Subcommand
@Override public boolean def(CommandSender sender, @Command2.OptionalArg String color) {
public String[] GetHelpText(String alias) {
return new String[] { "§6---- Rainbow mode ----", "This command allows you to talk in rainbow colors",
"You need to be a donator or a mod to use this command" };
}
@Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
Player player = (Player) sender; Player player = (Player) sender;
ChatPlayer p = TBMCPlayer.getPlayer(player.getUniqueId(), ChatPlayer.class); ChatPlayer p = TBMCPlayer.getPlayer(player.getUniqueId(), ChatPlayer.class);
if (args.length < 1) { if (color == null) {
if (PluginMain.permission.has(player, "tbmc.rainbow")) { if (PluginMain.permission.has(player, "thorpe.color.rainbow")) {
p.RainbowPresserColorMode = !p.RainbowPresserColorMode; p.RainbowPresserColorMode = !p.RainbowPresserColorMode;
p.OtherColorMode = null; p.OtherColorMode = null;
if (p.RainbowPresserColorMode) if (p.RainbowPresserColorMode)
@ -31,17 +26,17 @@ public class CCommand extends UCommandBase {
else else
player.sendMessage("§eRainbow colors §cdisabled."); player.sendMessage("§eRainbow colors §cdisabled.");
} else { } else {
player.sendMessage("§cYou don't have permission for this command. Donate to get it!"); player.sendMessage("§cYou don't have permission for this command.");
return true; return true;
} }
} else { } else {
if (PluginMain.permission.has(player, "tbmc.admin")) { if (PluginMain.permission.has(player, "thorpe.color.custom")) {
p.RainbowPresserColorMode = false; p.RainbowPresserColorMode = false;
p.OtherColorMode = null; p.OtherColorMode = null;
try { try {
p.OtherColorMode = Color.valueOf(args[0].toLowerCase()); p.OtherColorMode = Color.valueOf(color.toLowerCase());
} catch (Exception e) { } catch (Exception e) {
player.sendMessage("§cUnknown message color: " + args[0]); player.sendMessage("§cUnknown message color: " + color);
player.sendMessage("§cUse color names, like blue, or dark_aqua"); player.sendMessage("§cUse color names, like blue, or dark_aqua");
} }
if (p.OtherColorMode != null) if (p.OtherColorMode != null)
@ -55,5 +50,4 @@ public class CCommand extends UCommandBase {
} }
return true; return true;
} }
} }

View file

@ -8,6 +8,7 @@ import buttondevteam.lib.TBMCCommandPreprocessEvent;
import buttondevteam.lib.TBMCSystemChatEvent; import buttondevteam.lib.TBMCSystemChatEvent;
import buttondevteam.lib.ThorpeUtils; import buttondevteam.lib.ThorpeUtils;
import buttondevteam.lib.architecture.Component; import buttondevteam.lib.architecture.Component;
import buttondevteam.lib.architecture.ConfigData;
import buttondevteam.lib.chat.TBMCChatAPI; import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.lib.player.ChromaGamerBase; import buttondevteam.lib.player.ChromaGamerBase;
import buttondevteam.lib.player.TBMCPlayer; import buttondevteam.lib.player.TBMCPlayer;
@ -29,7 +30,6 @@ import java.util.ArrayList;
import java.util.Random; import java.util.Random;
public class FunComponent extends Component<PluginMain> implements Listener { public class FunComponent extends Component<PluginMain> implements Listener {
private final static String[] LaughStrings = new String[]{"xd", "lel", "lawl", "kek", "lmao", "hue", "hah", "rofl"};
private boolean ActiveF = false; private boolean ActiveF = false;
private ChatPlayer FPlayer = null; private ChatPlayer FPlayer = null;
private BukkitTask Ftask = null; private BukkitTask Ftask = null;
@ -37,6 +37,19 @@ public class FunComponent extends Component<PluginMain> implements Listener {
private UnlolCommand command; private UnlolCommand command;
private TBMCSystemChatEvent.BroadcastTarget unlolTarget; private TBMCSystemChatEvent.BroadcastTarget unlolTarget;
private TBMCSystemChatEvent.BroadcastTarget fTarget; private TBMCSystemChatEvent.BroadcastTarget fTarget;
private ConfigData<String[]> laughStrings() {
return getConfig().getData("laughStrings", () -> new String[]{"xd", "lel", "lawl", "kek", "lmao", "hue", "hah", "rofl"});
}
private ConfigData<Boolean> respect() {
return getConfig().getData("respect", true);
}
private ConfigData<Boolean> unlol() {
return getConfig().getData("unlol", true);
}
@Override @Override
protected void enable() { protected void enable() {
unlolTarget = TBMCSystemChatEvent.BroadcastTarget.add("unlol"); unlolTarget = TBMCSystemChatEvent.BroadcastTarget.add("unlol");
@ -47,6 +60,9 @@ public class FunComponent extends Component<PluginMain> implements Listener {
registerCommand(command=new UnlolCommand(unlolTarget)); registerCommand(command=new UnlolCommand(unlolTarget));
registerListener(this); registerListener(this);
registerCommand(new FTopCommand()); registerCommand(new FTopCommand());
registerCommand(new OpmeCommand());
registerCommand(new YeehawCommand());
registerCommand(new CCommand());
} }
@Override @Override
@ -58,14 +74,16 @@ public class FunComponent extends Component<PluginMain> implements Listener {
if (ActiveF && !Fs.contains(sender) && message.equalsIgnoreCase("F")) if (ActiveF && !Fs.contains(sender) && message.equalsIgnoreCase("F"))
Fs.add(sender); Fs.add(sender);
if (unlol().get()) {
String msg = message.toLowerCase(); String msg = message.toLowerCase();
val lld = new UnlolCommand.LastlolData(sender, event, System.nanoTime()); val lld = new UnlolCommand.LastlolData(sender, event, System.nanoTime());
boolean add; boolean add;
if (add = msg.contains("lol")) if (add = msg.contains("lol"))
lld.setLolornot(true); lld.setLolornot(true);
else { else {
for (int i = 0; i < LaughStrings.length; i++) { String[] laughs = laughStrings().get();
if (add = msg.contains(LaughStrings[i])) { for (String laugh : laughs) {
if (add = msg.contains(laugh)) {
lld.setLolornot(false); lld.setLolornot(false);
break; break;
} }
@ -74,11 +92,12 @@ public class FunComponent extends Component<PluginMain> implements Listener {
if (add) if (add)
command.Lastlol.put(event.getChannel(), lld); command.Lastlol.put(event.getChannel(), lld);
} }
}
@EventHandler @EventHandler
public void onPlayerDeath(PlayerDeathEvent e) { public void onPlayerDeath(PlayerDeathEvent e) {
// MinigamePlayer mgp = Minigames.plugin.pdata.getMinigamePlayer(e.getEntity()); // MinigamePlayer mgp = Minigames.plugin.pdata.getMinigamePlayer(e.getEntity());
if (/* (mgp != null && !mgp.isInMinigame()) && */ new Random().nextBoolean()) { // Don't store Fs for NPCs if (e.getDeathMessage().length() > 0 && respect().get() && new Random().nextBoolean()) { // Don't store Fs for NPCs
Runnable tt = () -> { Runnable tt = () -> {
if (ActiveF) { if (ActiveF) {
ActiveF = false; ActiveF = false;
@ -105,12 +124,14 @@ public class FunComponent extends Component<PluginMain> implements Listener {
} }
@EventHandler @EventHandler
public void onPlayerLeave(PlayerQuitEvent event) { public void onPlayerLeave(PlayerQuitEvent event) {
if (unlol().get())
command.Lastlol.values().removeIf(lld -> lld.getLolowner().equals(event.getPlayer())); command.Lastlol.values().removeIf(lld -> lld.getLolowner().equals(event.getPlayer()));
} }
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onCommandPreprocess(TBMCCommandPreprocessEvent event) { public void onCommandPreprocess(TBMCCommandPreprocessEvent event) {
if (event.isCancelled()) return; if (event.isCancelled()) return;
if (!unlol().get()) return;
final String cmd = event.getMessage(); final String cmd = event.getMessage();
// We don't care if we have arguments // We don't care if we have arguments
if (cmd.toLowerCase().startsWith("/un")) { if (cmd.toLowerCase().startsWith("/un")) {

View file

@ -0,0 +1,18 @@
package buttondevteam.chat.components.fun;
import buttondevteam.lib.chat.Command2;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.lib.chat.ICommand2MC;
import org.bukkit.command.CommandSender;
@CommandClass(modOnly = false, path = "u opme", helpText = {
"OP me",
"Totally makes you OP"
})
public class OpmeCommand extends ICommand2MC {
@Command2.Subcommand
public boolean def(CommandSender sender) {
sender.sendMessage("It would be nice, wouldn't it?");
return true;
}
}

View file

@ -1,22 +1,20 @@
package buttondevteam.chat.commands; package buttondevteam.chat.components.fun;
import buttondevteam.lib.chat.Command2;
import buttondevteam.lib.chat.CommandClass; import buttondevteam.lib.chat.CommandClass;
import buttondevteam.lib.chat.TBMCCommandBase; import buttondevteam.lib.chat.ICommand2MC;
import buttondevteam.lib.player.TBMCYEEHAWEvent; import buttondevteam.lib.player.TBMCYEEHAWEvent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandClass(modOnly = false) @CommandClass(modOnly = false, helpText = {
public class YeehawCommand extends TBMCCommandBase { "YEEHAW command",
"This command makes you YEEHAW."
@Override })
public String[] GetHelpText(String alias) { public class YeehawCommand extends ICommand2MC {
return new String[] { "§6---- YEEHAW command ----", "This command makes you YEEHAW." }; @Command2.Subcommand
} public boolean def(CommandSender sender) {
@Override
public boolean OnCommand(CommandSender sender, String alias, String[] args) {
final String message = "§b* " final String message = "§b* "
+ (sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName()) + " §bYEEHAWs."; + (sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName()) + " §bYEEHAWs.";
for (Player p : Bukkit.getOnlinePlayers()) { for (Player p : Bukkit.getOnlinePlayers()) {