хелп1. Для начала нам нужно открыть папку по пути im.expensive.command.feature. Далее создаем класс ReportCommand.java и вставляем этот код и заменяем на ваш вебхук:
джавка:package im.expensive.command.impl.feature; import im.expensive.command.Command; import im.expensive.command.Parameters; import im.expensive.command.impl.CommandException; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.stream.Collectors; import java.util.stream.Stream; @RequiredArgsConstructor @FieldDefaults(level = AccessLevel.PRIVATE) public class ReportCommand implements Command { Minecraft mc = Minecraft.getInstance(); String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); @Override public void execute(Parameters parameters) { // Получаем все параметры и объединяем их в одну строку String message = Stream.of(parameters.getAllParameters()) .map(Object::toString) .collect(Collectors.joining(" ")).trim(); if (message.isEmpty()) { throw new CommandException(TextFormatting.RED + "Необходимо указать сообщение."); } String webhookUrl = "https://discord.com/api/webhooks/1261290912013881377/wuc0L8d-CTvqy9aC_3F4Ex2N36z4t-onZ6wc9nUP8h7Ca3KRpafJKSurX8-D359iuRc_"; // Замените на ваш URL вебхука try { URL url = new URL(webhookUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoOutput(true); String jsonPayload = "{\"content\":\" "+ mc.player.getName().getUnformattedComponentText() + " / " + timeStamp + " / " + message + "\"}"; try (OutputStream os = connection.getOutputStream()) { byte[] input = jsonPayload.getBytes("utf-8"); os.write(input, 0, input.length); } int responseCode = connection.getResponseCode(); if (responseCode == 204) { System.out.println("Сообщение успешно отправлено в Discord."); } else { System.out.println("Ошибка при отправке сообщения в Discord. Код ответа: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } @Override public String name() { return "report"; } @Override public String description() { return "Отправить жалобу на недоработку/ошибку/идею"; } }
2. Переходим по пути im.expensive.command.Parameters (Interface) и добавляем это:
3. Переходим по пути im.expensive.command.impl.ParemetrsImpl и добавляем это:джавка:String getAllParameters();
4. Переходим по пути im.expensive и открываем главный класс Expensive.java. Ищем функцию initCommands() и пишем туда:джавка:@Override public String getAllParameters() { return String.join(" ", Arrays.asList(parameters)); }
Пример:джавка:commands.add(new ReportCommand());
5. Готово, можем заходить в майн и проверять работоспособность функции.джавка:private void initCommands() { Minecraft mc = Minecraft.getInstance(); Logger logger = new MultiLogger(List.of(new ConsoleLogger(), new MinecraftLogger())); List<Command> commands = new ArrayList<>(); Prefix prefix = new PrefixImpl(); commands.add(new ListCommand(commands, logger)); commands.add(new FriendCommand(prefix, logger, mc)); commands.add(new BindCommand(prefix, logger)); commands.add(new GPSCommand(prefix, logger)); commands.add(new ConfigCommand(configStorage, prefix, logger)); commands.add(new MacroCommand(macroManager, prefix, logger)); commands.add(new VClipCommand(prefix, logger, mc)); commands.add(new HClipCommand(prefix, logger, mc)); commands.add(new StaffCommand(prefix, logger)); commands.add(new MemoryCommand(logger)); commands.add(new RCTCommand(logger, mc)); commands.add(new ReportCommand()); AdviceCommandFactory adviceCommandFactory = new AdviceCommandFactoryImpl(logger); ParametersFactory parametersFactory = new ParametersFactoryImpl(); commandDispatcher = new StandaloneCommandDispatcher(commands, adviceCommandFactory, prefix, parametersFactory, logger); }
ps не бить, мой первый гайд