From 115acaf9f281149b7db2ba57a8890d7f34049df3 Mon Sep 17 00:00:00 2001 From: Oskar Date: Tue, 14 Mar 2017 07:56:32 +0100 Subject: [PATCH] WIP --- pom.xml | 9 ++ .../staffchat/bungee/BungeeMain.java | 87 +++++++++++++++++++ .../command/BungeeStaffChatCommand.java | 75 ++++++++++++++++ .../bungee/event/BungeeChatListener.java | 24 +++++ .../staffchat/{ => spigot}/Main.java | 6 +- .../command/StaffChatCommand.java | 5 +- .../{ => spigot}/event/ChatListener.java | 4 +- src/main/resources/bungee.yml | 4 + src/main/resources/plugin.yml | 4 +- 9 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 src/main/java/me/oskar3123/staffchat/bungee/BungeeMain.java create mode 100644 src/main/java/me/oskar3123/staffchat/bungee/command/BungeeStaffChatCommand.java create mode 100644 src/main/java/me/oskar3123/staffchat/bungee/event/BungeeChatListener.java rename src/main/java/me/oskar3123/staffchat/{ => spigot}/Main.java (81%) rename src/main/java/me/oskar3123/staffchat/{ => spigot}/command/StaffChatCommand.java (94%) rename src/main/java/me/oskar3123/staffchat/{ => spigot}/event/ChatListener.java (94%) create mode 100644 src/main/resources/bungee.yml diff --git a/pom.xml b/pom.xml index b4288b6..56bfaf1 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,10 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + bungeecord-repo + https://oss.sonatype.org/content/repositories/snapshots/ + @@ -27,6 +31,11 @@ bukkit 1.11.2-R0.1-SNAPSHOT + + net.md-5 + bungeecord-api + 1.11-SNAPSHOT + diff --git a/src/main/java/me/oskar3123/staffchat/bungee/BungeeMain.java b/src/main/java/me/oskar3123/staffchat/bungee/BungeeMain.java new file mode 100644 index 0000000..4747fc9 --- /dev/null +++ b/src/main/java/me/oskar3123/staffchat/bungee/BungeeMain.java @@ -0,0 +1,87 @@ +package me.oskar3123.staffchat.bungee; + +import me.oskar3123.staffchat.bungee.command.BungeeStaffChatCommand; +import me.oskar3123.staffchat.bungee.event.BungeeChatListener; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.plugin.Plugin; +import net.md_5.bungee.config.Configuration; +import net.md_5.bungee.config.ConfigurationProvider; +import net.md_5.bungee.config.YamlConfiguration; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; + +public class BungeeMain extends Plugin +{ + + public final String usePerm = "staffchat.use"; + public final String seePerm = "staffchat.see"; + public final String commandPerm = "staffchat.command"; + public final String reloadPerm = "staffchat.reload"; + private Configuration config; + + public void onEnable() + { + saveDefaultConfig(); + if (!reloadConfig()) + { + getLogger().severe("Could not load config file, disabling plugin."); + return; + } + registerCommands(); + registerEvents(); + } + + private void registerCommands() + { + getProxy().getPluginManager().registerCommand(this, new BungeeStaffChatCommand(this)); + } + + private void registerEvents() + { + getProxy().getPluginManager().registerListener(this, new BungeeChatListener(this)); + } + + public boolean reloadConfig() + { + try + { + config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml")); + return true; + } + catch (IOException e) + { + return false; + } + } + + public Configuration getConfig() + { + return config; + } + + private void saveDefaultConfig() + { + if (!getDataFolder().exists()) + { + getDataFolder().mkdir(); + } + + File file = new File(getDataFolder(), "config.yml"); + + if (!file.exists()) + { + try (InputStream in = getResourceAsStream("config.yml")) + { + Files.copy(in, file.toPath()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + } + +} diff --git a/src/main/java/me/oskar3123/staffchat/bungee/command/BungeeStaffChatCommand.java b/src/main/java/me/oskar3123/staffchat/bungee/command/BungeeStaffChatCommand.java new file mode 100644 index 0000000..4cdc7b2 --- /dev/null +++ b/src/main/java/me/oskar3123/staffchat/bungee/command/BungeeStaffChatCommand.java @@ -0,0 +1,75 @@ +package me.oskar3123.staffchat.bungee.command; + +import me.oskar3123.staffchat.bungee.BungeeMain; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.plugin.Command; +import net.md_5.bungee.config.Configuration; + +public class BungeeStaffChatCommand extends Command +{ + + private BungeeMain plugin; + private Configuration config; + private static final String LABEL = "staffchat"; + + public BungeeStaffChatCommand(BungeeMain plugin) + { + super(LABEL); + this.plugin = plugin; + config = plugin.getConfig(); + } + + public void execute(CommandSender sender, String[] args) + { + String noPerm = clr(config.getString("messages.prefix") + config.getString("messages.nopermission")); + if (!sender.hasPermission(plugin.commandPerm)) + { + sender.sendMessage(noPerm); + return; + } + if (args.length < 1) + { + help(sender, LABEL); + return; + } + if (args[0].equalsIgnoreCase("reload")) + { + if (sender.hasPermission(plugin.reloadPerm)) + { + reload(sender); + } + else + { + sender.sendMessage(noPerm); + } + return; + } + help(sender, LABEL); + return; + } + + private void help(CommandSender sender, String label) + { + String prefix = clr(config.getString("messages.prefix")); + sender.sendMessage(prefix + "Version " + plugin.getDescription().getVersion() + ", made by oskar3123"); + if (sender.hasPermission(plugin.reloadPerm)) + { + sender.sendMessage(TextComponent.fromLegacyText(prefix + "/" + label + " reload - Reloads the config file")); + } + } + + private void reload(CommandSender sender) + { + plugin.reloadConfig(); + config = plugin.getConfig(); + sender.sendMessage(clr(config.getString("messages.prefix") + config.getString("messages.reloaded"))); + } + + private String clr(String string) + { + return ChatColor.translateAlternateColorCodes('&', string); + } + +} diff --git a/src/main/java/me/oskar3123/staffchat/bungee/event/BungeeChatListener.java b/src/main/java/me/oskar3123/staffchat/bungee/event/BungeeChatListener.java new file mode 100644 index 0000000..72c963c --- /dev/null +++ b/src/main/java/me/oskar3123/staffchat/bungee/event/BungeeChatListener.java @@ -0,0 +1,24 @@ +package me.oskar3123.staffchat.bungee.event; + +import me.oskar3123.staffchat.bungee.BungeeMain; +import net.md_5.bungee.api.event.ChatEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; + +public class BungeeChatListener implements Listener +{ + + BungeeMain plugin; + + public BungeeChatListener(BungeeMain plugin) + { + this.plugin = plugin; + } + + @EventHandler + public void chat(ChatEvent event) + { + + } + +} diff --git a/src/main/java/me/oskar3123/staffchat/Main.java b/src/main/java/me/oskar3123/staffchat/spigot/Main.java similarity index 81% rename from src/main/java/me/oskar3123/staffchat/Main.java rename to src/main/java/me/oskar3123/staffchat/spigot/Main.java index a919178..f7f3a19 100644 --- a/src/main/java/me/oskar3123/staffchat/Main.java +++ b/src/main/java/me/oskar3123/staffchat/spigot/Main.java @@ -1,7 +1,7 @@ -package me.oskar3123.staffchat; +package me.oskar3123.staffchat.spigot; -import me.oskar3123.staffchat.command.StaffChatCommand; -import me.oskar3123.staffchat.event.ChatListener; +import me.oskar3123.staffchat.spigot.command.StaffChatCommand; +import me.oskar3123.staffchat.spigot.event.ChatListener; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/me/oskar3123/staffchat/command/StaffChatCommand.java b/src/main/java/me/oskar3123/staffchat/spigot/command/StaffChatCommand.java similarity index 94% rename from src/main/java/me/oskar3123/staffchat/command/StaffChatCommand.java rename to src/main/java/me/oskar3123/staffchat/spigot/command/StaffChatCommand.java index b4b8dbb..7073f9b 100644 --- a/src/main/java/me/oskar3123/staffchat/command/StaffChatCommand.java +++ b/src/main/java/me/oskar3123/staffchat/spigot/command/StaffChatCommand.java @@ -1,11 +1,12 @@ -package me.oskar3123.staffchat.command; +package me.oskar3123.staffchat.spigot.command; -import me.oskar3123.staffchat.Main; +import me.oskar3123.staffchat.spigot.Main; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; public class StaffChatCommand implements CommandExecutor { diff --git a/src/main/java/me/oskar3123/staffchat/event/ChatListener.java b/src/main/java/me/oskar3123/staffchat/spigot/event/ChatListener.java similarity index 94% rename from src/main/java/me/oskar3123/staffchat/event/ChatListener.java rename to src/main/java/me/oskar3123/staffchat/spigot/event/ChatListener.java index 4e60bb7..c7e024c 100644 --- a/src/main/java/me/oskar3123/staffchat/event/ChatListener.java +++ b/src/main/java/me/oskar3123/staffchat/spigot/event/ChatListener.java @@ -1,6 +1,6 @@ -package me.oskar3123.staffchat.event; +package me.oskar3123.staffchat.spigot.event; -import me.oskar3123.staffchat.Main; +import me.oskar3123.staffchat.spigot.Main; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/resources/bungee.yml b/src/main/resources/bungee.yml new file mode 100644 index 0000000..6ee78cb --- /dev/null +++ b/src/main/resources/bungee.yml @@ -0,0 +1,4 @@ +name: StaffChat +authors: [oskar3123] +main: me.oskar3123.staffchat.bungee.BungeeMain +version: 1.0.0 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 25bf9aa..c84f2a9 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: StaffChat authors: [oskar3123] -main: me.oskar3123.staffchat.Main +main: me.oskar3123.staffchat.spigot.Main version: 1.0.0 commands: @@ -27,4 +27,4 @@ permissions: default: op staffchat.command: description: Allows you to use the staffchat command. - default: true \ No newline at end of file + default: true