Исходник Custom Prefix (мини гайд) | Exp 3.1

Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
96
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Сегодня сливаю создание кастомного префикса (вместо .bind вы можете использовать ?bind или любой ваш символ)
1. Создаем класс PrefixCommand и ставим код
Java:
package im.expensive.command.impl.feature;

import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.impl.PrefixImpl;
import im.expensive.command.Logger;
import im.expensive.command.prefix.PrefixStorage;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PrefixCommand implements Command {

    final Logger logger;
    final PrefixStorage prefixStorage;

    @Getter
    private String prefix;

    @Override
    public void execute(Parameters parameters) {
        String prefixFromParams = parameters.asString(0).orElse("");

        if (!prefixFromParams.isEmpty()) {
            prefixStorage.updatePrefix(prefixFromParams);
            this.prefix = prefixFromParams;
            logger.log("Префикс установлен на: " + prefixFromParams);
        } else {
            logger.log("Укажите символ для использования в качестве префикса");
        }
    }

    @Override
    public String name() {
        return "prefix";
    }

    @Override
    public String description() {
        return "Изменяет текущий префикс команд на указанный";
    }
}
2. Создаем класс PrefixStorage и ставим код

Java:
package im.expensive.command.prefix;

import im.expensive.utils.client.IMinecraft;
import lombok.Getter;
import lombok.SneakyThrows;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Collections;
import static java.io.File.separator;

public class PrefixStorage implements IMinecraft {

    @Getter
    private static String currentPrefix;

    private static final File prefixFile = new File(mc.gameDir, separator + "wonderful" + separator + "files" + separator + "prefix.cfg");

    static {
        loadPrefix();
    }

    @SneakyThrows
    public static void loadPrefix() {
        if (prefixFile.exists()) {
            currentPrefix = Files.readString(prefixFile.toPath()).trim();
        } else {
            currentPrefix = ".";
            save();
        }
    }

    public static void updatePrefix(String newPrefix) {
        currentPrefix = newPrefix;
        save();
    }

    @SneakyThrows
    private static void save() {
        Files.writeString(prefixFile.toPath(), currentPrefix, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
    }

    @SneakyThrows
    public static void refreshPrefix() {
        String newPrefix = Files.readString(prefixFile.toPath()).trim();
        if (!newPrefix.equals(currentPrefix)) {
            currentPrefix = newPrefix;
        }
    }
}
3. Заходим в код PrefixImpl и меняем существующий код на этот

Java:
package im.expensive.command.impl;

import im.expensive.command.Prefix;
import im.expensive.command.prefix.PrefixStorage;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class PrefixImpl implements Prefix {
    static String prefix;

    static {
        PrefixStorage.loadPrefix();
        prefix = PrefixStorage.getCurrentPrefix();
    }

    @Override
    public void set(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }

    @Override
    public String get() {
        PrefixStorage.refreshPrefix();
        return PrefixStorage.getCurrentPrefix();
    }

    public static void setPrefix(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }
}
Вот и все! Осталось зарегестрировать функцию, для этого
Заходим в главный класс(Expensive или другой) и делаем следующие шаги:
На примерно 70 строке прописываем зависимость
Java:
private PrefixStorage prefixStorage;
Потом в методе initCommands прописываем нашу команду
Java:
commands.add(new PrefixCommand(logger, prefixStorage));
Вот и все! Теперь при прописывании команды .prefix <символ (допустим @)> ваш префикс будет устанавливаться на @, при перезапуске остается таким же!
 
Начинающий
Статус
Оффлайн
Регистрация
26 Авг 2024
Сообщения
556
Реакции[?]
0
Поинты[?]
1K
Сегодня сливаю создание кастомного префикса (вместо .bind вы можете использовать ?bind или любой ваш символ)
1. Создаем класс PrefixCommand и ставим код
Java:
package im.expensive.command.impl.feature;

import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.impl.PrefixImpl;
import im.expensive.command.Logger;
import im.expensive.command.prefix.PrefixStorage;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PrefixCommand implements Command {

    final Logger logger;
    final PrefixStorage prefixStorage;

    @Getter
    private String prefix;

    @Override
    public void execute(Parameters parameters) {
        String prefixFromParams = parameters.asString(0).orElse("");

        if (!prefixFromParams.isEmpty()) {
            prefixStorage.updatePrefix(prefixFromParams);
            this.prefix = prefixFromParams;
            logger.log("Префикс установлен на: " + prefixFromParams);
        } else {
            logger.log("Укажите символ для использования в качестве префикса");
        }
    }

    @Override
    public String name() {
        return "prefix";
    }

    @Override
    public String description() {
        return "Изменяет текущий префикс команд на указанный";
    }
}
2. Создаем класс PrefixStorage и ставим код

Java:
package im.expensive.command.prefix;

import im.expensive.utils.client.IMinecraft;
import lombok.Getter;
import lombok.SneakyThrows;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Collections;
import static java.io.File.separator;

public class PrefixStorage implements IMinecraft {

