mirror of
https://github.com/Freezy-Studios/BlazeSMP.git
synced 2025-04-21 21:14:04 +02:00
Added EmrageGHC'S Report Command reigistered!
Message fixes in PlayerManager.java! Registered command in BlazeSMP.java
This commit is contained in:
parent
8fe081424f
commit
f208ed5937
3 changed files with 131 additions and 2 deletions
|
@ -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...");
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue