Skip to content

Commit

Permalink
Port to 1.19.2
Browse files Browse the repository at this point in the history
  • Loading branch information
zbx1425 committed Dec 19, 2023
1 parent 0f6c5e1 commit aa5b259
Show file tree
Hide file tree
Showing 39 changed files with 625 additions and 184 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
build:
strategy:
matrix:
minecraft: [ 1.20.1 ]
minecraft: [ 1.19.2, 1.20.1 ]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
Expand Down
6 changes: 4 additions & 2 deletions common/src/main/java/cn/zbx1425/worldcomment/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import cn.zbx1425.worldcomment.data.ServerWorldData;
import cn.zbx1425.worldcomment.data.sync.RedisSynchronizer;
import cn.zbx1425.worldcomment.item.CommentToolItem;
import cn.zbx1425.worldcomment.item.GroupedItem;
import cn.zbx1425.worldcomment.mixin.CreativeModeTabsAccessor;
import cn.zbx1425.worldcomment.network.*;
import cn.zbx1425.worldcomment.util.RegistriesWrapper;
import cn.zbx1425.worldcomment.util.RegistryObject;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -22,10 +24,10 @@ public class Main {

public static ServerConfig SERVER_CONFIG = new ServerConfig();

public static final RegistryObject<Item> ITEM_COMMENT_TOOL = new RegistryObject<>(CommentToolItem::new);
public static final RegistryObject<GroupedItem> ITEM_COMMENT_TOOL = new RegistryObject<>(CommentToolItem::new);

public static void init(RegistriesWrapper registries) {
registries.registerItem("comment_tool", ITEM_COMMENT_TOOL, CreativeModeTabsAccessor.getTOOLS_AND_UTILITIES());
registries.registerItem("comment_tool", ITEM_COMMENT_TOOL);

ServerPlatform.registerNetworkReceiver(
PacketRegionRequestC2S.IDENTIFIER, PacketRegionRequestC2S::handle);
Expand Down
5 changes: 0 additions & 5 deletions common/src/main/java/cn/zbx1425/worldcomment/MainClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@

public class MainClient {

public static final KeyMapping KEY_COMMENT_DETAIL = new KeyMapping("key.worldcomment.comment_detail",
InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_TAB, "key.categories.misc");

public static ClientConfig CLIENT_CONFIG = new ClientConfig();

public static void init() {
Expand All @@ -29,8 +26,6 @@ public static void init() {
ClientPlatform.registerPlayerJoinEvent(ignored -> {
ClientWorldData.INSTANCE.clear();
});

ClientPlatform.registerKeyBinding(KEY_COMMENT_DETAIL);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class CommentEntry {
public CommentEntry(Player initiator, boolean isAnonymous, int messageType, String message) {
id = ServerWorldData.SNOWFLAKE.nextId();
timestamp = System.currentTimeMillis();
level = initiator.level().dimension().location();
level = initiator #if MC_VERSION >= "12000" .level() #else .level #endif .dimension().location();
this.initiator = initiator.getGameProfile().getId();
if (isAnonymous) {
initiatorName = "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public static void grabScreenshot(Consumer<Path> callback) {
}

private static File getAvailableFile() {
File screenShotDirectory = new File(Minecraft.getInstance().gameDirectory, net.minecraft.client.Screenshot.SCREENSHOT_DIR);
File screenShotDirectory = new File(Minecraft.getInstance().gameDirectory,"screenshots");
String s = "WorldComment-" + Util.getFilenameFormattedDateTime();
int i = 1;
File file1;
Expand All @@ -42,7 +42,7 @@ private static File getAvailableFile() {
return file1;
}

private static final SoundEvent shutterSoundEvent = SoundEvent.createFixedRangeEvent(
private static final SoundEvent shutterSoundEvent = #if MC_VERSION >= "11903" SoundEvent.createFixedRangeEvent #else new SoundEvent #endif (
new ResourceLocation("worldcomment:shutter"), 16
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ private static void downloadImage(String url) {

private static byte[] getLocalImageData(String url) throws IOException {
Path imageBaseDir = Minecraft.getInstance().gameDirectory.toPath().resolve("worldcomment-images");
if (!Files.isDirectory(imageBaseDir)) return null;
try (Stream<Path> imageDirs = Files.list(imageBaseDir)) {
for (Path imageDir : imageDirs.toArray(Path[]::new)) {
Path imagePath = imageDir.resolve("url-sha1-" + DigestUtils.sha1Hex(url) + ".png");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,15 @@
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.*;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
#if MC_VERSION >= "12000" import net.minecraft.client.gui.GuiGraphics; #else import cn.zbx1425.worldcomment.util.compat.GuiGraphics; #endif
#if MC_VERSION >= "12000" import net.minecraft.client.gui.components.Button; #else import cn.zbx1425.worldcomment.util.compat.Button; #endif
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.item.ItemStack;
import org.joml.Matrix4f;

#if MC_VERSION >= "11903" import org.joml.Matrix4f; #else import com.mojang.math.Matrix4f; #endif
import java.util.*;

public class CommentListScreen extends Screen implements IGuiCommon {
Expand All @@ -36,7 +34,7 @@ protected CommentListScreen(CommentEntry commentForDetail) {

int subScreen = 0, prevSubScreen = 0;

Button[] pageButtons = new Button[4];
net.minecraft.client.gui.components.Button[] pageButtons = new net.minecraft.client.gui.components.Button[4];

List<CommentEntry> commentList = new ArrayList<>();
int commentListOffset = 0;
Expand All @@ -55,14 +53,14 @@ private WidgetCommentEntry getWidget(CommentEntry entry) {
@Override
protected void init() {
super.init();
pageButtons[0] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.nearby_posts"), sender -> useSubScreen(0))
.bounds(10, 40, 80, 20).build());
pageButtons[1] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.recent_posts"), sender -> useSubScreen(1))
.bounds(10, 64, 80, 20).build());
pageButtons[2] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.my_posts"), sender -> useSubScreen(2))
.bounds(10, 88, 80, 20).build());
pageButtons[3] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.detail"), sender -> {})
.bounds(10, 122, 80, 20).build());
pageButtons[0] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.nearby_posts"),
sender -> useSubScreen(0)).bounds(10, 40, 80, 20).build());
pageButtons[1] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.recent_posts"),
sender -> useSubScreen(1)).bounds(10, 64, 80, 20).build());
pageButtons[2] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.my_posts"),
sender -> useSubScreen(2)).bounds(10, 88, 80, 20).build());
pageButtons[3] = addRenderableWidget(Button.builder(Component.translatable("gui.worldcomment.list.detail"),
sender -> {}).bounds(10, 122, 80, 20).build());
for (int i = 0; i < pageButtons.length; i++) {
pageButtons[i].active = i != subScreen;
}
Expand Down Expand Up @@ -112,9 +110,10 @@ void useSubScreen(int subScreen) {
}

@Override
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
public void render(#if MC_VERSION >= "12000" GuiGraphics #else PoseStack #endif guiParam, int mouseX, int mouseY, float partialTick) {
GuiGraphics guiGraphics = #if MC_VERSION >= "12000" guiParam #else GuiGraphics.withPose(guiParam) #endif ;
Minecraft minecraft = Minecraft.getInstance();
renderBackground(guiGraphics);
renderBackground(guiParam);
guiGraphics.drawString(minecraft.font, Component.translatable("gui.worldcomment.list.title"),
40, 15, 0xFFFFE6C0, true);
Expand Down Expand Up @@ -154,7 +153,7 @@ public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partia
widget.setBounds(100 + 10 + imgAreaWidth - (imgAreaWidth / 2), 0, imgAreaWidth / 2);
widget.setBounds(100 + 10 + imgAreaWidth - (imgAreaWidth / 2), height - 20 - widget.getHeight(),
imgAreaWidth / 2);
widget.render(guiGraphics, mouseX, mouseY, partialTick);
widget.render(guiParam, mouseX, mouseY, partialTick);
boolean canDelete = minecraft.player.hasPermissions(3)
|| minecraft.player.getGameProfile().getId().equals(comment.initiator);
Expand Down Expand Up @@ -183,7 +182,7 @@ public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partia
WidgetCommentEntry widget = getWidget(comment);
widget.showImage = true;
widget.setBounds(106, yOffset, width - 102 - 22 - 8 - 4 - 16);
widget.render(guiGraphics, mouseX, mouseY, partialTick);
widget.render(guiParam, mouseX, mouseY, partialTick);
guiGraphics.blit(ATLAS_LOCATION, width - 22 - 4 - 16, yOffset + 4, 16, 16,
196, 60, 20, 20, 256, 256);
Expand Down Expand Up @@ -223,7 +222,7 @@ public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partia
}
}
super.render(guiGraphics, mouseX, mouseY, partialTick);
super.render(guiParam, mouseX, mouseY, partialTick);
}
@Override
Expand Down Expand Up @@ -283,8 +282,9 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) {
}
@Override
public void renderBackground(GuiGraphics guiGraphics) {
super.renderBackground(guiGraphics);
public void renderBackground(#if MC_VERSION >= "12000" GuiGraphics #else PoseStack #endif guiParam) {
GuiGraphics guiGraphics = #if MC_VERSION >= "12000" guiParam #else GuiGraphics.withPose(guiParam) #endif ;
super.renderBackground(guiParam);
graphicsBlit9(guiGraphics, 30, 10, width - 40, height - 20,
196, 40, 20, 20, 256, 256,
4, 4, 4, 4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
import cn.zbx1425.worldcomment.data.network.SubmitDispatcher;
import cn.zbx1425.worldcomment.item.CommentToolItem;
import com.mojang.blaze3d.platform.NativeImage;
import com.mojang.datafixers.types.templates.Check;
import net.minecraft.ChatFormatting;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
#if MC_VERSION >= "12000" import net.minecraft.client.gui.GuiGraphics; #else import cn.zbx1425.worldcomment.util.compat.GuiGraphics; #endif
import net.minecraft.client.gui.components.*;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
Expand Down Expand Up @@ -109,9 +108,11 @@ protected void init() {
textBoxMessage = new MultiLineEditBox(
Minecraft.getInstance().font,
SIDEBAR_OFFSET, baseY, CommentTypeButton.BTN_WIDTH * 5, SQ_SIZE * 4,
Component.translatable("gui.worldcomment.message.placeholder"),
// On 1.19.2 this doesn't rescale with the poseStack
#if MC_VERSION >= "12000" Component.translatable("gui.worldcomment.message.placeholder") #else Component.literal("") #endif,
Component.literal("")
);
textBoxMessage.setValue("");
textBoxMessage.setValueListener(ignored -> updateBtnSendFeedback());
addRenderableWidget(textBoxMessage);
baseY += textBoxMessage.getHeight();
Expand Down Expand Up @@ -146,8 +147,8 @@ protected void init() {
int maxX = 0, maxY = 0;
for (GuiEventListener child : children()) {
AbstractWidget widget = (AbstractWidget)child;
maxX = Math.max(maxX, widget.getX() + widget.getWidth());
maxY = Math.max(maxY, widget.getY() + widget.getHeight());
maxX = Math.max(maxX, widget #if MC_VERSION >= "11903" .getX() #else .x #endif + widget.getWidth());
maxY = Math.max(maxY, widget #if MC_VERSION >= "11903" .getY() #else .y #endif + widget.getHeight());
}
containerWidth = maxX;
containerHeight = maxY;
Expand All @@ -161,12 +162,12 @@ protected void init() {
containerOffsetY = (height - (containerHeight + CONTAINER_PADDING_Y * 2)) / 2 + CONTAINER_PADDING_Y;
for (GuiEventListener child : children()) {
AbstractWidget widget = (AbstractWidget)child;
widget.setX(widget.getX() + containerOffsetX);
widget.setY(widget.getY() + containerOffsetY);
widget #if MC_VERSION >= "11903" .setX #else .x = #endif (widget #if MC_VERSION >= "11903" .getX() #else .x #endif + containerOffsetX);
widget #if MC_VERSION >= "11903" .setY #else .y = #endif (widget #if MC_VERSION >= "11903" .getY() #else .y #endif + containerOffsetY);
}

btnSaveScreenshot = new WidgetColorButton(
containerOffsetX, btnSendFeedback.getY(), CommentTypeButton.BTN_WIDTH * 2, SQ_SIZE,
containerOffsetX, btnSendFeedback #if MC_VERSION >= "11903" .getY() #else .y #endif, CommentTypeButton.BTN_WIDTH * 2, SQ_SIZE,
Component.translatable("gui.worldcomment.save_screenshot"), 0xFF81D4FA, sender -> {
Path persistentPath = imagePath.resolveSibling(
imagePath.getFileName().toString().replace("WorldComment", "WorldComment-Saved"));
Expand Down Expand Up @@ -219,8 +220,9 @@ private void sendReport() {
}

@Override
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
renderBackground(guiGraphics);
public void render(#if MC_VERSION >= "12000" GuiGraphics #else PoseStack #endif guiParam, int mouseX, int mouseY, float partialTick) {
GuiGraphics guiGraphics = #if MC_VERSION >= "12000" guiParam #else GuiGraphics.withPose(guiParam) #endif ;
renderBackground(guiParam);
guiGraphics.pose().pushPose();
setupAnimationTransform(guiGraphics);

Expand All @@ -238,7 +240,7 @@ public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partia
containerOffsetY + containerHeight + CONTAINER_PADDING_Y,
0xBB444444
);
super.render(guiGraphics, mouseX, mouseY, partialTick);
super.render(guiParam, mouseX, mouseY, partialTick);

guiGraphics.pose().popPose();
}
Expand Down Expand Up @@ -270,15 +272,19 @@ public boolean isPauseScreen() {
private void updateBtnSendFeedback() {
if (selectedCommentType == 0) {
btnSendFeedback.active = false;
btnSendFeedback.setTooltip(Tooltip.create(
Component.translatable("gui.worldcomment.require_comment_type").withStyle(ChatFormatting.RED)));
#if MC_VERSION >= "12000"
btnSendFeedback.setTooltip(Tooltip.create(Component.translatable("gui.worldcomment.require_comment_type").withStyle(ChatFormatting.RED)));
#endif
} else if (textBoxMessage.getValue().length() > CommentEntry.MESSAGE_MAX_LENGTH) {
btnSendFeedback.active = false;
btnSendFeedback.setTooltip(Tooltip.create(
Component.translatable("gui.worldcomment.message_too_long").withStyle(ChatFormatting.RED)));
#if MC_VERSION >= "12000"
btnSendFeedback.setTooltip(Tooltip.create(Component.translatable("gui.worldcomment.message_too_long").withStyle(ChatFormatting.RED)));
#endif
} else {
btnSendFeedback.active = true;
#if MC_VERSION >= "12000"
btnSendFeedback.setTooltip(null);
#endif
}
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
package cn.zbx1425.worldcomment.gui;

import cn.zbx1425.worldcomment.Main;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
#if MC_VERSION >= "12000" import net.minecraft.client.gui.GuiGraphics; #else import cn.zbx1425.worldcomment.util.compat.GuiGraphics; import com.mojang.blaze3d.vertex.PoseStack; #endif
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;

import java.util.function.Supplier;

public class CommentTypeButton extends Button implements IGuiCommon {

Expand All @@ -27,13 +22,20 @@ public class CommentTypeButton extends Button implements IGuiCommon {
public CommentTypeButton(int x, int y, int type, OnPress onPress) {
super(x, y, BTN_WIDTH, BTN_HEIGHT,
Component.translatable("gui.worldcomment.comment_type." + type),
onPress, Supplier::get);
onPress #if MC_VERSION >= "12000" , Supplier::get #endif);
this.commentType = type;
this.topColor = COMMENT_TYPE_COLOR[type - 1];
}

@Override
protected void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
#if MC_VERSION >= "12000"
protected void renderWidget(GuiGraphics guiParam, int mouseX, int mouseY, float partialTick) {
final GuiGraphics guiGraphics = guiParam;
#else
public void render(PoseStack guiParam, int mouseX, int mouseY, float partialTick) {
final GuiGraphics guiGraphics = GuiGraphics.withPose(guiParam);
super.render(guiParam, mouseX, mouseY, partialTick);
#endif
Minecraft minecraft = Minecraft.getInstance();
RenderSystem.enableBlend();
guiGraphics.setColor(((topColor >> 16) & 0xFF) / 255f, ((topColor >> 8) & 0xFF) / 255f,
Expand All @@ -52,4 +54,9 @@ protected void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, flo
renderScrollingString(guiGraphics, minecraft.font, getMessage(),
getX(), getY(), getX() + getWidth(), getY() + 12, active ? 0xFFFFFFFF : 0xFFA0A0A0);
}
#if MC_VERSION < "12000"
private int getX() { return x; }
private int getY() { return y; }
#endif
}
27 changes: 26 additions & 1 deletion common/src/main/java/cn/zbx1425/worldcomment/gui/IGuiCommon.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package cn.zbx1425.worldcomment.gui;

import cn.zbx1425.worldcomment.Main;
import net.minecraft.client.gui.GuiGraphics;
#if MC_VERSION >= "12000" import net.minecraft.client.gui.GuiGraphics; #else import cn.zbx1425.worldcomment.util.compat.GuiGraphics; #endif
import net.minecraft.Util;
import net.minecraft.client.gui.Font;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;

public interface IGuiCommon {

Expand Down Expand Up @@ -63,4 +67,25 @@ default void graphicsBlit9(GuiGraphics guiGraphics, int x, int y, int width, int
);
}
}

#if MC_VERSION < "12000"

default void renderScrollingString(GuiGraphics var0, Font var1, Component var2, int var3, int var4, int var5, int var6, int var7) {
int var8 = var1.width(var2);
int var9 = (var4 + var6 - 9) / 2 + 1;
int var10 = var5 - var3;
if (var8 > var10) {
int var11 = var8 - var10;
double var12 = (double) Util.getMillis() / 1000.0;
double var14 = Math.max((double)var11 * 0.5, 3.0);
double var16 = Math.sin(Math.PI / 2 * Math.cos(Math.PI * 2 * var12 / var14)) / 2.0 + 0.5;
double var18 = Mth.lerp(var16, 0.0, (double)var11);
var0.enableScissor(var3, var4, var5, var6);
var0.drawString(var1, var2, var3 - (int)var18, var9, var7);
var0.disableScissor();
} else {
var0.drawCenteredString(var1, var2, (var3 + var5) / 2, var9, var7);
}
}
#endif
}
Loading

0 comments on commit aa5b259

Please sign in to comment.