Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
Как-то слишком плохо сказано. Звучит как запугивание от будущего.Выкладывай любой ресурс любой сложности, который реально сделал ты. Любой опыт это опыт.
Если боишься критики, не выкладывай ничего, она будет всегда и это плюс, а не минус. Критики может не быть только в том случае, если нет людей которые тебя могут покритиковать, а это плохо.
Про уникальность можно много и долго говорить, но её не существует. Всегда идеи плагинов это что-то существующее, но улучшенное или сделанное под себя
Это называется снять розовые очки и посмотреть, как оно на самом деле работает. Любого разработчика можно критиковать за его решения и код, для этого создаются команды для ревью, чтобы совместно решать проблемы.Как-то слишком плохо сказано. Звучит как запугивание от будущего.
Как-то слишком плохо сказано. Звучит как запугивание от будущего.
Скорее всего, это была радужная реальность, которую ты и изобразил. Прямо сейчас я критикую то, что ты неправильно понимаешь.Это называется снять розовые очки и посмотреть, как оно на самом деле работает.
А смысл бояться того, что ты делаешь почти каждый день? Выходить на улицу - это что? Даже дома тебя закритиковать могут.но фраза "если боишься критики - не выкладывай ничего" действительно имеет смысл
Что конкретно? Я лишь сказал так, как оно есть. Не стоит говорить человеку то, чего не будет. Наврятли он сможет выложить ресурс, который будет без критики.Скорее всего, это была радужная реальность, которую ты и изобразил.
В чём я не прав?Прямо сейчас я критикую то, что ты неправильно понимаешь.
Это никак не реальность. Проведи опыт. Посмотри, сколько плагинов с гкодом осталось всё ещё на spigotmc.ru и на них отсутствует какая-либо критика, а их очень много...Что конкретно? Я лишь сказал так, как оно есть. Не стоит говорить человеку то, чего не будет. Наврятли он сможет выложить ресурс, который будет без критики.
Всё твое сообщение содержит бессмысленный текст. Ты лишь предположил события, которые вообще могут не случиться. Критика может играть во все стороны. Уникальности не существует, тьфу настоящий бред...В чём я не прав?![]()
Каждому человеку ты физически не сможешь написать ошибки. Все банальные примеры уже были разобраны в форумах с примерами их решений и писать очередному Пете, про то, что он сделал не так и не добавил MiniMessage, слишком лень, но такое происходит, если ресурс живой, получает апдейты и автор выложил свой код в открытый доступ.Это никак не реальность. Проведи опыт. Посмотри, сколько плагинов с гкодом осталось всё ещё на spigotmc.ru и на них отсутствует какая-либо критика, а их очень много...
Этот текст может быть тебе бессмыслен, потому что ты понимаешь его суть, а поверь, человек который задаёт вопрос "как выложить без критики" это не понимает, большинство людей не знают того, что знаешь ты, поэтому человек и спрашивает тут свой вопрос.Всё твое сообщение содержит бессмысленный текст. Ты лишь предположил события, которые вообще могут не случиться. Критика может играть во все стороны. Уникальности не существует, тьфу настоящий бред...
В любом случае, твои слова ошибочны.Каждому человеку ты физически не сможешь написать ошибки. Все банальные примеры уже были разобраны в форумах с примерами их решений и писать очередному Пете, про то, что он сделал не так и не добавил MiniMessage, слишком лень, но такое происходит, если ресурс живой, получает апдейты и автор выложил свой код в открытый доступ.
Я говорю о статистике.Ты говоришь о мёртвых плагинах, в которых сама идея, реализация и код были мёртворождённые: "плагин как на популярном сервере", никто туда лезть не будет без открытого кода хотябы.
Сути твоего текста - если не хочешь делать то, что ты делаешь каждый день, то не делай. Теперь думай.Этот текст может быть тебе бессмыслен, потому что ты понимаешь его суть, а поверь, человек который задаёт вопрос "как выложить без критики" это не понимает, большинство людей не знают того, что знаешь ты, поэтому человек и спрашивает тут свой вопрос.
Уникальность существует. Глубоко над этим рассуждать не стоит, ибо слишком весёлое понятие.Уникальности не существует и это факт, любого разработчика с опытом спроси такой вопрос, ответит тебе в такомже виде. Думать, что ты сделаешь что-то "уникальное" (именно в идее) это по детски. Нужно делать по уже готовым стандартам и получать фидбек, а не летать в голове с бабочками и думать как сделать то, чего не существует
Но ты всё равно в ней не прав!!!Ты лишь прав в одной сути: "Если не хочешь делать то, что ты делаешь каждый день, то не делай".
"Аргументировать не буду, но сллва ошибочны". Думай, как думаешь, я лишь высказал свою точку зрения, а ты своюВ любом случае, твои слова ошибочны.
Статистику никто не проводил, не я, не ты. Это субъективно и я сказал почемуЯ говорю о статистике.
Есть люди, которые бояться общаться с людьми, но делают это каждый день. Теперь думай. А если по серьёзному, то ты реально как к этому выводу пришёл, что если ты пишешь код, то ты не должен бояться за него? Какой-то бредик, переживать за своё творчество это нормально явлениеСути твоего текста - если не хочешь делать то, что ты делаешь каждый день, то не делай. Теперь думай.
Когда создашь уникальное, напиши мне в лс, я дам тебе денегУникальность существует. Глубоко над этим рассуждать не стоит, ибо слишком весёлое понятие.
Я никого не призывал, это ты додумал, так можно и оскорбиться от того, что и не было оскорблением (в интернете такое любят делать)Ты лишь прав в одной сути: "Если не хочешь делать то, что ты делаешь каждый день, то не делай". А это уже наводит на мысль, что ты пытался предложить тот же самый суицид человеку.
Я тебя услышал, это твоё мнение, я высказал своё. Рассуждать не по теме форума не буду большеДумайте, что пишите. А вы даже не понимаете!
Но ты всё равно в ней не прав!!!
Я лишь показал твои ошибки. Я тебе поставил понятия, где ты должен разобраться. А дело уже за тобой. Моей точки зрения - здесь и не было (хотя только если плагин на шрека!)"Аргументировать не буду, но сллва ошибочны". Думай, как думаешь, я лишь высказал свою точку зрения, а ты свою
Я провожу, спасибо, что за меня сказал нет.Статистику никто не проводил, не я, не ты. Это субъективно и я сказал почему
Люди не видят связи в этом, но не надо же её так разрушать!Есть люди, которые бояться общаться с людьми, но делают это каждый день. Теперь думай. А если по серьёзному, то ты реально как к этому выводу пришёл, что если ты пишешь код, то ты не должен бояться за него? Какой-то бредик, переживать за своё творчество это нормально явление
5Когда создашь уникальное, напиши мне в лс, я дам тебе денег
Тут прямо так и сказано, что человеку стоит уйти в небытие, а такое додумать сложно, уж поверь.Я никого не призывал, это ты додумал, так можно и оскорбиться от того, что и не было оскорблением (в интернете такое любят делать)
Моего мнения тут даже не было (кроме шрека). Это оффтоп... Вы кого-то боитесь? Серьёзно?Я тебя услышал, это твоё мнение, я высказал своё. Рассуждать не по теме форума не буду больше
Очень хотел бы поинтересоваться
Что можно выложить на форум,что бы не засрали и что бы было что то уникальное.Чего нету у других
| Эпоха | Ключевое правило генерации | Влияние на геймплей |
|---|---|---|
| Эра Титанов | Рудные жилы увеличены в 3 раза, глубина алмазов — Y=-64 до Y=-20. | Каждый блок глубже Y=0 имеет шанс 5% заменить текстуру на «древний камень» (не ломается без усилий). |
| Эра Ржавчины | Все медные и железные блоки окисляются мгновенно, редстоун работает со сбоями. | У красной пыли случайная задержка (1–4 тика), компары ломаются. Новый блок: «Корродированный поршень». |
| Эра Приливов | Уровень воды в мире повышается на 15 блоков, лава заменяется на базальт. | Появляется новое строение — «Затопленный храм» с призраками, наносящими урон сквозь броню. |
| Эра Тишины | Мобы не спавнятся, но любой звук (шаги, дверь, взрыв) призывает «Хранителя Тишины» — сущность, игнорирующую стены. | Абсолютный запрет на нотные блоки, порталы издают партиклы, но не звук. |
public class ChronoWeaveGenerator extends ChunkGenerator {
private final ChunkGenerator original;
private final Epoch currentEpoch;
@Override
public CompletableFuture<Chunk> generateChunk(...) {
CompletableFuture<Chunk> future = original.generateChunk(...);
return future.thenApply(chunk -> {
// Применяем дельту эпохи к палетте чанка
for (int x=0; x<16; x++) for (int z=0; z<16; z++) {
int y = chunk.getHighestBlockYAt(x, z);
BlockState state = chunk.getBlockState(x, y, z);
chunk.setBlockState(x, y, z, epochTransformer.transform(state), false);
}
return chunk;
});
}
}
@EventHandler
public void onEpochChange(PreEpochShiftEvent event) {
if (event.getNewEpoch() == Epoch.RUST && event.getEntropyLevel() > 0.8) {
event.setCancelled(true); // Запрещаем ржавчину, если энтропия слишком высока
}
}
Это на весь урок.1. Общая концепция (High-Level Concept)
Название: ChronoWeave (CW)
Целевая версия: Minecraft 1.20.4+ (Paper / Purpur с поддержкой Folia для region threading)
Суть: Плагин вводит глобальную механику «Хронологических Сдвигов» — периодических изменений правил генерации мира, физики блоков и игровых механик, зависящих от «индекса энтропии» сервера. Игроки не просто живут в мире — они влияют на его эпоху через коллективные действия, а каждая эпоха меняет саму структуру чанков (не визуально, а на уровне палетт и блочных стейтов).
Ключевая инновация: Динамическое переписывание генератора мира (ChunkGenerator) на лету без перезагрузки сервера, с сохранением компактных дельт для отката.
2. Архитектура ядра (Core Architecture)
Плагин должен состоять из 5 модулей:
Требование: Полная совместимость с AsyncWorldEdit и FAWE — запись должна проходить через ChronoWeave-фильтр.
- EpochManager — управляет текущей эпохой, индексом энтропии, таймером сдвигов.
- ChunkHook — перехватывает вызовы ChunkProviderServer и подменяет ChunkGenerator динамическим прокси.
- BlockTimeline — хранит для каждого блока в загруженных чанках его историю изменений по эпохам (не NBT, а битовая маска в дата-палетте).
- CatalystEngine — отвечает за ивенты, запускающие сдвиг: ритуалы игроков, глобальный баланс мобов, разрушение определенных структур.
- QuantumStorage — использует не SQL, а хранилище на основе Chronicle Map для версионирования чанков с нулевым копированием (off-heap memory).
3. Механика «Эпох» (Epoch Mechanics)
Всего 4 эпохи, но плагин поддерживает кастомные через API.
Сложный момент: Переход между эпохами не глобален для всего мира. Есть понятие «хроно-регионы» (Region of Influence, ROI) — эпоха может быть разной в разных биомах. Стык двух эпох порождает «Разлом времени» — вихрь, который телепортирует игрока в случайную ROI.
Эпоха Ключевое правило генерации Влияние на геймплей Эра Титанов Рудные жилы увеличены в 3 раза, глубина алмазов — Y=-64 до Y=-20. Каждый блок глубже Y=0 имеет шанс 5% заменить текстуру на «древний камень» (не ломается без усилий). Эра Ржавчины Все медные и железные блоки окисляются мгновенно, редстоун работает со сбоями. У красной пыли случайная задержка (1–4 тика), компары ломаются. Новый блок: «Корродированный поршень». Эра Приливов Уровень воды в мире повышается на 15 блоков, лава заменяется на базальт. Появляется новое строение — «Затопленный храм» с призраками, наносящими урон сквозь броню. Эра Тишины Мобы не спавнятся, но любой звук (шаги, дверь, взрыв) призывает «Хранителя Тишины» — сущность, игнорирующую стены. Абсолютный запрет на нотные блоки, порталы издают партиклы, но не звук.
4. Техническая сложность: Dynamic Chunk Generator
Проблема: Стандартный Bukkit не позволяет сменить генератор мира после создания мира.
Решение: Используем библиотеку Mixin (для Paper) или ByteBuddy для переопределения ChunkGenerator.generate на этапе выполнения.
Псевдо-логика:
Вызовы: Плагин должен подменять генератор не только для новых чанков, но и для уже загруженных — через сканирование регионов и регенерацию палетт (асинхронно, с приоритетом около игроков).Java:public class ChronoWeaveGenerator extends ChunkGenerator { private final ChunkGenerator original; private final Epoch currentEpoch; @Override public CompletableFuture<Chunk> generateChunk(...) { CompletableFuture<Chunk> future = original.generateChunk(...); return future.thenApply(chunk -> { // Применяем дельту эпохи к палетте чанка for (int x=0; x<16; x++) for (int z=0; z<16; z++) { int y = chunk.getHighestBlockYAt(x, z); BlockState state = chunk.getBlockState(x, y, z); chunk.setBlockState(x, y, z, epochTransformer.transform(state), false); } return chunk; }); } }
5. «Хранилище энтропии» (Entropy Vault)
Вместо обычного config.yml — бинарный файл с контролем целостности. Игроки могут создавать «Якоря времени» (блоки на основе незерита с ядром Края), которые локально замораживают смену эпохи в радиусе 32 блоков.
Детали: Якорь потребляет XP с земли (по 5 XP/мин с ближайшего источника опыта). Если XP нет — якорь разрушается и создает временную аномалию: область 3x3x3, где тики случайно сбрасываются (повторение событий каждые 2 секунды).
API для разработчиков:
Java:@EventHandler public void onEpochChange(PreEpochShiftEvent event) { if (event.getNewEpoch() == Epoch.RUST && event.getEntropyLevel() > 0.8) { event.setCancelled(true); // Запрещаем ржавчину, если энтропия слишком высока } }6. Оптимизация производительности (критично для сеньора)
- Проблема: Хранение истории каждого блока раздует RAM.
- Решение: Использовать «векторные эпохи» — в чанке хранится не список изменений, а битовая маска (epochId << 4) | blockStateId. Для блоков, которые никогда не менялись, маска не создается (COW — copy on write).
- Асинхронные сдвиги: Смена эпохи запускает background-задачу, которая перебирает чанки в радиусе 100 блоков от игроков с наивысшим приоритетом, остальные — в очереди с тик-лимитом 5 мс/тик.
- Интеграция с Folia: Если сервер на Folia, плагин обязан использовать региональные локации и избегать синхронизации на всей карте.
7. Команды и права (OP only для сложных)
Права: chronoweave.admin — все команды, chronoweave.anchor.place — разрешить ставить якорь.
- /chronoweave setepoch <epoch> [radius] — принудительный сдвиг.
- /chronoweave anchor list — показать все якоря времени.
- /chronoweave debug pallette <chunk> — вывести битовые маски блочных стейтов.
- /chronoweave simulate entropy [value] — симуляция глобальной энтропии для тестов.
8. Интеграция со сторонними плагинами (жестко)
- WorldGuard: Регионы с флагом chrono-locked игнорируют смену эпох.
- GriefPrevention: Участки владельцев не затрагиваются «Разломами времени».
- EcoEnchants: Некоторые зачарования (например, «Timeless» на кирку) позволяют игнорировать свойства блоков из эпохи.
- PlaceholderAPI: %chronoweave_epoch%, %chronoweave_entropy%, %chronoweave_anchor_count_player%.
9. Сценарий использования (User Story)
- Сервер работает в Эре Титанов. Игроки добывают много ресурсов.
- Кто-то случайно активирует «Храм Катастроф» (генерируется структурой под Спавном).
- Индекс энтропии прыгает с 40% до 92% — запускается 60-секундный таймер смены эпохи.
- Эпоха сменяется на Ржавчину. Механизмы игроков перестают работать, редстоун начинает глючить. Игроки вынуждены создавать якоря времени, чтобы защитить базу.
- Через 3 часа якоря истощают XP в регионе — происходит локальный сбой времени, который телепортирует игроков в Эру Приливов, создавая катастрофу на их базе (вода заливает шахту).
10. Ограничения и анти-эксплойты
- Не работает: Обход через /clone, WorldEdit-массы. Плагин перехватывает события BlockPhysicsEvent и корректирует.
- Падение TPS: Автоматическое отключение динамического генератора, если средний TPS < 18 за 5 секунд, с логгированием.
- Безопасность чата: Хранилище энтропии хэшируется каждые 10 минут, при расхождении — бэкап из последнего снипшота.
1. Общая концепция (High-Level Concept)
Название: ChronoWeave (CW)
Целевая версия: Minecraft 1.20.4+ (Paper / Purpur с поддержкой Folia для region threading)
Суть: Плагин вводит глобальную механику «Хронологических Сдвигов» — периодических изменений правил генерации мира, физики блоков и игровых механик, зависящих от «индекса энтропии» сервера. Игроки не просто живут в мире — они влияют на его эпоху через коллективные действия, а каждая эпоха меняет саму структуру чанков (не визуально, а на уровне палетт и блочных стейтов).
Ключевая инновация: Динамическое переписывание генератора мира (ChunkGenerator) на лету без перезагрузки сервера, с сохранением компактных дельт для отката.
2. Архитектура ядра (Core Architecture)
Плагин должен состоять из 5 модулей:
Требование: Полная совместимость с AsyncWorldEdit и FAWE — запись должна проходить через ChronoWeave-фильтр.
- EpochManager — управляет текущей эпохой, индексом энтропии, таймером сдвигов.
- ChunkHook — перехватывает вызовы ChunkProviderServer и подменяет ChunkGenerator динамическим прокси.
- BlockTimeline — хранит для каждого блока в загруженных чанках его историю изменений по эпохам (не NBT, а битовая маска в дата-палетте).
- CatalystEngine — отвечает за ивенты, запускающие сдвиг: ритуалы игроков, глобальный баланс мобов, разрушение определенных структур.
- QuantumStorage — использует не SQL, а хранилище на основе Chronicle Map для версионирования чанков с нулевым копированием (off-heap memory).
3. Механика «Эпох» (Epoch Mechanics)
Всего 4 эпохи, но плагин поддерживает кастомные через API.
Сложный момент: Переход между эпохами не глобален для всего мира. Есть понятие «хроно-регионы» (Region of Influence, ROI) — эпоха может быть разной в разных биомах. Стык двух эпох порождает «Разлом времени» — вихрь, который телепортирует игрока в случайную ROI.
Эпоха Ключевое правило генерации Влияние на геймплей Эра Титанов Рудные жилы увеличены в 3 раза, глубина алмазов — Y=-64 до Y=-20. Каждый блок глубже Y=0 имеет шанс 5% заменить текстуру на «древний камень» (не ломается без усилий). Эра Ржавчины Все медные и железные блоки окисляются мгновенно, редстоун работает со сбоями. У красной пыли случайная задержка (1–4 тика), компары ломаются. Новый блок: «Корродированный поршень». Эра Приливов Уровень воды в мире повышается на 15 блоков, лава заменяется на базальт. Появляется новое строение — «Затопленный храм» с призраками, наносящими урон сквозь броню. Эра Тишины Мобы не спавнятся, но любой звук (шаги, дверь, взрыв) призывает «Хранителя Тишины» — сущность, игнорирующую стены. Абсолютный запрет на нотные блоки, порталы издают партиклы, но не звук.
4. Техническая сложность: Dynamic Chunk Generator
Проблема: Стандартный Bukkit не позволяет сменить генератор мира после создания мира.
Решение: Используем библиотеку Mixin (для Paper) или ByteBuddy для переопределения ChunkGenerator.generate на этапе выполнения.
Псевдо-логика:
Вызовы: Плагин должен подменять генератор не только для новых чанков, но и для уже загруженных — через сканирование регионов и регенерацию палетт (асинхронно, с приоритетом около игроков).Java:public class ChronoWeaveGenerator extends ChunkGenerator { private final ChunkGenerator original; private final Epoch currentEpoch; @Override public CompletableFuture<Chunk> generateChunk(...) { CompletableFuture<Chunk> future = original.generateChunk(...); return future.thenApply(chunk -> { // Применяем дельту эпохи к палетте чанка for (int x=0; x<16; x++) for (int z=0; z<16; z++) { int y = chunk.getHighestBlockYAt(x, z); BlockState state = chunk.getBlockState(x, y, z); chunk.setBlockState(x, y, z, epochTransformer.transform(state), false); } return chunk; }); } }
5. «Хранилище энтропии» (Entropy Vault)
Вместо обычного config.yml — бинарный файл с контролем целостности. Игроки могут создавать «Якоря времени» (блоки на основе незерита с ядром Края), которые локально замораживают смену эпохи в радиусе 32 блоков.
Детали: Якорь потребляет XP с земли (по 5 XP/мин с ближайшего источника опыта). Если XP нет — якорь разрушается и создает временную аномалию: область 3x3x3, где тики случайно сбрасываются (повторение событий каждые 2 секунды).
API для разработчиков:
Java:@EventHandler public void onEpochChange(PreEpochShiftEvent event) { if (event.getNewEpoch() == Epoch.RUST && event.getEntropyLevel() > 0.8) { event.setCancelled(true); // Запрещаем ржавчину, если энтропия слишком высока } }6. Оптимизация производительности (критично для сеньора)
- Проблема: Хранение истории каждого блока раздует RAM.
- Решение: Использовать «векторные эпохи» — в чанке хранится не список изменений, а битовая маска (epochId << 4) | blockStateId. Для блоков, которые никогда не менялись, маска не создается (COW — copy on write).
- Асинхронные сдвиги: Смена эпохи запускает background-задачу, которая перебирает чанки в радиусе 100 блоков от игроков с наивысшим приоритетом, остальные — в очереди с тик-лимитом 5 мс/тик.
- Интеграция с Folia: Если сервер на Folia, плагин обязан использовать региональные локации и избегать синхронизации на всей карте.
7. Команды и права (OP only для сложных)
Права: chronoweave.admin — все команды, chronoweave.anchor.place — разрешить ставить якорь.
- /chronoweave setepoch <epoch> [radius] — принудительный сдвиг.
- /chronoweave anchor list — показать все якоря времени.
- /chronoweave debug pallette <chunk> — вывести битовые маски блочных стейтов.
- /chronoweave simulate entropy [value] — симуляция глобальной энтропии для тестов.
8. Интеграция со сторонними плагинами (жестко)
- WorldGuard: Регионы с флагом chrono-locked игнорируют смену эпох.
- GriefPrevention: Участки владельцев не затрагиваются «Разломами времени».
- EcoEnchants: Некоторые зачарования (например, «Timeless» на кирку) позволяют игнорировать свойства блоков из эпохи.
- PlaceholderAPI: %chronoweave_epoch%, %chronoweave_entropy%, %chronoweave_anchor_count_player%.
9. Сценарий использования (User Story)
- Сервер работает в Эре Титанов. Игроки добывают много ресурсов.
- Кто-то случайно активирует «Храм Катастроф» (генерируется структурой под Спавном).
- Индекс энтропии прыгает с 40% до 92% — запускается 60-секундный таймер смены эпохи.
- Эпоха сменяется на Ржавчину. Механизмы игроков перестают работать, редстоун начинает глючить. Игроки вынуждены создавать якоря времени, чтобы защитить базу.
- Через 3 часа якоря истощают XP в регионе — происходит локальный сбой времени, который телепортирует игроков в Эру Приливов, создавая катастрофу на их базе (вода заливает шахту).
10. Ограничения и анти-эксплойты
- Не работает: Обход через /clone, WorldEdit-массы. Плагин перехватывает события BlockPhysicsEvent и корректирует.
- Падение TPS: Автоматическое отключение динамического генератора, если средний TPS < 18 за 5 секунд, с логгированием.
- Безопасность чата: Хранилище энтропии хэшируется каждые 10 минут, при расхождении — бэкап из последнего снипшота.
Объединено
Это на весь урок.
Спасибо, капитан очевидность!И всё написано с помощью ГПТ
необязательно что то уникальное, дружище.Очень хотел бы поинтересоваться
Что можно выложить на форум,что бы не засрали и что бы было что то уникальное.Чего нету у других
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения