Compare commits
8 Commits
77a44be34b
...
v1.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 0112bde962 | |||
| b3f24d9828 | |||
| 0e6377fce1 | |||
| b0501acfcd | |||
| 5f366792c3 | |||
| 8a969bc843 | |||
| 71dc665ef1 | |||
| fb233cee93 |
16
.drone.yml
16
.drone.yml
@@ -6,6 +6,7 @@ trigger:
|
|||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
|
- tag
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: gradle-build
|
- name: gradle-build
|
||||||
@@ -15,3 +16,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- gradle --no-daemon clean build
|
- gradle --no-daemon clean build
|
||||||
- ls -la build/libs
|
- ls -la build/libs
|
||||||
|
|
||||||
|
- name: gitea-release
|
||||||
|
image: plugins/gitea-release
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: gitea_token
|
||||||
|
base_url: https://git.nevetime.ru
|
||||||
|
files:
|
||||||
|
- build/libs/*.jar
|
||||||
|
title: ${DRONE_TAG}
|
||||||
|
checksum:
|
||||||
|
- sha256
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|||||||
25
README.md
25
README.md
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
Дата релиза `Minecraft 26.2`: `2026-06-16`.
|
Дата релиза `Minecraft 26.2`: `2026-06-16`.
|
||||||
|
|
||||||
Для этой версии я использую official Mojang mappings через Loom, потому что стандартный Yarn endpoint для `26.2` на момент правки ещё не отдавал mappings.
|
Начиная с `26.1` Mojang перестал обфусцировать клиент, а Yarn и Intermediary перестали публиковаться после `1.21.11`. Поэтому в `build.gradle` нет блока `mappings` вообще: исходники Minecraft уже в человекочитаемых именах Mojang, и Loom собирает мод напрямую против них.
|
||||||
|
|
||||||
Если в CI стоит старый Loom вроде `1.10.5`, сборка `26.2` упадёт с ошибкой `Unsupported class file major version 69`. Для `26.2` нужен новый Loom из актуальной ветки Fabric.
|
Если в CI стоит старый Loom вроде `1.10.5`, сборка `26.2` упадёт с ошибкой `Unsupported class file major version 69`. Для `26.2` нужен новый Loom из актуальной ветки Fabric.
|
||||||
|
|
||||||
@@ -144,6 +144,27 @@ gradle build
|
|||||||
|
|
||||||
- запуск Docker pipeline;
|
- запуск Docker pipeline;
|
||||||
- `gradle clean build`;
|
- `gradle clean build`;
|
||||||
- вывод содержимого `build/libs`.
|
- вывод содержимого `build/libs`;
|
||||||
|
- по тегу — публикует jar-ы из `build/libs/*.jar` как Gitea Release.
|
||||||
|
|
||||||
Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.
|
Для работы Drone runner должен иметь доступ в интернет, чтобы скачать зависимости Gradle/Fabric.
|
||||||
|
|
||||||
|
### Автоматический релиз по тегу
|
||||||
|
|
||||||
|
Чтобы Drone выложил собранный мод в раздел Releases репозитория, нужны две разовые настройки и одна команда на каждую новую версию.
|
||||||
|
|
||||||
|
**Один раз:**
|
||||||
|
|
||||||
|
1. В Gitea: `Settings → Applications → Generate New Token`. Дать токену права `write:repository`. Скопировать.
|
||||||
|
2. В Drone, на странице репозитория: `Settings → Secrets → New Secret`. Имя — `gitea_token`, значение — токен из шага 1. Поставить галку `Allow Pull Requests` снять (релизы только из push/tag).
|
||||||
|
|
||||||
|
**На каждую новую версию:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v1.0.0
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Drone поднимет тег как событие, соберёт мод и положит `client-irc-chat-<версия>.jar` в `https://git.nevetime.ru/Arkon/fdgdfg/releases/tag/v1.0.0`. Версия в имени jar-а берётся из `mod_version` в `gradle.properties` — обычно её стоит поднимать вместе с тегом, чтобы они совпадали.
|
||||||
|
|
||||||
|
Если что-то идёт не так, посмотреть лог конкретного шага `gitea-release` в Drone — плагин печатает HTTP-ответ Gitea, по нему сразу видно, проблема в токене, URL или путях к файлам.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'net.fabricmc.fabric-loom' version "${project.loom_version}"
|
id 'net.fabricmc.fabric-loom' version '1.17-SNAPSHOT'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,9 +30,8 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
||||||
mappings loom.officialMojangMappings()
|
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||||
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ org.gradle.configuration-cache=false
|
|||||||
minecraft_version=26.2
|
minecraft_version=26.2
|
||||||
loader_version=0.19.3
|
loader_version=0.19.3
|
||||||
fabric_version=0.152.2+26.2
|
fabric_version=0.152.2+26.2
|
||||||
loom_version=1.17-SNAPSHOT
|
|
||||||
|
|
||||||
mod_version=1.0.0
|
mod_version=1.0.0
|
||||||
maven_group=ru.nevetime
|
maven_group=ru.nevetime
|
||||||
|
|||||||
@@ -112,15 +112,17 @@ public final class ClientIrcMod implements ClientModInitializer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
client.execute(() -> {
|
client.execute(() -> {
|
||||||
if (client.gui != null && client.gui.getChat() != null) {
|
if (client.player != null) {
|
||||||
client.gui.getChat().addMessage(text);
|
client.player.sendSystemMessage(text);
|
||||||
|
} else {
|
||||||
|
LOGGER.info(text.getString());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String resolvePlayerName(Minecraft client) {
|
private static String resolvePlayerName(Minecraft client) {
|
||||||
if (client != null && client.player != null) {
|
if (client != null && client.player != null) {
|
||||||
return client.player.getGameProfile().getName();
|
return client.player.getGameProfile().name();
|
||||||
}
|
}
|
||||||
if (client != null && client.getUser() != null) {
|
if (client != null && client.getUser() != null) {
|
||||||
return client.getUser().getName();
|
return client.getUser().getName();
|
||||||
|
|||||||
Reference in New Issue
Block a user