修正脚本与构建

This commit is contained in:
叁玖领域 2026-02-05 13:04:25 +08:00
parent 6f045b681f
commit 06feedcc83
8 changed files with 97 additions and 11 deletions

View File

@ -13,7 +13,9 @@ plugins {
allprojects {
repositories {
mavenCentral()
maven { url = "https://maven.neoforged.net/releases" }
maven { url = "https://libraries.minecraft.net/" }
maven { url = "https://neoforged.forgecdn.net/releases" }
maven { url = "https://neoforged.forgecdn.net/mojang-meta" }
maven { url = "https://maven.minecraftforge.net/" }
maven { url = "https://maven.parchmentmc.org" }
maven { url = "https://maven.izzel.io/releases/" }
@ -26,6 +28,10 @@ allprojects {
maven {
url "https://cursemaven.com"
}
maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
}
processResources{
duplicatesStrategy = DuplicatesStrategy.EXCLUDE

View File

@ -3,6 +3,7 @@ package com.leisuretimedock.crossmod.client;
import com.leisuretimedock.crossmod.network.PingRequestManager;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.player.Player;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@ -102,7 +103,7 @@ public class ClientPingHandler {
}
// 合并Ping数据和统计数据的显示方法
public static List<String> getCombinedDebugText() {
public static @NotNull List<String> getCombinedDebugText() {
List<String> lines = new ArrayList<>();
// 添加Ping数据

View File

@ -2,8 +2,11 @@ package com.leisuretimedock.crossmod.client;
import com.leisuretimedock.crossmod.CrossTeleportMod;
import com.leisuretimedock.crossmod.client.gui.CrossServerGui;
import com.leisuretimedock.crossmod.client.gui.GenericIceMessageScreen;
import net.minecraft.ChatFormatting;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.ClientRegistry;
import net.minecraftforge.event.TickEvent;

View File

@ -0,0 +1,57 @@
package com.leisuretimedock.crossmod.client.gui;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.*;
import net.minecraft.client.gui.screens.GenericDirtMessageScreen;
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.client.event.ScreenEvent;
import net.minecraftforge.common.MinecraftForge;
import org.jetbrains.annotations.NotNull;
public class GenericIceMessageScreen extends GenericDirtMessageScreen {
public static final ResourceLocation ICE = new ResourceLocation("textures/block/ice.png");
//todo: tip ?
private int tick = 0;
public GenericIceMessageScreen(Component title) {
super(title);
}
@Override
public void tick() {
super.tick();
tick++;
}
@Override
public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) {
super.render(poseStack, mouseX, mouseY, partialTick);
if (minecraft != null && minecraft.player != null){
InventoryScreen.renderEntityInInventory(width / 2, height / 2, 30, (float) width / 2 - mouseX, (float) height / 2 - mouseY, minecraft.player);
}
}
@Override
public void renderDirtBackground(int vOffset) {
renderIceBackground(vOffset,200, 200, 200, 255);
}
public void renderIceBackground(int vOffset, int r, int g, int b, int a) {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder bufferbuilder = tesselator.getBuilder();
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
RenderSystem.setShaderTexture(0, ICE);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
float f = 32.0F;
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(0.0, this.height, 0.0).uv(0.0F, (float)this.height / f + (float)vOffset).color(r, g, b, a).endVertex();
bufferbuilder.vertex(this.width, this.height, 0.0).uv((float)this.width / f, (float)this.height / f + (float)vOffset).color(r, g, b, a).endVertex();
bufferbuilder.vertex(this.width, 0.0, 0.0).uv((float)this.width / f, (float)vOffset).color(r, g, b, a).endVertex();
bufferbuilder.vertex(0.0, 0.0, 0.0).uv(0.0F, (float)vOffset).color(r, g, b, a).endVertex();
tesselator.end();
MinecraftForge.EVENT_BUS.post(new ScreenEvent.BackgroundDrawnEvent(this, new PoseStack()));
}
}

View File

@ -1,8 +1,8 @@
package com.leisuretimedock.crossmod.reset;
import com.leisuretimedock.crossmod.client.gui.GenericIceMessageScreen;
import lombok.extern.slf4j.Slf4j;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.GenericDirtMessageScreen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraftforge.api.distmarker.Dist;
@ -27,7 +27,7 @@ public class ResetHelper {
GameData.revertToFrozen();
}
minecraft.clearLevel(new GenericDirtMessageScreen(new TranslatableComponent("ltd.mod.client.negotiating").withStyle(BOLD)));
minecraft.clearLevel(new GenericIceMessageScreen(new TranslatableComponent("ltd.mod.client.negotiating").withStyle(BOLD)));
minecraft.setCurrentServer(serverData);
});
log.debug("Waiting for Clear to complete");

View File

@ -1,3 +1,15 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
maven { url = 'https://maven.neoforged.net/releases' }
maven { url = 'https://maven.parchmentmc.org' } // Add this line
maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
}
}
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
}

View File

@ -8,7 +8,10 @@ group = plugin_group
version = plugin_version
repositories {
mavenCentral()
maven { url 'https://repo.velocitypowered.com/releases/' }
maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
maven { url 'https://repo.lucko.me/' } // LuckPerms
maven { url "https://repo.william278.net/releases" } //
}
@ -19,9 +22,9 @@ base {
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
compileOnly 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
compileOnly("com.velocitypowered:velocity-api:3.4.0")
annotationProcessor("com.velocitypowered:velocity-api:3.4.0")
implementation("org.spongepowered:configurate-yaml:4.1.2")
annotationProcessor 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
compileOnly 'net.luckperms:api:5.4' // LuckPerms API
implementation "net.william278:velocityscoreboardapi:1.1.3"
}

View File

@ -12,7 +12,7 @@ import static com.leisuretimedock.crossplugin.CrossPlugin.CROSS_TELEPORT_MOD;
@Slf4j
public class PingManager {
private final ProxyServer server;
private final Map<String, Long> serverPingResults = new HashMap<>();
private final Map<String, Integer> serverFallCounter = new HashMap<>();
private final ConfigManager configManager;
public PingManager(ProxyServer server, ConfigManager configManager) {
@ -50,10 +50,14 @@ public class PingManager {
long ping = endTime - startTime;
String name = serverInfo.getServerInfo().getName();
if (throwable == null) {
serverPingResults.put(name, ping);
if(configManager.isEnablePingLog()) log.debug(CROSS_TELEPORT_MOD, "Ping to server {}: {}ms", name, ping);
if(configManager.isEnablePingLog()) log.debug(CROSS_TELEPORT_MOD, "Ping to server {}: {} ms", name, ping);
} else {
if(configManager.isEnablePingLog()) log.warn(CROSS_TELEPORT_MOD, "Failed to ping server {}", name, throwable);
if(configManager.isEnablePingLog()) {
Integer put = serverFallCounter.put(name, serverFallCounter.getOrDefault(name, 0) + 1);
if (put != null && put == 1) {
log.warn(CROSS_TELEPORT_MOD, "Failed to ping server {}", name, throwable);
}
}
}
});
}