new component button and edit style
This commit is contained in:
parent
f6606796e8
commit
c0b43a28ba
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"WillLuke.nextjs.addTypesOnSave": true,
|
||||
"WillLuke.nextjs.hasPrompted": true
|
||||
}
|
259
prisma/seed.ts
259
prisma/seed.ts
@ -16,6 +16,9 @@ const userData: Prisma.UserCreateInput[] = [
|
||||
"Admin - один, я, Reload (минимально захожу в игру с этого аккаунта, а так сижу на пользователе Test, если вдруг кому нужно будет обратиться в игре).",
|
||||
"Guru - пока присвоен игроку Karabas (думаю вполне заслуженно).",
|
||||
"SpawnMasson - создан по инициативе и просьбе активных игроков сервера, помогающим приводить спавн в порядок и развивать его, а также оказывать всяческую поддержку новичкам (что и будет являться в дальнейшем задачей этого класса). Прошу учесть, что классы на данный момент не наделены дополнительными правами(да и в ближайшем будущем не планируется этого делать).Задача этой классификации как - то отметить по заслугам активность и заинтересованность отдельных игроков в нашем сервере."
|
||||
],
|
||||
listLinks: [
|
||||
"https://vk.com/club202785668",
|
||||
]
|
||||
},
|
||||
published: true,
|
||||
@ -32,7 +35,261 @@ const userData: Prisma.UserCreateInput[] = [
|
||||
]
|
||||
},
|
||||
published: true,
|
||||
}
|
||||
},
|
||||
{
|
||||
date: '10.08.2023',
|
||||
title: 'Хранение всех игровых данных переведо на новый сервер управления базами данных, добавлен мод новостного мода (написан администрацией проекта)',
|
||||
content: {
|
||||
listNews: [
|
||||
"Игровой сервер minetest пересобран с поддержкой клиента PostgreSQL, теперь всеми базами данных игры управляет (хранит, читает и записывает) PostgreSQL. Это лучшее решение на сегодняшний день в плане скорости и надежности для игрового сервера.",
|
||||
"Добавлен мод Newscaster, который добавляет новостного бота, пишущего периодически в чате информационные сообщения. Имя нашего бота MTSR, выделено цветом cyan."
|
||||
]
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '11.08.2023',
|
||||
title: 'Введена должность модератора и создана соответствующая группа',
|
||||
content: {
|
||||
listNews: [
|
||||
"Для поддержания порядка на сервере среди игроков был добавлен новый класс Moderator и даны дополнительные права её пользователям (да, я не собирался этого делать, но обстоятельcтва немного вынуждают).",
|
||||
"Я очень миролюбив и лоялен, как администратора сервера меня интересуют в проекте совсем другие вещи, ими и буду заниматься, а порядок теперь на плечах следующих игроков (просьба уважать их и слушаться): Preservoir, cubonist.",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '12.08.2023',
|
||||
title: 'Изменен один из модов привата территории, улучшен серверный новостной мод',
|
||||
content: {
|
||||
listNews: [
|
||||
"Имевшийся мод для привата территории simple_protection был отключен (им никто не пользовался), все пользовались блоками защиты.",
|
||||
"Вместо отключенного выше добавлен мод привата территории areas, он сразу позволяет пользователям приватить территорию, используя немного иной механизм.",
|
||||
"Мод нашего новостного бота newscaster обновлен",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '14.08.2023',
|
||||
title: 'Два мода удалены, два - добавлены, один руссифицирован',
|
||||
content: {
|
||||
listNews: [
|
||||
"Отключен мод Locked Travelnet, он не работал. И как выяснилось вчера, он дополняет мод travelnet 2019 года, а не тот (свежий и актуальный), который установлен у нас сейчас (по этой причине и были все проблемы).",
|
||||
"Вслед за Locked Travelnet решено отключить и мод Locks (ранее анонсированный), как аналогичный древний и не столь обходимый.",
|
||||
"Возможно эти удаления скрасит добавление мод-пака с автомобилями (Automobiles Pack) и топливом (Biofuel).",
|
||||
"Добавлен файл локализации на мод привата Area (могут быть неточности).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '19.08.2023',
|
||||
title: 'Изменения на обшественной ферме и в моде на приват Areas',
|
||||
content: {
|
||||
listNews: [
|
||||
"Общественная ферма немного преобразилась, разделившись на две части: SpawnUserFarm и SpawnSharedFarm",
|
||||
"Увеличен лимит привата мода Areas до размера 64х64х64 блоков (это более чем достаточно, к тому же таких приватов на данный момент можно иметь 3 штуки).",
|
||||
"Возможно эти удаления скрасит добавление мод-пака с автомобилями (Automobiles Pack) и топливом (Biofuel).",
|
||||
"Добавлен файл локализации на мод привата Area (могут быть неточности).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '24.08.2023',
|
||||
title: 'Из нового и старого (еще неанонсированного)',
|
||||
content: {
|
||||
listNews: [
|
||||
"Всё же благополучно добавлен мод X-Decor, который добавляет в игру массу различных вещей для декорации. Теперь он перестал давать ошибку на стороне клиента на нашем сервере. Пользуйтесь, украшайте и стилизуете свои строения.",
|
||||
"Добавлен крупный мод Advanced Trains. Поезда, железные дороги, системы организации движения. Этот мод скорее на перспективу развития игрового мира.",
|
||||
"Все иные транспортные моды (авто, мото, вело) считаем успешно опробованными. Кроме дополнительного веселья + сопутствующей сильной нагрузки на сервер ценности большой для сервера в них не вижу. Удалено.",
|
||||
"Начат процесс русификации основного технического мода сервера TA и его дополнений. Всю сложность долгого процесса перевода возложил на себя Preservoir (возможно не совсем осознавая глубину пропасти :) ). Уже переведена и добавлена на сервер часть дополнений к TA. Для основного документа по TA (доски с инструкциями) я дополнил мод TA новой русской доской с флагом (также приделан флаг для германии, английская же доска оставлена без изменений) с упрощенным крафтом из бумаги и палки (либо перекрафт из английской доски). Частично инструкция уже переведена (общие описания, блок TA1, часть TA2), остальные части будем дополнять по мере готовности.",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '30.08.2023',
|
||||
title: 'Новый отдельный интернет канал сервера, новый Guru, админ в отпуске',
|
||||
content: {
|
||||
listNews: [
|
||||
"Вчера (29.09) под сервер был организован отдельный канал интернета, временно были проблемы из-за переназначения домена на новый сетевой адрес. Теперь соединение должно стать еще более стабильным, поскольку ничто другое серверу мешать уже не будет.",
|
||||
"Игроку GRAFF присвоен класс Guru, он очень активно постигает мод Techage, дойдя до 5 эры. Текущие постройки обладают масштабностью и сложностью. Так что заслужил. Надеюсь азарт у него не пропадет)",
|
||||
"С 1 сентября я отправляюсь в двухнедельный отпуск, предстоит длинный путь и очень много мест для посещения. В силу этого порой мне будет не до наблюдения за сервером (чтоб меня не ждали и не искали в игре). Если что-то там с сервером вдруг произойдет (зависания, отключение и т.д.), то пишите в телеграмм, я постараюсь оперативно глянуть с телефона и по-возможности решить."
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '15.09.2023',
|
||||
title: 'Конец отпуска, мобы в nether, новые цветные блоки',
|
||||
content: {
|
||||
listNews: [
|
||||
"Админ вернулся из отпуска, теперь снова почаще и оперативнее буду в жизни сервера.",
|
||||
"Еще в отпуске был добавлен мод с nether миром, который располагается на глубине от -20к.",
|
||||
"Добавлены мобы для этого мира, сегодня по наводке игрока UFOshnik этим мобам прописаны корректные настройки для спавна (они теперь стали нормально появляться в nether мире).",
|
||||
"Добавлен мод на цветные блоки: стекло, обсидиан, камень, кирпич и дерево. Цвета не яркие, что на мой взгляд даже лучше (поиск в инвентаре по слову colored).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '17.09.2023',
|
||||
title: 'Upgrade cерверной двухпроцессорной рабочей станции Lenovo ThinkStation D30',
|
||||
content: {
|
||||
listNews: [
|
||||
"CPU - 2x Intel® Xeon® E5-2667 v2 @ 3.30GHz (до 4.00GHz на одно ядро в Turbo Boost), 16 ядер/32 потока суммарно.",
|
||||
"Memory - 512GB 1866 MHz DDR3.",
|
||||
"Storage - mSata SSD 128Gb + mirror HDD 1TB.",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '21.09.2023',
|
||||
title: 'Рецепты для artdeco, админ - грифер',
|
||||
content: {
|
||||
listNews: [
|
||||
"Для мода artdeco были добавлены рецепты. После добавления мода на сервер игрок H743 отметил, что для него нет никаких рецептов (видимо использовали его везде для креатив режима, который у нас на сервере не используется). После этого[Vitสliץ] OVV(он же VinAdmin) вызвался этот недочет устранить, что успешно и довольно оперативно исполнил.Так что строители сервера - можете начинать крафтить и использовать красивость, свои замечания и пожелания по рецептам просьба адресовать VinAdmin(текущие рецепты - это полностью его видение и реализация).",
|
||||
"Еще один игрок, GRAFF, указал мне на причину появления проблем с новыми ящиками, а также мельницами, которые периодически ломались на сервере. Все обвиняли гриферов (и я в том числе). Но, как выяснилось, грифером был я сам))), когда запускал команду очистки мира от мусора. Это она так отрабатывает, ломая мельницы. Главное, что теперь это известно, впредь будем использовать другие методы чистки при необходимости.",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '28.09.2023',
|
||||
title: 'Есть что почитать, во что одеться и будет что посмотреть',
|
||||
content: {
|
||||
listNews: [
|
||||
"На сервер добавлен чат лог (ChatLogger), который может быть вызван и просмотрен любым игрок командой /chatlog. Он хранит последние 1000 сообщений чата, по ним возможен поиск с соответствующей фильтрацией списка сообщений.",
|
||||
"Нас становится чуть больше (что приятно), поэтому на сервер были добавлены новые скины, можете выбирать и менять свой образ на какой-нибудь новый.",
|
||||
"Открыт канал сервера на платформе YouTube Со временем постепенно начнем его наполнять полезным и интересным контентом (надеюсь совместными усилиями игроков сервера).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '02.10.2023',
|
||||
title: 'Технические дополнения, скинов больше, а телепорты легче, узаконенное PvP, "властная" malika143, творческий и созидающий H743, весёлый бот MTSR и летописное древо сервера',
|
||||
content: {
|
||||
listNews: [
|
||||
"Добавлены дополнения для технического мода mesecons (digilines, digistuff и led Marquee).",
|
||||
"Незначительно дополнена база скинов по высказанным пожеланиям игроков сервера.",
|
||||
"Добавлен мод телепортации teleport request, позволяющий отправлять и принимать запросы игрокам для телепорта друг другу. Привилегия на использование по умолчанию не выдаётся, а добавляется вручную тем, кому данная возможность действительно нужна (игроки, играющие совместно).",
|
||||
"Добавлено новое правило по PvP, пока он отключен на всей территории мира, кроме специальной Арены. Наша первая Арена уже построена и действует (телепорт-кабинка расположена на спавне, Арена - рядом).",
|
||||
"Добавлен новый модератор - игрок malika143.",
|
||||
"Добавлена новая группа Builder, наделенная особыми правами и задачами на сервере. Первый и на ближайшее будущее точно единственный пользователь в ней - наш уникальный игрок H743.",
|
||||
"Чат бот сервера был обновлён и ему добавилась новая рубрика Шутка часа (по предложению игрока UFOshinik), свои шутки для добавления в ленту можно присылать мне через сообщения в телеграмм.",
|
||||
"По предложению игрока VinAdmin начали летопись нашего mtsr сервера (важные события и вехи прошлого, настоящего и скорого будущего). Летописное древо начало формироваться на спавне, идею и концепцию его заполнения следует совместно обсудить и начать придерживаться в будущем."
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '05.10.2023',
|
||||
title: 'Совместный опыт в "модостроительстве", в Guru всё теснее, посольства "тут и там", прощай лаги',
|
||||
content: {
|
||||
listNews: [
|
||||
"Добавлен мод tech_additions, добавляющий на сервер 4 новых блока (железо TA1, вольфрам, цинк и бабориум), а также рецепт для силикона из мода basic_materials. Блоки нужны прежде всего для компактности при хранении, продаже. Также необходимо отметить, что данный мод является нашим совместным творением (VinAdmin, UFOshnik и Reload), можно найти в git, он пока прост, но будет дополняться по мере необходимости согласно основному назначению.",
|
||||
"В группе Guru на сервере прибыло, поздравляем игрока CHITER!",
|
||||
"Наши товарищи с сервера НашиТУТ приступили к строительству своего посольства на нашем сервере. Посольство расположено вдоль ж/д линии, противоположной от спавна (есть ж/д остановка). Это очень интересная и полезная задумка, ведь какими бы ни были разногласия между политиками серверов, но нас всех при этом многое объединяет - minetest и его популяризация, развитие русского сегмента игры, организация игрового разнообразия русских серверов и т.д. Нам тоже предстоит постройка своего посольства у них (обращаюсь прежде всего к опытным строителям нашего сервера). Всем игрокам просьба по-возможности оказывать помощь (в материалах) строителям от НашихТУТ и проявлять уважение.",
|
||||
"Несколько дней немного лагало, тому было несколько причин: 1) отказывающий hdd в зеркале(временно сервер переведен на резервный быстрый hdd, чуть позже вернется на новое зеркало(hdd или ssd); 2) игровой lua код(змейка) пользователя someone, написанный в одном из блоков недавно добавленного мода digilines(пока выясняли эту причину, успели ликвидировать часть ветки ж/ д, которую потом пришлось восстанавливать).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '11.10.2023',
|
||||
title: 'От сумы да тюрьмы не зарекайся. Водку пить – себя губить. (Не) стыдно, когда видно',
|
||||
content: {
|
||||
listNews: [
|
||||
"Запущен интересный и оригинальный проект Тюрьма, для чего был написан соответствующий мод jail и построено тюремное здание Пустынка (со всеми сопутствующими удобствами). Первыми заключенными на добровольной основе стали три игрока: arbyzuk, xek130 и signelplayer. Все подробности изложены в соответствующей теме ТГ - канала, там будет и дальнейшее обсуждение проекта(его развитие).",
|
||||
"Как раз под проект Тюрьма добавили мод wine (особенно актуально настоящим и будущим осужденным), который добавляет в игру много различных питейных жидкостей, преимущественно алкогольных.",
|
||||
"Немного поковырявшись всё же добавил на сервер интерактивную карту, собрав mapserver из исходников под нашу freebsd систему. Теперь новая и живая карта сервера будет всегда доступна по понятному адресу https://map.minetestserver.ru. Думаю, что игроки заслужили эту возможность - следить в реальном времени за жизнью наших игроков и изменением ими огромного игрового мира.Ведь у нас же есть на что смотреть, не правда ли ?",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '21.10.2023',
|
||||
title: 'Развлечения, ютубер (его ролики, советы и друзья), сервер всё мощнее, летаем и плаваем по-настоящему, делаем игровой мир красивее',
|
||||
content: {
|
||||
listNews: [
|
||||
"В игровом мире стали появляться развлекательные места, первым таким местом стал Океанариум, построенный игроком VinAdmin (вход платный). Подробнее о нём предлагаю ознакомиться в теме ТГ-группы Проекты(постройки) игроков. О том как добраться можно прочитать на спавне на стойке Развлечения. На подходе завершение следующего проекта (Зоопарк). Ну и разогнались же мы...)",
|
||||
"На игровой сервер пришел и основательно поселился игрок n0m, приведя с собой целое мини-сообщество из игроков-разработчиков и просто активных людей) Стал требовать разное - то, другое, третье (мы за его желаниями не успеваем:) ). Но самое главное, он стал снимать видео ролики о нашем сервере, которые на мой взгляд очень органичны и придутся по душе большинству играющих.",
|
||||
"По советам n0m-а добавили мод строительные леса (scaffolding), а еще увеличили территорию под приват мода areas, размер территории теперь составляет 64х128х64 блоков, всего таких территорий доступно 6 штук.",
|
||||
"Улучшены характеристики дисковой системы сервера. А именно: 1) игровая база данных, папка minetest и динамическая карта перемещены на быстрый NVME диск 512 Гб, 2) добавлен дисковый массив raid10, состоящий из 4-ёх hdd емкостью по 3 Тб, который будет использоваться под журнальный раздел базы данных и для бэкапов NVME диска, 3) системный диск без изменений - 128 Гб mSata.",
|
||||
"В тестовом режиме добавлен мод на анимацию полета и плавания игроков (возможно останется, если не будет нагружать сервер и клиент).",
|
||||
"Один из приведенных на сервер n0m-ом игроков (bazrov) создает свой пакет текстур (nice_realistic). Создана соответствующая тема в ТГ-группе по текстурам, там же можно ознакомиться подробнее, как установить и к тому же задать вопросы разработчику пака nice_realistic. Мы поддерживаем отечественных разработчиков в сфере minetest и с радостью предоставим свои возможности по организации обратной связи наших игроков с ними."
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '03.11.2023',
|
||||
title: 'Стреляем метко, смотрим меня на youtube, новые моды, резервное питание для сервера, русская инструкция techage, обновленный сайт, наши тестеры',
|
||||
content: {
|
||||
listNews: [
|
||||
"Вторым развлекательным местом стал Стрелковый тир, построенный игроком signelplayer (вход бесплатный). Подробнее о нём можно ознакомиться в теме ТГ-группы Проекты(постройки) игроков, а также на стойке Развлечения у спавна.",
|
||||
"Долго запрягал, но всё же занялся нашим YouTube каналом и снял два ролика. Смотрим и критикуем). Снимать много не планирую, буду продолжать это делать постепенно.",
|
||||
"Добавлены некоторые интересные и полезные моды: smartshop (улучшенный магазин), x_bows (лук и стрелы), filter (фильтр чата) и j_mute (отключение игроков от чата).",
|
||||
"Организовано качественное резервное питание для сервера и серверного роутера.",
|
||||
"Дополнен перевод инструкции мода Techage, доработку по-прежнему продолжает один единственный игрок и модератор сервера Preservoir.",
|
||||
"Приятно удивил игрок UFOshnik, по своей инициативе украсив внешний вид нашей web-странички (наверное это все заметили, а теперь вы знаете, кто за этим стоит). Я результатом очень доволен)",
|
||||
"На сервер пришла очень сплоченная и дружная команда тестеров, яро взявшись за поиски недочетов сервера и его багов, ничего не прося за это (что конечно радует), благодаря им: 1) - много лучше защитили территорию спавна от гриферства, 2) - нашли на карте и временно убрали несколько блоков из мультидекора, крашащих сервер(до момента исправления мода Автором), 3) - добавили штатную систему отката игрового мира по игрокам и их действиям для восстановления после атак гриферов, 4) - начали разрабатывать уникальную дополнительную защиту от гриферства на сервере силами продвинутых игроков(nikaru, littlePrettyCat), 5) - существенно пополнили игровую базу и онлайн новыми игроками.",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '12.11.2023',
|
||||
title: 'Всё больше красоты и техничности, новый techage и русификация, используем твердую нефть по-новому, деятель недели ksandr, апгрейд сервера, разгружаем спавн',
|
||||
content: {
|
||||
listNews: [
|
||||
"Несколько новых модов на сервере для декора и техничности: glass_stained (красивые стекла разного размера и фактуры), digtron (тоннелепроходческие машины).",
|
||||
"Обновлен наш самый основной технический пак модов techage_modpack, в нем целый ряд дополнений и улучшений. Вся имевшаяся русификация сохранена, а часть даже еще и дополнена.",
|
||||
"В русификации нашего сервера пополнения - новость выше, а также часть уже имевшихся модов на сервере перевёл один из самых активных и инициативных игроков ksandr (на его чистой совести переводы аддонов techage_modpack, choppy, smartshop).",
|
||||
"После столь грандиозного и масштабного обсуждения твердой нефти из multidecor (в группе ТГ-канала) добавлены два новых рецепта для её использования (игроком VinAdmin).",
|
||||
"Упоминаемый ранее игрок ksandr развивает на сервере сеть заправок для джетпака, опоясав всю карту по нулевой горизонтали. Путешествуйте по карте, ищите красивые места - долой лагучий спавн!",
|
||||
"Железо сервера полностью обновлено и замещено более бодрым: 1) CPU - 2x Intel® Xeon® E5 - 2697 v3 @2.60GHz(до 3.60GHz на одно ядро в Turbo Boost), 28 ядер / 56 потоков суммарно. 2) Memory - 8х16Gb(128Gb) 2133MHz DDR4. 3) Storage - SSD M2 128Gb(система) + NVME 512Gb(база) + HDD 2 Tb(бэкапы), + чуть позже организую raid10. 4) Система снова FreeBSD).",
|
||||
"Очень сильно стал проседать fps у игроков на спавне (сервер не виноват, виновата перегруженная карта). Просьба по-возможности разгрузить эту территорию, перенеся свои технические постройки чуть дальше (обсудим в ТГ-канале).",
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
|
||||
{
|
||||
date: '04.12.2023',
|
||||
title: 'Готовим и едим, подсвечиваем и переписываемся лучше и удобнее; "зверьё моё"; на пороге восстания мобов; "кручу-верчу" - высоко сижу, далеко гляжу; больше русских модов, "ничего себе, игровой чат и там, и тут передают... до чего техника дошла!"; магниты коллайдера нас теперь не крашат; если вдруг захотелось мигрировать официально - теперь можно и есть куда)',
|
||||
content: {
|
||||
listNews: [
|
||||
"Очередные небольшие новые моды: Your Dad's BBQ (добавляет коптильню, приготовление разной пищи и др.), morelights (добавляет более 30 предметов освещения), betterpm (улучшенные личные сообщения чата).",
|
||||
"Зоопарк наконец-то открыт для посещения, свободного для всех! Делал анонс в соответствующей теме тг-канала Проекты(постройки) игроков, строитель и заведующий зоопарка - malika143 (ловитель сбегающих животных - я).",
|
||||
"Отдельное хочется выделить старания игрока nikaru в создании системы модов minigames-dev-pack для организации моб-арен на сервере. Моб-арены строит наш работающий без отдыха и перерывов H743.",
|
||||
"Очень интересный технический объект появился на территории до сих пор официально не анонсированного (что постараемся скоро исправить) целого города на сервере - колесо обозрения, дело рук часто упоминаемых H743 и ksandr.",
|
||||
"Русифицированы моды morelights, doc, digtron, betterpm усилиями игрока ksandr (+мной).",
|
||||
"В discord группе сервера по многочисленным пожеланиям добавился канал игрового чата, транслирующий онлайн все беседы в общем чате. Можно даже передать привет играющим, помочь советом и прочее, отправив сообщение прямо в канале.",
|
||||
"Обновлён основной технический пак модов сервера techage_modpack, автором мода устранены некоторые серьезные ошибки (которые нас также успели коснуться) и недочёты.",
|
||||
"Наши товарищи с сервера НАШИтут сообщили о конце строительства своего посольства у нас на сервере. Все могут ознакомиться с завершенным объектом) есть соответствующая остановка метро. Нам нужно держать ответ, так что кто может, умеет, хочет, обладает лишними ресурсами на том сервере - просьба отозваться)"
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
{
|
||||
date: '21.12.2023',
|
||||
title: 'Добавляем, настраиваем и оптимизируем моды; новые "хозяева" discord-канала; второй игровой сервер с интересным режимом; подготовка к приближению нового года; русская энциклопедия minetest (wiki mtsr)',
|
||||
content: {
|
||||
listNews: [
|
||||
"По предложению игрока n0m добавились два новых блока из булыжника для разнообразия ваших построек (можно найти по поиску cobble), стрелы из лука мода x_bows теперь не наносят урон игрокам, добавлен доработанный игроком Meow мод на анимацию поворота головы (headanimoptimize), добавлен мод death_compass для возможности найти свои кости после смерти.",
|
||||
"Управлением и реорганизацией Dicord-канала по собственному желанию решил заняться n0m, препятствовать никто не стал. В результате discord канал сильно преобразился в лучшую сторону, присоединяйтесь и оцените.",
|
||||
"Запущен второй игровой сервер с версией игры Mineclone2 (похож на выживание в minecraft) по адресу minetestserver.ru:30001. Сервер публичный, можно найти по поиску mtsr в общем списке серверов клиента-minetest. Для обсуждения в ТГ-канале создана отдельная тема.",
|
||||
"Открыта отдельная новогодняя локация, построенная игроками сервера (Hohoni77, H743, malika143, VinAdmin). Подробнее можно ознакомиться в видео обзоре на нашем канале в youtube.",
|
||||
"По предложению игрока RichardTry на сервер добавлена отдельная wiki-страница по адресу https://wiki.minetestserver.ru Постепенно будем её наполнять всяческой важной, полезной и интересной информацией, которая может пригодиться очень многим. Доступ к написанию, редактированию страниц пока выдан всем зарегистрированным пользователям, так что присоединяйтесь к наполнению!"
|
||||
],
|
||||
},
|
||||
published: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
@ -1,7 +1,7 @@
|
||||
const Footer = () => {
|
||||
return (
|
||||
<footer>
|
||||
<p>Game server version 5.11.1 on ArchLinux OS | 2025, Saint Petersburg, Russia</p>
|
||||
<i>Game server version 5.11.0 on ArchLinux OS | 2025, Saint Petersburg, Russia</i>
|
||||
</footer>
|
||||
)
|
||||
}
|
||||
|
@ -4,8 +4,7 @@ import Link from "next/link"
|
||||
const Header = () => {
|
||||
return (
|
||||
<header>
|
||||
<Image src="/logo.png" alt="Баннер сайта" width={800} height={205} />
|
||||
<h1>Добро пожаловать на LuantiServer.Ru!</h1>
|
||||
<Image src="/logo.png" alt="Баннер сайта" width={800} height={205} priority={true} />
|
||||
</header>
|
||||
)
|
||||
}
|
||||
|
17
src/app/components/ListNews.tsx
Normal file
17
src/app/components/ListNews.tsx
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
interface ListNewsProps {
|
||||
news: string[]
|
||||
}
|
||||
|
||||
const ListNews = ({ news }: ListNewsProps) => {
|
||||
news.map((oneNews: string, i) => {
|
||||
return (
|
||||
<div key={oneNews}>
|
||||
<b>{i + 1}</b> {news[i]}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
export default ListNews
|
@ -1,14 +1,13 @@
|
||||
import Link from "next/link"
|
||||
import Image from "next/link"
|
||||
|
||||
const MenuBar = () => {
|
||||
return (
|
||||
<div className="menuBar">
|
||||
<nav>
|
||||
<Link href="/">Главная</ Link>
|
||||
<Link href="https://t.me/MinetestServerRu">Telegram</ Link>
|
||||
<Link href="https://t.me/LuantiServerRu">Telegram</ Link>
|
||||
<Link href="https://discord.gg/RKkjNbXGv3">Discord</ Link>
|
||||
<Link href="https://www.youtube.com/@MineTestServerRu">YouTube</ Link>
|
||||
<Link href="https://www.youtube.com/@LuantiServerRu">YouTube</ Link>
|
||||
<Link href="https://peertube.minetestserver.ru/">Peertube</ Link>
|
||||
<Link href="https://wiki.luanti.ru/">Вики</ Link>
|
||||
<Link href="https://mastodon.luanti.ru/public/local/">Mastodon</ Link>
|
||||
|
@ -1,4 +1,7 @@
|
||||
const OneNews = ({ oneNews }) => {
|
||||
import ListNews from "@/app/components/ListNews";
|
||||
|
||||
const OneNews = ({ oneNews }: any) => {
|
||||
const listNews = oneNews.content.listNews;
|
||||
return (
|
||||
<div>
|
||||
<div className="newsTopic">
|
||||
@ -6,6 +9,7 @@ const OneNews = ({ oneNews }) => {
|
||||
<div className="newsTitle">{oneNews.title}</div>
|
||||
</div>
|
||||
<div className="newsContent">
|
||||
|
||||
{
|
||||
Object.keys(oneNews.content.listNews as { listNews: string[] }).map((nubmerNews, i) => {
|
||||
|
||||
@ -14,12 +18,10 @@ const OneNews = ({ oneNews }) => {
|
||||
) {
|
||||
return (
|
||||
<div key={nubmerNews}>
|
||||
|
||||
<b>{i + 1}</b> {oneNews.content.listNews[nubmerNews]}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
</div>
|
||||
|
36
src/app/components/oneNews/ListLinks.tsx
Normal file
36
src/app/components/oneNews/ListLinks.tsx
Normal file
@ -0,0 +1,36 @@
|
||||
import Link from "next/link"
|
||||
|
||||
type Props = {
|
||||
idPage: number
|
||||
allNewsPage: number
|
||||
}
|
||||
|
||||
const ListLinks = ({ idPage, allNewsPage }: Props) => {
|
||||
|
||||
if (idPage == 0) {
|
||||
return (
|
||||
<div className="menuNewsPage">
|
||||
<Link href={`/news/${+idPage + 1}`}>Следующие</ Link>
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
if (idPage > 0 && idPage < allNewsPage) {
|
||||
return (
|
||||
<div className="menuNewsPage">
|
||||
<Link href={`/news/${idPage - 1}`}>Предыдущие</Link>
|
||||
<Link href={`/news/${+idPage + 1}`}>Следующие</ Link>
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
if (idPage == allNewsPage) {
|
||||
return (
|
||||
<div className="menuNewsPage">
|
||||
<Link href={`/news/${idPage - 1}`}>Предыдущие</Link>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default ListLinks
|
@ -1,32 +1,49 @@
|
||||
body {
|
||||
padding: 10px 10px 10px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
width: 800px;
|
||||
background: #778179;
|
||||
background: linear-gradient(0deg, green 4%, #508dac 8%, #fff 88%);
|
||||
background: linear-gradient(0deg, #4180a0 4%, #508dac 8%, #fff 88%);
|
||||
color: rgb(32, 32, 32);
|
||||
}
|
||||
|
||||
header {}
|
||||
header {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.menuBar {
|
||||
background-color: green;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
/*
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
height: 30px;
|
||||
align-content: center;
|
||||
*/
|
||||
}
|
||||
|
||||
.menuBar a {
|
||||
padding: 5px;
|
||||
color: dimgray;
|
||||
text-decoration: none;
|
||||
color: antiquewhite;
|
||||
transition: background-color 0.3s ease;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.menuBar a:hover {
|
||||
background-color: #7cc0ff;
|
||||
}
|
||||
|
||||
.news {
|
||||
margin-bottom: 10px;
|
||||
padding: 19px;
|
||||
border: 2px solid #608631;
|
||||
border: 2px solid #7cc0ff;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -43,11 +60,12 @@ header {}
|
||||
.newsDate {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
color: #608631;
|
||||
color: darkcyan;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.newsTitle {
|
||||
color: dimgray;
|
||||
font-weight: bold;
|
||||
margin-left: 5px;
|
||||
}
|
||||
@ -57,7 +75,16 @@ header {}
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* .menuNewsPage {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
} */
|
||||
|
||||
|
||||
|
||||
footer {
|
||||
align-content: center;
|
||||
color: antiquewhite;
|
||||
margin-top: 20px;
|
||||
text-align: center;
|
||||
color: white;
|
||||
}
|
@ -1,15 +1,21 @@
|
||||
import { Tektur } from 'next/font/google'
|
||||
import './global.css'
|
||||
import Header from './components/Header'
|
||||
import Footer from './components/Footer'
|
||||
import MenuBar from './components/MenuBar'
|
||||
|
||||
const oswald = Tektur({
|
||||
subsets: ['latin'],
|
||||
weight: ['500'],
|
||||
})
|
||||
|
||||
export default function DashboardLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<html lang="en" className={oswald.className}>
|
||||
<body>
|
||||
{/* Layout UI */}
|
||||
{/* Place children where you want to render a page or nested layout */}
|
||||
|
23
src/app/news/components/NavButton.tsx
Normal file
23
src/app/news/components/NavButton.tsx
Normal file
@ -0,0 +1,23 @@
|
||||
'use client'
|
||||
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
type ButtonProps = {
|
||||
text: string,
|
||||
url: string
|
||||
}
|
||||
|
||||
|
||||
export const MenuNewsPage010 = ({ text, url }: ButtonProps) => {
|
||||
const router = useRouter();
|
||||
return (
|
||||
<div className="menuNewsPage">
|
||||
{<button onClick={() => {
|
||||
console.log(text);
|
||||
router.push(url)
|
||||
}}>{text}</button>}
|
||||
{/* <Link href="/news/?page=1">Все новости</ Link> */}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
21
src/app/news/components/NavMenuBar.module.css
Normal file
21
src/app/news/components/NavMenuBar.module.css
Normal file
@ -0,0 +1,21 @@
|
||||
.menuNewsPage {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.menuNewsPage button {
|
||||
font-size: 14px;
|
||||
padding: 10px 16px;
|
||||
color: #fff;
|
||||
background-color: #508dac;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.menuNewsPage button:hover {
|
||||
background-color: #7cc0ff;
|
||||
}
|
42
src/app/news/components/NavMenuBar.tsx
Normal file
42
src/app/news/components/NavMenuBar.tsx
Normal file
@ -0,0 +1,42 @@
|
||||
'use client'
|
||||
|
||||
import { useRouter } from "next/navigation"
|
||||
import styles from './NavMenuBar.module.css'
|
||||
import { MenuNewsPage010 } from "./NavButton"
|
||||
|
||||
type Props = {
|
||||
allNewsPage: number
|
||||
page: number
|
||||
}
|
||||
|
||||
const NavMenuBar = ({ allNewsPage, page }: Props) => {
|
||||
const router = useRouter()
|
||||
console.log('page', page)
|
||||
|
||||
if (page == 1) {
|
||||
return (
|
||||
<div className="NewsPage">
|
||||
<MenuNewsPage010 text='Следующие' url={'/news/?page=' + (+page + 1)} />
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
if (page > 1 && page < allNewsPage) {
|
||||
return (
|
||||
<div className="menuNewsPage">
|
||||
<MenuNewsPage010 text='Предыдущие' url={'/news/?page=' + (+page - 1)} />
|
||||
<MenuNewsPage010 text='Следующие' url={'/news/?page=' + (+page + 1)} />
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
if (page >= allNewsPage) {
|
||||
return (
|
||||
<div className={styles.menuNewsPage}>
|
||||
<MenuNewsPage010 text='Предыдущие' url={'/news/?page=' + (+page - 1)} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default NavMenuBar
|
40
src/app/news/page.tsx
Normal file
40
src/app/news/page.tsx
Normal file
@ -0,0 +1,40 @@
|
||||
import OneNews from "@/app/components/OneNews";
|
||||
import NavMenuBar from "@/app/news/components/NavMenuBar";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function Page({ searchParams }: {
|
||||
searchParams: Promise<{ [key: string]: string | string[] | undefined }>
|
||||
}) {
|
||||
console.log("news1")
|
||||
const NumberNewsOnPage = 5;
|
||||
const search = await searchParams
|
||||
const page = +(search?.page || 1)
|
||||
|
||||
const newsBase = await prisma.news.findMany({
|
||||
// skip: id * NumberNewsOnPage,
|
||||
skip: (page - 1) * NumberNewsOnPage,
|
||||
take: NumberNewsOnPage,
|
||||
orderBy: {
|
||||
id: 'desc'
|
||||
}
|
||||
});
|
||||
const allNews = await prisma.news.count()
|
||||
const allNewsPage = Math.floor(allNews / NumberNewsOnPage)
|
||||
console.log("Новостей всего: " + allNews)
|
||||
console.log("Страниц новостей всего: " + allNewsPage)
|
||||
return (
|
||||
<div>
|
||||
{newsBase.map((oneNews) => {
|
||||
console.log(oneNews)
|
||||
return (
|
||||
<div key={oneNews.id} className='news'>
|
||||
<OneNews oneNews={oneNews} />
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
<div className="menuNewsPage">
|
||||
<NavMenuBar allNewsPage={allNewsPage} page={page} />
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
}
|
@ -1,19 +1,20 @@
|
||||
import prisma from '@/lib/prisma'
|
||||
import OneNews from './components/OneNews';
|
||||
import { useRouter } from 'next/navigation'
|
||||
import { MenuNewsPage010 } from './news/components/NavButton';
|
||||
|
||||
|
||||
export default async function Home() {
|
||||
// const router = useRouter()
|
||||
const newsBase = await prisma.news.findMany({
|
||||
take: 10,
|
||||
orderBy: {
|
||||
id: 'desc'
|
||||
}
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50 flex flex-col items-center justify-center -mt-16">
|
||||
<h2 className="text-4xl font-bold mb-8 font-[family-name:var(--font-geist-sans)] text-[#333333]">
|
||||
Последние новости:
|
||||
</h2>
|
||||
<div>
|
||||
{newsBase.map((oneNews) => {
|
||||
console.log(oneNews)
|
||||
return (
|
||||
@ -22,6 +23,9 @@ export default async function Home() {
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
<div className="menuNewsPage">
|
||||
<MenuNewsPage010 text='Все новости' url='/news' />
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user