Начинающий
- Статус
- Оффлайн
- Регистрация
- 4 Авг 2024
- Сообщения
- 100
- Реакции
- 0
- Выберите загрузчик игры
- OptiFine
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Я не знаю для кого это надо, но выпущу.
SS - Смысл обычная генерация.
SS - Смысл обычная генерация.
Код:
package org.excellent.client.utils.other;
import lombok.experimental.UtilityClass;
import java.security.SecureRandom;
import java.util.List;
@UtilityClass
public class NameGenerator {
private final SecureRandom random = new SecureRandom();
private static final String CONSONANTS = "bcdfghjklmnpqrstvwxz";
private static final String VOWELS = "aeiouy";
// Ники генерировал чат гпт
private final List<String> CORE_PARTS = List.of(
"Dark", "Wolf", "Fire", "Ice", "King", "Lord", "Ace", "Fox", "Cat",
"Sky", "Star", "Moon", "Sun", "Ghost", "Steel", "Neon", "Tech", "Pixel",
"Byte", "Zero", "Hero", "Ninja", "Sam", "Max", "Vex", "Rex", "Lux",
"Zen", "Jax", "Blade", "Fang", "Claw", "Storm", "Shadow", "Phantom",
"Cyber", "Drift", "Bolt", "Crash", "Dash", "Flame", "Frost", "Gale",
"Havoc", "Inferno", "Jolt", "Knight", "Lynx", "Mystic", "Nova"
);
private final List<String> MODIFIERS = List.of(
"X", "Z", "Q", "42", "99", "HD", "YT", "OG", "FX", "XL", "MC", "Pro",
"Prime", "Alpha", "Beta", "Omega", "Elite", "Ultra", "Mega", "Super",
"EX", "NX", "TX", "V2", "III", "VII", "XII", "99", "87", "64", "32"
);
private final List<String> FULL_NAMES = List.of(
"Raven", "Viper", "Onyx", "Echo", "Ivy", "Orion", "Axel", "Zane", "Kai",
"Jett", "Ryder", "Talon", "Draco", "Zephyr", "Cobra", "Vortex", "Blitz",
"Cipher", "Dagger", "Falcon", "Grim", "Halo", "Iron", "Jade", "Karma"
);
public String generate() {
int strategy = random.nextInt(100);
if (strategy < 30) {
return corePlusModifier();
} else if (strategy < 60) {
return fullNameWithSuffix();
} else if (strategy < 80) {
return generateRandomName();
} else {
return combinedParts();
}
}
private String corePlusModifier() {
String core = CORE_PARTS.get(random.nextInt(CORE_PARTS.size()));
String modifier = MODIFIERS.get(random.nextInt(MODIFIERS.size()));
if (random.nextBoolean() && (core.length() + modifier.length()) <= 10) {
return core + modifier;
}
int maxCoreLength = 10 - modifier.length();
if (maxCoreLength < 3) maxCoreLength = 3;
String adaptedCore = core.length() > maxCoreLength ?
core.substring(0, maxCoreLength) : core;
return adaptedCore + modifier;
}
private String fullNameWithSuffix() {
String name = FULL_NAMES.get(random.nextInt(FULL_NAMES.size()));
if (random.nextDouble() < 0.6) {
String suffix = MODIFIERS.get(random.nextInt(MODIFIERS.size()));
if (name.length() + suffix.length() <= 10) {
return name + suffix;
} else {
String shortSuffix = suffix.length() > 2 ?
suffix.substring(0, 2) : suffix;
if (name.length() + shortSuffix.length() <= 10) {
return name + shortSuffix;
}
}
}
if (name.length() > 10) {
return name.substring(0, 10);
}
return name;
}
private String generateRandomName() {
int length = random.nextInt(6) + 5;
StringBuilder name = new StringBuilder();
boolean startWithVowel = random.nextBoolean();
for (int i = 0; i < length; i++) {
if ((i % 2 == 0) ^ startWithVowel) {
name.append(CONSONANTS.charAt(random.nextInt(CONSONANTS.length())));
} else {
name.append(VOWELS.charAt(random.nextInt(VOWELS.length())));
}
}
name.setCharAt(0, Character.toUpperCase(name.charAt(0)));
if (random.nextDouble() < 0.3 && length < 10) {
name.append(random.nextInt(10));
}
if (random.nextDouble() < 0.2) {
leetSpeak(name);
}
return name.toString();
}
private String combinedParts() {
int parts = random.nextInt(2) + 2;
StringBuilder name = new StringBuilder();
for (int i = 0; i < parts; i++) {
List<String> source = i == 0 ? CORE_PARTS :
(random.nextBoolean() ? CORE_PARTS : FULL_NAMES);
String part = source.get(random.nextInt(source.size()));
int remainingLength = 10 - name.length();
if (part.length() > remainingLength && remainingLength >= 2) {
part = part.substring(0, remainingLength);
}
if (name.length() + part.length() <= 10) {
name.append(part);
}
if (name.length() >= 10) break;
}
applyRandomStyle(name);
return name.toString();
}
// Скажу зачем я это сделал. Я это сделал например есть ник Adkil.
// И тут A, i могут с шансом смениться на 4dkil или 4dk1l. Если хотите можете это вырезать.
// Эту бредятину чат гпт мне сгенерировал. Хотя без неё ники норм генерировались. Короче если надо вырезайте. Я её вырезал себе.
private void leetSpeak(StringBuilder name) {
for (int i = 0; i < name.length(); i++) {
switch (name.charAt(i)) {
case 'a':
case 'A':
name.setCharAt(i, '4');
break;
case 'e':
case 'E':
name.setCharAt(i, '3');
break;
case 'i':
case 'I':
name.setCharAt(i, '1');
break;
case 'o':
case 'O':
name.setCharAt(i, '0');
break;
case 's':
case 'S':
name.setCharAt(i, '5');
break;
case 't':
case 'T':
name.setCharAt(i, '7');
break;
}
}
}
private void applyRandomStyle(StringBuilder name) {
int style = random.nextInt(4);
switch (style) {
case 0:
for (int i = 1; i < name.length(); i++) {
if (i % 2 == 0 && random.nextDouble() < 0.5) {
name.setCharAt(i, Character.toUpperCase(name.charAt(i)));
}
}
break;
case 1:
if (name.length() <= 6) {
name.insert(0, "xX_");
name.append("_Xx");
if (name.length() > 10) name.setLength(10);
}
break;
case 2:
for (int i = 0; i < name.length(); i++) {
if (random.nextDouble() < 0.4) {
name.setCharAt(i, Character.toUpperCase(name.charAt(i)));
}
}
break;
}
}
}