Add plugin

This commit is contained in:
len
2021-05-13 14:11:29 +02:00
parent 001d64b521
commit 4aa4726a4e
29 changed files with 363 additions and 66 deletions
@@ -0,0 +1,52 @@
package com.alttd.chat;
import com.alttd.chat.commands.GlobalChat;
import com.alttd.chat.handler.ChatHandler;
import com.alttd.chat.listeners.PlayerListener;
import org.bukkit.command.CommandExecutor;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class ChatPlugin extends JavaPlugin {
private static ChatPlugin instance;
private ChatAPI chatAPI;
private ChatHandler chatHandler;
@Override
public void onEnable() {
instance = this;
chatAPI = new ChatImplementation();
chatHandler = new ChatHandler();
registerListener(new PlayerListener());
registerCommand("globalchat", new GlobalChat());
}
@Override
public void onDisable() {
instance = null;
}
public void registerListener(Listener... listeners) {
for (Listener listener : listeners) {
getServer().getPluginManager().registerEvents(listener, this);
}
}
public void registerCommand(String commandName, CommandExecutor CommandExecutor) {
getCommand(commandName).setExecutor(CommandExecutor);
}
public static ChatPlugin getInstance() {
return instance;
}
public ChatAPI getChatAPI() {
return chatAPI;
}
public ChatHandler getChatHandler() {
return chatHandler;
}
}
@@ -0,0 +1,18 @@
package com.alttd.chat.commands;
import com.alttd.chat.ChatPlugin;
import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class GlobalChat implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
String message = StringUtils.join(args, " ", 0, args.length);
ChatPlugin.getInstance().getChatHandler().globalChat(sender, message);
return false;
}
}
@@ -0,0 +1,49 @@
package com.alttd.chat.handler;
import com.alttd.chat.ChatPlugin;
import com.alttd.chat.config.Config;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
public class ChatHandler {
private ChatPlugin plugin;
public ChatHandler() {
plugin = ChatPlugin.getInstance();
}
public void globalChat(CommandSender source, String message) {
String senderName, prefix = "";
Map<String, String> map = new HashMap<>();
if (source instanceof Player) {
Player sender = (Player) source;
senderName = sender.getDisplayName();
prefix = plugin.getChatAPI().getPrefix(sender.getUniqueId());
} else {
senderName = Config.CONSOLENAME;
}
MiniMessage miniMessage = MiniMessage.get();
if(!source.hasPermission("chat.format"))
message = miniMessage.stripTokens(message);
map.put("sender", senderName);
map.put("message", message);
map.put("server", Bukkit.getServerName());
map.put("prefix", prefix);
Component component = miniMessage.parse(Config.GCFORMAT, map);
Bukkit.broadcast(component, Config.GCPERMISSION);
// TODO this should be a plugin message, so proxy can handle the forwarding, we only do this on server level for [i] support
}
}
@@ -0,0 +1,15 @@
package com.alttd.chat.listeners;
import io.papermc.paper.event.player.AsyncChatEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class PlayerListener implements Listener {
@EventHandler(ignoreCancelled = true)
public void onPlayerChat(AsyncChatEvent event) {
Player player = event.getPlayer();
// TODO
}
}
+11
View File
@@ -0,0 +1,11 @@
name: ChatPlugin
version: ${project.version}
main: com.alttd.chat.ChatPlugin
api-version: 1.16
authors: [Destro, Teriuihi]
depend: [LuckPerms]
commands:
globalchat:
permission: command.globalchat
permission-message: You do not have permission!
aliases: gc