    @Getter
    private static String currentPrefix;

    private static final File prefixFile = new File(mc.gameDir, separator + "wonderful" + separator + "files" + separator + "prefix.cfg");

    static {
        loadPrefix();
    }

    @SneakyThrows
    public static void loadPrefix() {
        if (prefixFile.exists()) {
            currentPrefix = Files.readString(prefixFile.toPath()).trim();
        } else {
            currentPrefix = ".";
            save();
        }
    }

    public static void updatePrefix(String newPrefix) {
        currentPrefix = newPrefix;
        save();
    }

    @SneakyThrows
    private static void save() {
        Files.writeString(prefixFile.toPath(), currentPrefix, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
    }

    @SneakyThrows
    public static void refreshPrefix() {
        String newPrefix = Files.readString(prefixFile.toPath()).trim();
        if (!newPrefix.equals(currentPrefix)) {
            currentPrefix = newPrefix;
        }
    }
}
3. Заходим в код PrefixImpl и меняем существующий код на этот

Java:
package im.expensive.command.impl;

import im.expensive.command.Prefix;
import im.expensive.command.prefix.PrefixStorage;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class PrefixImpl implements Prefix {
    static String prefix;

    static {
        PrefixStorage.loadPrefix();
        prefix = PrefixStorage.getCurrentPrefix();
    }

    @Override
    public void set(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }

    @Override
    public String get() {
        PrefixStorage.refreshPrefix();
        return PrefixStorage.getCurrentPrefix();
    }

    public static void setPrefix(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }
}
Вот и все! Осталось зарегестрировать функцию, для этого
Заходим в главный класс(Expensive или другой) и делаем следующие шаги:
На примерно 70 строке прописываем зависимость
Java:
private PrefixStorage prefixStorage;
Потом в методе initCommands прописываем нашу команду
Java:
commands.add(new PrefixCommand(logger, prefixStorage));
Вот и все! Теперь при прописывании команды .prefix <символ (допустим @)> ваш префикс будет устанавливаться на @, при перезапуске остается таким же!
годно, запастил в мега сасид клиент
 
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
829
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
+ реп
 
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,023
Реакции[?]
18
Поинты[?]
22K
Сегодня сливаю создание кастомного префикса (вместо .bind вы можете использовать ?bind или любой ваш символ)
1. Создаем класс PrefixCommand и ставим код
Java:
package im.expensive.command.impl.feature;

import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.impl.PrefixImpl;
import im.expensive.command.Logger;
import im.expensive.command.prefix.PrefixStorage;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PrefixCommand implements Command {

    final Logger logger;
    final PrefixStorage prefixStorage;

    @Getter
    private String prefix;

    @Override
    public void execute(Parameters parameters) {
        String prefixFromParams = parameters.asString(0).orElse("");

        if (!prefixFromParams.isEmpty()) {
            prefixStorage.updatePrefix(prefixFromParams);
            this.prefix = prefixFromParams;
            logger.log("Префикс установлен на: " + prefixFromParams);
        } else {
            logger.log("Укажите символ для использования в качестве префикса");
        }
    }

    @Override
    public String name() {
        return "prefix";
    }

    @Override
    public String description() {
        return "Изменяет текущий префикс команд на указанный";
    }
}
2. Создаем класс PrefixStorage и ставим код

Java:
package im.expensive.command.prefix;

import im.expensive.utils.client.IMinecraft;
import lombok.Getter;
import lombok.SneakyThrows;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Collections;
import static java.io.File.separator;

public class PrefixStorage implements IMinecraft {

    @Getter
    private static String currentPrefix;

    private static final File prefixFile = new File(mc.gameDir, separator + "wonderful" + separator + "files" + separator + "prefix.cfg");

    static {
        loadPrefix();
    }

    @SneakyThrows
    public static void loadPrefix() {
        if (prefixFile.exists()) {
            currentPrefix = Files.readString(prefixFile.toPath()).trim();
        } else {
            currentPrefix = ".";
            save();
        }
    }

