Added EmrageGHC'S Report Command reigistered!

Message fixes in PlayerManager.java!
Registered command in BlazeSMP.java
This commit is contained in:
DaTTV 2025-02-17 21:03:39 +01:00
parent 8fe081424f
commit f208ed5937
3 changed files with 131 additions and 2 deletions

View file

@ -2,6 +2,7 @@ package me.freezy.plugins.papermc.blazesmp;
import lombok.Getter;
import me.freezy.plugins.papermc.blazesmp.command.ClanCommand;
import me.freezy.plugins.papermc.blazesmp.command.ReportCommand;
import me.freezy.plugins.papermc.blazesmp.listener.PlayerChatListener;
import me.freezy.plugins.papermc.blazesmp.listener.PlayerCommandBlockerListener;
import me.freezy.plugins.papermc.blazesmp.listener.PlayerJoinListener;
@ -62,6 +63,7 @@ public final class BlazeSMP extends JavaPlugin {
this.log.info("Registering Commands...");
new ClanCommand().register();
new ReportCommand().register();
this.log.info("Registered Commands!");
this.log.info("Registering EventListeners...");

View file

@ -0,0 +1,112 @@
package me.freezy.plugins.papermc.blazesmp.command;
import me.freezy.plugins.papermc.blazesmp.command.util.SimpleCommand;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
public class ReportCommand extends SimpleCommand {
MiniMessage miniMessage = MiniMessage.miniMessage();
public ReportCommand() {
super("report");
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player reporter)) {
sender.sendMessage(miniMessage.deserialize("<b><i><color:#ff002f>Du darfst das nicht</color></i></b>"));
return true;
}
if (args.length < 2) {
sender.sendMessage(miniMessage.deserialize("<i><color:#ff0048>Benutze bitte:</color> <color:#ff00ee>/report</color> <blue><Spieler></blue> <dark_green><Grund></dark_green></i>"));
return true;
}
OfflinePlayer reportedPlayer = Bukkit.getOfflinePlayer(args[0]);
if (!reportedPlayer.hasPlayedBefore() && !reportedPlayer.isOnline()) {
reporter.sendMessage(miniMessage.deserialize("<color:#ff002f>Der Spieler existiert nicht oder war noch nie online!</color>"));
return true;
}
String reason = String.join(" ", args).substring(args[0].length()).trim();
reporter.sendMessage(miniMessage.deserialize(String.format("<green>Du hast</green> <white><b>%s</b></white> <green>erfolgreich wegen</green> <light_purple><i>%s</i></light_purple> <green>gemeldet</green>", reportedPlayer.getName(), reason)));
sendReportToDiscord(reporter.getName(), reportedPlayer.getName(), reason, reporter.getUniqueId());
return true;
}
private void sendReportToDiscord(String reporter, String reported, String reason, UUID reporterUUID) {
try {
String thumbnailUrl = "http://209.25.141.65:40018/v1/head/getHead/";
String jsonPayload = "{"
+ "\"username\": \"ReportBot\","
+ "\"embeds\": [{"
+ "\"title\": \"Neuer Report\","
+ "\"color\": 16711680," // Red color
+ "\"thumbnail\": {\"url\": \"" + thumbnailUrl+reporterUUID.toString() + "\"}," // Thumbnail
+ "\"fields\": ["
+ "{\"name\": \"Reporter\", \"value\": \"" + reporter + "\", \"inline\": true},"
+ "{\"name\": \"Gemeldeter Spieler\", \"value\": \"" + reported + "\", \"inline\": true},"
+ "{\"name\": \"Grund\", \"value\": \"" + reason + "\", \"inline\": false}"
+ "]"
+ "}]"
+ "}";
HttpURLConnection connection = getHttpURLConnection(jsonPayload);
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_NO_CONTENT || responseCode == HttpURLConnection.HTTP_OK) {
System.out.println("Report sent to Discord successfully!");
} else {
System.out.println("Failed to send report to Discord. Response code: " + responseCode);
}
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
private static @NotNull HttpURLConnection getHttpURLConnection(String jsonPayload) throws IOException {
String webhookUrl = "https://discord.com/api/webhooks/1341116066067124306/9A0wtk8zFWZwoQZFzSpP4derV2Sv92flq28aiYGIWLOUR2h6tslWH1_RLMWCjLDjBQK1";
URL url = new URL(webhookUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonPayload.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
return connection;
}
@Override
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
return Bukkit.getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> name.startsWith(args[0]))
.collect(Collectors.toList());
}
return List.of();
}
}

View file

@ -5,6 +5,7 @@ import me.freezy.plugins.papermc.blazesmp.module.Clan;
import me.freezy.plugins.papermc.blazesmp.module.manager.Clans;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
@ -63,14 +64,28 @@ public class PlayerManager {
"<color:dark_gray>[</color><gradient:#747e80:#828d8f><b>Player</b></gradient><color:dark_gray>]</color> "
)
);
if (clans.isInClan(playerUUID)) {
if (clans.isLeader(playerUUID)) {
prefix = prefix.append(MiniMessage.miniMessage().deserialize("<color:red>*</color>"));
} else if (clans.isVice(playerUUID)) {
prefix = prefix.append(MiniMessage.miniMessage().deserialize("<color:light_purple>*</color>"));
}
}
team.prefix(prefix);
Clan clan = clans.getClanByMember(playerUUID);
Component suffix;
if (clan != null) {
team.suffix(Component.text(" ").append(clan.getTag()));
suffix = (Component.text(" ").append(clan.getTag()));
} else {
team.suffix(Component.empty());
suffix = (Component.empty());
}
team.suffix();
team.addEntity(player);
team.addEntry(player.getName());
Component displayName = prefix.append(Component.text(player.getName())).append(suffix);
player.playerListName(displayName);
player.displayName(displayName);
}
private String generateRandomString(int length) {