Files
Velocity-Broadcast-Reborn/src/main/java/com/adzel/velocitybroadcast/BroadcastCommand.java

59 lines
2.0 KiB
Java

package com.adzel.velocitybroadcast;
import java.util.List;
import com.adzel.velocitybroadcast.util.DatabaseManager;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.command.SimpleCommand;
import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
public class BroadcastCommand implements SimpleCommand {
private final VelocityBroadcast plugin;
private final DatabaseManager databaseManager;
public BroadcastCommand(VelocityBroadcast plugin) {
this.plugin = plugin;
this.databaseManager = plugin.getDatabaseManager();
}
@Override
public void execute(Invocation invocation) {
CommandSource source = invocation.source();
List<String> args = List.of(invocation.arguments());
if (!source.hasPermission("vb.broadcast")) {
source.sendMessage(MiniMessage.miniMessage().deserialize("<red>You don't have permission to use this command.</red>"));
return;
}
if (args.isEmpty()) {
source.sendMessage(MiniMessage.miniMessage().deserialize("<red>Usage: /vb <message></red>"));
return;
}
String messageRaw = String.join(" ", args);
String prefix = plugin.getConfigHandler().getPrefix();
String fullMessage = prefix + messageRaw;
Component broadcast = MiniMessage.miniMessage().deserialize(fullMessage);
plugin.getServer().getAllPlayers().forEach(player -> player.sendMessage(broadcast));
if (plugin.getConfigHandler().isDebugEnabled()) {
plugin.getLogger().info("[Broadcast] Sent: " + fullMessage);
}
// ✅ Log to the database
String sender = (source instanceof Player)
? ((Player) source).getUsername()
: "Console";
String sourceServer = plugin.getServer().getBoundAddress().toString(); // optional
databaseManager.logBroadcast(sender, messageRaw, sourceServer);
}
}