    public static void updatePrefix(String newPrefix) {
        currentPrefix = newPrefix;
        save();
    }

    @SneakyThrows
    private static void save() {
        Files.writeString(prefixFile.toPath(), currentPrefix, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
    }

    @SneakyThrows
    public static void refreshPrefix() {
        String newPrefix = Files.readString(prefixFile.toPath()).trim();
        if (!newPrefix.equals(currentPrefix)) {
            currentPrefix = newPrefix;
        }
    }
}
3. Заходим в код PrefixImpl и меняем существующий код на этот

Java:
package im.expensive.command.impl;

import im.expensive.command.Prefix;
import im.expensive.command.prefix.PrefixStorage;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class PrefixImpl implements Prefix {
    static String prefix;

    static {
        PrefixStorage.loadPrefix();
        prefix = PrefixStorage.getCurrentPrefix();
    }

    @Override
    public void set(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }

    @Override
    public String get() {
        PrefixStorage.refreshPrefix();
        return PrefixStorage.getCurrentPrefix();
    }

    public static void setPrefix(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }
}
Вот и все! Осталось зарегестрировать функцию, для этого
Заходим в главный класс(Expensive или другой) и делаем следующие шаги:
На примерно 70 строке прописываем зависимость
Java:
private PrefixStorage prefixStorage;
Потом в методе initCommands прописываем нашу команду
Java:
commands.add(new PrefixCommand(logger, prefixStorage));
Вот и все! Теперь при прописывании команды .prefix <символ (допустим @)> ваш префикс будет устанавливаться на @, при перезапуске остается таким же!
пиздец что за хуйня вы чё ебанулись? можно было легче сделать
 
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
96
Реакции[?]
0
Поинты[?]
0
пиздец что за хуйня вы чё ебанулись? можно было легче сделать
Не отрицаю, но по факту все работает

Без prefixstorage пытался сделать, но при перезвпуске слетал префикс
можно было сделать в 1 файл еще и меньше в раз 455
/del
Захуярь команду в prefiximpl, который в 3.1 есть
 
Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2024
Сообщения
19
Реакции[?]
0
Поинты[?]
0
Сегодня сливаю создание кастомного префикса (вместо .bind вы можете использовать ?bind или любой ваш символ)
1. Создаем класс PrefixCommand и ставим код
Java:
package im.expensive.command.impl.feature;

import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.impl.PrefixImpl;
import im.expensive.command.Logger;
import im.expensive.command.prefix.PrefixStorage;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PrefixCommand implements Command {

    final Logger logger;
    final PrefixStorage prefixStorage;

    @Getter
    private String prefix;

    @Override
    public void execute(Parameters parameters) {
        String prefixFromParams = parameters.asString(0).orElse("");

        if (!prefixFromParams.isEmpty()) {
            prefixStorage.updatePrefix(prefixFromParams);
            this.prefix = prefixFromParams;
            logger.log("Префикс установлен на: " + prefixFromParams);
        } else {
            logger.log("Укажите символ для использования в качестве префикса");
        }
    }

    @Override
    public String name() {
        return "prefix";
    }

    @Override
    public String description() {
        return "Изменяет текущий префикс команд на указанный";
    }
}
2. Создаем класс PrefixStorage и ставим код

Java:
package im.expensive.command.prefix;

import im.expensive.utils.client.IMinecraft;
import lombok.Getter;
import lombok.SneakyThrows;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Collections;
import static java.io.File.separator;

public class PrefixStorage implements IMinecraft {

    @Getter
    private static String currentPrefix;

    private static final File prefixFile = new File(mc.gameDir, separator + "wonderful" + separator + "files" + separator + "prefix.cfg");

    static {
        loadPrefix();
    }

    @SneakyThrows
    public static void loadPrefix() {
        if (prefixFile.exists()) {
            currentPrefix = Files.readString(prefixFile.toPath()).trim();
        } else {
            currentPrefix = ".";
            save();
        }
    }

    public static void updatePrefix(String newPrefix) {
        currentPrefix = newPrefix;
        save();
    }

    @SneakyThrows
    private static void save() {
        Files.writeString(prefixFile.toPath(), currentPrefix, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
    }

    @SneakyThrows
    public static void refreshPrefix() {
        String newPrefix = Files.readString(prefixFile.toPath()).trim();
        if (!newPrefix.equals(currentPrefix)) {
            currentPrefix = newPrefix;
        }
    }
}
3. Заходим в код PrefixImpl и меняем существующий код на этот

Java:
package im.expensive.command.impl;

import im.expensive.command.Prefix;
import im.expensive.command.prefix.PrefixStorage;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class PrefixImpl implements Prefix {
    static String prefix;

    static {
        PrefixStorage.loadPrefix();
        prefix = PrefixStorage.getCurrentPrefix();
    }

    @Override
    public void set(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }

    @Override
    public String get() {
        PrefixStorage.refreshPrefix();
        return PrefixStorage.getCurrentPrefix();
    }

    public static void setPrefix(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }
}
Вот и все! Осталось зарегестрировать функцию, для этого
Заходим в главный класс(Expensive или другой) и делаем следующие шаги:
На примерно 70 строке прописываем зависимость
Java:
private PrefixStorage prefixStorage;
Потом в методе initCommands прописываем нашу команду
Java:
commands.add(new PrefixCommand(logger, prefixStorage));
Вот и все! Теперь при прописывании команды .prefix <символ (допустим @)> ваш префикс будет устанавливаться на @, при перезапуске остается таким же!
Нууу... Норм
Сегодня сливаю создание кастомного префикса (вместо .bind вы можете использовать ?bind или любой ваш символ)
1. Создаем класс PrefixCommand и ставим код
Java:
package im.expensive.command.impl.feature;

import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.impl.PrefixImpl;
import im.expensive.command.Logger;
import im.expensive.command.prefix.PrefixStorage;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PrefixCommand implements Command {

    final Logger logger;
    final PrefixStorage prefixStorage;

    @Getter
    private String prefix;

    @Override
    public void execute(Parameters parameters) {
        String prefixFromParams = parameters.asString(0).orElse("");

        if (!prefixFromParams.isEmpty()) {
            prefixStorage.updatePrefix(prefixFromParams);
            this.prefix = prefixFromParams;
            logger.log("Префикс установлен на: " + prefixFromParams);
        } else {
            logger.log("Укажите символ для использования в качестве префикса");
        }
    }

    @Override
    public String name() {
        return "prefix";
    }

    @Override
    public String description() {
        return "Изменяет текущий префикс команд на указанный";
    }
}
2. Создаем класс PrefixStorage и ставим код

Java:
package im.expensive.command.prefix;

import im.expensive.utils.client.IMinecraft;
import lombok.Getter;
import lombok.SneakyThrows;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Collections;
import static java.io.File.separator;

public class PrefixStorage implements IMinecraft {

    @Getter
    private static String currentPrefix;

    private static final File prefixFile = new File(mc.gameDir, separator + "wonderful" + separator + "files" + separator + "prefix.cfg");

    static {
        loadPrefix();
    }

    @SneakyThrows
    public static void loadPrefix() {
        if (prefixFile.exists()) {
            currentPrefix = Files.readString(prefixFile.toPath()).trim();
        } else {
            currentPrefix = ".";
            save();
        }
    }

    public static void updatePrefix(String newPrefix) {
        currentPrefix = newPrefix;
        save();
    }

    @SneakyThrows
    private static void save() {
        Files.writeString(prefixFile.toPath(), currentPrefix, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
    }

    @SneakyThrows
    public static void refreshPrefix() {
        String newPrefix = Files.readString(prefixFile.toPath()).trim();
        if (!newPrefix.equals(currentPrefix)) {
            currentPrefix = newPrefix;
        }
    }
}
3. Заходим в код PrefixImpl и меняем существующий код на этот

Java:
package im.expensive.command.impl;

import im.expensive.command.Prefix;
import im.expensive.command.prefix.PrefixStorage;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class PrefixImpl implements Prefix {
    static String prefix;

    static {
        PrefixStorage.loadPrefix();
        prefix = PrefixStorage.getCurrentPrefix();
    }

    @Override
    public void set(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }

    @Override
    public String get() {
        PrefixStorage.refreshPrefix();
        return PrefixStorage.getCurrentPrefix();
    }

    public static void setPrefix(String newPrefix) {
        prefix = newPrefix;
        PrefixStorage.updatePrefix(newPrefix);
    }
}
Вот и все! Осталось зарегестрировать функцию, для этого
Заходим в главный класс(Expensive или другой) и делаем следующие шаги:
На примерно 70 строке прописываем зависимость
Java:
private PrefixStorage prefixStorage;
Потом в методе initCommands прописываем нашу команду
Java:
commands.add(new PrefixCommand(logger, prefixStorage));
Вот и все! Теперь при прописывании команды .prefix <символ (допустим @)> ваш префикс будет устанавливаться на @, при перезапуске остается таким же!
+Реп
 
Сверху Снизу