Compare commits

...
Sign in to create a new pull request.

35 commits

Author SHA1 Message Date
Oth3r
134496d7d0 Merge branch '1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
2025-03-14 13:10:59 -05:00
Oth3r
f774802d69 Merge branch '1.21.1' into 1.20.6
# Conflicts:
#	gradle.properties
2025-03-14 13:05:44 -05:00
Oth3r
2c4dc72f42 Merge branch '1.21.3' into 1.21.1
# Conflicts:
#	gradle.properties
2025-03-13 17:51:07 -05:00
Oth3r
65431280a3 update loom and gradle statements 2025-03-13 17:47:43 -05:00
Oth3r
2e7967699e Merge branch 'master' into 1.21.3
# Conflicts:
#	gradle.properties
2025-03-13 17:39:41 -05:00
Oth3r
7658dbd40e Merge branch '1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
2025-02-23 15:40:18 -06:00
Oth3r
a971fa9926 Merge branch '1.21.1' into 1.20.6
# Conflicts:
#	gradle.properties
2025-02-23 15:23:04 -06:00
Oth3r
b5eaf3df7a 1.21-1.21.1 version fix 2025-02-23 15:06:21 -06:00
Oth3r
41abc4d361 Merge branch '1.21.3' into 1.21.1
# Conflicts:
#	gradle.properties
2025-02-19 21:08:59 -06:00
Oth3r
a9399fcbf9 1.21.3 number fix 2025-02-18 12:07:14 -06:00
Oth3r
08788456b2 1.21.3 2025-02-17 16:05:18 -06:00
Oth3r
18ad774e63 Merge branch '1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
2024-12-17 12:44:55 -06:00
Oth3r
fda08029bb Merge branch '1.21.3' into 1.21.1
# Conflicts:
#	gradle.properties
2024-12-15 11:36:25 -06:00
Oth3r
2b661a0fa8 Merge branch '1.21.3' into 1.20.6
# Conflicts:
#	gradle.properties
2024-12-11 14:46:32 -06:00
Oth3r
aa59c9cdfd 1.20.4 min version 2024-12-01 12:11:41 -06:00
Oth3r
9d6cc9b785 1.20.4 packet fix 2024-12-01 12:11:34 -06:00
Oth3r
0810fd64e8 Merge branch '1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
#	src/main/java/one/oth3r/sit/Sit.java
#	src/main/java/one/oth3r/sit/SitClient.java
2024-11-29 12:27:01 -06:00
Oth3r
32a4b0006a 1.20.6 port 2024-11-27 10:42:50 -06:00
Oth3r
8b7b3d39ec Merge branch '1.21.1' into 1.20.6
# Conflicts:
#	gradle.properties
#	src/main/java/one/oth3r/sit/Events.java
#	src/main/java/one/oth3r/sit/packet/CustomPayloads.java
#	src/main/resources/fabric.mod.json
2024-11-26 15:33:46 -06:00
Oth3r
78f7d81d93 1.2.0+1.21-1.21.1 2024-11-25 13:16:45 -06:00
Oth3r
77f59e7b6a 1.21.1 port 2024-11-25 13:16:24 -06:00
Oth3r
e772e5813a Merge branch '1.20.6' into 1.20.4 2024-08-24 17:09:46 -05:00
Oth3r
7bf178a1d2 fix multi version fabric json 2024-08-24 17:09:10 -05:00
Oth3r
1c70328b35 Merge branch '1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
2024-08-24 16:51:12 -05:00
Oth3r
32356d0c6d Merge branch 'master' into 1.20.6
# Conflicts:
#	gradle.properties
2024-08-24 16:49:57 -05:00
Oth3r
1368650a49 v1.1.8+1.20.4 2024-07-22 10:45:37 -05:00
Oth3r
f019b89647 Merge branch 'refs/heads/1.20.6' into 1.20.4
# Conflicts:
#	gradle.properties
#	src/main/java/one/oth3r/sit/packet/CustomPayloads.java
2024-07-22 10:41:05 -05:00
Oth3r
ada03ba40e v1.1.8+1.20.6 2024-07-22 10:39:47 -05:00
Oth3r
a7b70323e4 Revert "1.21 changes"
This reverts commit ca86597498.
2024-07-22 10:34:21 -05:00
Oth3r
fa968f17c2 v1.1.6+1.20.4 2024-06-13 11:09:49 -05:00
Oth3r
f98436a917 Revert "1.21 changes"
This reverts commit ca865974
2024-06-13 11:05:10 -05:00
Oth3r
6ea4831a1c Merge branch 'refs/heads/master' into 1.20.4
# Conflicts:
#	gradle.properties
#	src/main/java/one/oth3r/sit/Sit.java
#	src/main/java/one/oth3r/sit/SitClient.java
#	src/main/java/one/oth3r/sit/packet/CustomPayloads.java
#	src/main/resources/fabric.mod.json
2024-06-13 11:04:01 -05:00
Oth3r
322b663358 1.1.5+1.20.2-1.20.4 2024-04-29 12:36:44 -05:00
Oth3r
648f20e5db Revert "new packet system 1.20.5"
This reverts commit fdd7aeaf4f.
2024-04-29 12:28:30 -05:00
Oth3r
df46547cbf Revert "updated packet system"
This reverts commit 2e02d67c8e.
2024-04-29 12:28:30 -05:00
13 changed files with 108 additions and 99 deletions

View file

@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '1.8-SNAPSHOT'
id 'fabric-loom' version '1.10-SNAPSHOT'
id 'maven-publish'
id 'com.modrinth.minotaur' version '2.+'
id 'net.darkhax.curseforgegradle' version '1.1.+'
@ -14,8 +14,8 @@ base {
}
repositories {
maven { url "https://maven.terraformersmc.com/releases/" }
maven { url "https://maven.isxander.dev/releases" }
maven { url = "https://maven.terraformersmc.com/releases/" }
maven { url = "https://maven.isxander.dev/releases" }
}
loom {
@ -33,7 +33,7 @@ dependencies {
}
processResources {
filteringCharset "UTF-8"
filteringCharset = "UTF-8"
var replaceProperties = [
version : project.version,

View file

@ -4,16 +4,16 @@ org.gradle.parallel=true
# Fabric Properties
# check these on https://fabricmc.net/develop
min_minecraft_version=1.21.4
minecraft_version=1.21.4
yarn_mappings=1.21.4+build.8
loader_version=0.16.10
min_minecraft_version=1.20.4
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.3
loader_version=0.15.11
# Mod Properties
mod_version=1.2.3+1.21.4
mod_version=1.2.3+1.20.4
maven_group=one.oth3r
file_name=sit!
# Dependencies
fabric_version=0.116.1+1.21.4
modmenu_version=13.0.0-beta.1
fabric_version=0.97.1+1.20.4
modmenu_version=9.0.0

View file

@ -96,7 +96,7 @@ public class CustomBlock {
for (String tag : blockTags) {
// substring to remove # and if needed, !
// if there is a math for the NOT(!) tag, return false
if (tag.startsWith("!") && blockState.isIn(TagKey.of(Registries.BLOCK.getKey(), Identifier.of(tag.substring(2))))) return false;
if (tag.startsWith("!") && blockState.isIn(TagKey.of(Registries.BLOCK.getKey(), new Identifier(tag.substring(2))))) return false;
// if there is a match, return true
if (blockState.isIn(TagKey.of(Registries.BLOCK.getKey(), Identifier.tryParse(tag.substring(1))))) tagCheck = true;
}

View file

@ -53,10 +53,10 @@ public class CustomItem {
// if a NOT tag
if (tag.startsWith("!")) {
// if there is a math for the NOT(!) tag, return false
if (itemStack.isIn(TagKey.of(Registries.ITEM.getKey(), Identifier.of(tag.substring(2))))) return false;
if (itemStack.isIn(TagKey.of(Registries.ITEM.getKey(), new Identifier(tag.substring(2))))) return false;
}
// else (normal tag), if there is a match, set tagCheck to true
else if (itemStack.isIn(TagKey.of(Registries.ITEM.getKey(), Identifier.of(tag.substring(1))))) tagCheck = true;
else if (itemStack.isIn(TagKey.of(Registries.ITEM.getKey(), new Identifier(tag.substring(1))))) tagCheck = true;
}
// not returning true in the loop because there might be a (!) not tag that the item might fall into, after the item was already in another tag

View file

@ -0,0 +1,39 @@
package one.oth3r.sit.packet;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;
import one.oth3r.sit.utl.Data;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
public class PacketSender {
private final PacketByteBuf data;
private final PacketType type;
public PacketSender(PacketType type, String data) {
this.type = type;
this.data = PacketByteBufs.create()
.writeBytes(ByteBuffer.wrap(data.getBytes(StandardCharsets.UTF_8)));
}
public void sendToPlayer(ServerPlayerEntity player) {
ServerPlayNetworking.send(player,getIdentifier(type),data);
}
public void sendToServer() {
ClientPlayNetworking.send(getIdentifier(type),data);
}
public static Identifier getIdentifier(PacketType packetType) {
return new Identifier(Data.MOD_ID, packetType.getId());
}
public static String getPacketData(PacketByteBuf buf) {
return buf.toString(StandardCharsets.UTF_8);
}
}

View file

@ -0,0 +1,16 @@
package one.oth3r.sit.packet;
public enum PacketType {
RESPONSE("response_v1.0"),
SETTINGS("settings_v2.0");
final String id;
PacketType(String id) {
this.id = id;
}
public String getId() {
return id;
}
}

View file

@ -1,43 +0,0 @@
package one.oth3r.sit.packet;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.codec.PacketCodecs;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.util.Identifier;
import one.oth3r.sit.utl.Data;
public class SitPayloads {
/**
* the packet that the client sends to the server
* @param value the sitting settings for the client
*/
public record SettingsPayload(String value) implements CustomPayload {
public static final Id<SettingsPayload> ID = new Id<>(Identifier.of(Data.MOD_ID,"settings_v2.0"));
public static final PacketCodec<RegistryByteBuf, SettingsPayload> CODEC = PacketCodecs.STRING.xmap(SettingsPayload::new, SettingsPayload::value).cast();
@Override
public Id<SettingsPayload> getId() {
return ID;
}
}
/**
* the packet that the server sends to the client when responding to the settings payload
*/
public record ResponsePayload(String value) implements CustomPayload {
public static final String VERSION = "response_v1.0";
public static final Id<ResponsePayload> ID = new Id<>(Identifier.of(Data.MOD_ID,VERSION));
public static final PacketCodec<RegistryByteBuf, ResponsePayload> CODEC = PacketCodecs.STRING.xmap(ResponsePayload::new, ResponsePayload::value).cast();
@Override
public Id<ResponsePayload> getId() {
return ID;
}
}
}

View file

@ -4,7 +4,6 @@ import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
@ -21,10 +20,12 @@ public class ClickableImageWidget extends ButtonWidget {
@Override
protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) {
context.setShaderColor(1.0f, 1.0f, 1.0f, this.alpha);
RenderSystem.enableBlend();
RenderSystem.enableDepthTest();
context.drawTexture(RenderLayer::getGuiTextured, image,
context.drawTexture(image,
this.getX(), this.getY(), 0.0f, 0.0f, this.getWidth(), this.getHeight(), this.getWidth(), this.getHeight());
context.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
}
}

View file

@ -5,15 +5,11 @@ import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.ConfirmLinkScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import one.oth3r.sit.file.FileData;
import one.oth3r.sit.utl.Data;
import java.net.URI;
public class ConfigScreen extends Screen {
protected final Screen parent;
@ -38,13 +34,13 @@ public class ConfigScreen extends Screen {
TextureButtonWidget issuesButton = this.addDrawableChild(new TextureButtonWidget.Builder(Text.translatable("sit!.gui.button.issues"),
ConfirmLinkScreen.opening(this, URI.create("https://github.com/Oth3r/Sit/issues")), true)
ConfirmLinkScreen.opening(this, "https://github.com/Oth3r/Sit/issues"), true)
.dimensions(20,20).texture(Identifier.of(Data.MOD_ID, "issues"), 15, 15).build());
issuesButton.setPosition(this.width / 2 - 125, startY + 72 + 12);
this.addDrawableChild(ButtonWidget.builder(Text.translatable("sit!.gui.button.website"),
ConfirmLinkScreen.opening(this, URI.create("https://modrinth.com/mod/sit!"))
ConfirmLinkScreen.opening(this, "https://modrinth.com/mod/sit!")
).dimensions(this.width / 2 - 100, startY + 72 + 12, 98, 20).build());
this.addDrawableChild(ButtonWidget.builder(Text.translatable("gui.done"), (button) -> {
@ -52,7 +48,7 @@ public class ConfigScreen extends Screen {
}).dimensions(this.width / 2 + 2, startY + 72 + 12, 98, 20).build());
TextureButtonWidget donateButton = this.addDrawableChild(new TextureButtonWidget.Builder(Text.translatable("sit!.gui.button.donate"),
ConfirmLinkScreen.opening(this, URI.create("https://Ko-fi.com/oth3r")), true)
ConfirmLinkScreen.opening(this, "https://Ko-fi.com/oth3r"), true)
.dimensions(20,20).texture(Identifier.of(Data.MOD_ID, "donate"), 15, 15).build());
donateButton.setPosition(this.width / 2 + 105, startY + 72 + 12);
}
@ -73,8 +69,8 @@ public class ConfigScreen extends Screen {
private void renderBanner(DrawContext context, int x, int y, float alpha) {
RenderSystem.enableBlend();
context.drawTexture(RenderLayer::getGuiTextured,Identifier.of(Data.MOD_ID, "textures/gui/banner.png"),
x, y, 0.0f, 0.0f, 128, 72, 128, 72, ColorHelper.getWhite(alpha));
context.drawTexture(Identifier.of(Data.MOD_ID, "textures/gui/banner.png"),
x, y, 0.0f, 0.0f, 128, 72, 128, 72);
RenderSystem.disableBlend();
}

View file

@ -4,7 +4,6 @@ import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable;
@ -30,7 +29,7 @@ public class TextureButtonWidget extends ButtonWidget {
super.renderWidget(context, mouseX, mouseY, delta);
int x = this.getX() + this.getWidth() / 2 - this.textureWidth / 2;
int y = this.getY() + this.getHeight() / 2 - this.textureHeight / 2;
context.drawGuiTexture(RenderLayer::getGuiTextured, this.texture, x, y, this.textureWidth, this.textureHeight);
context.drawGuiTexture(this.texture, x, y, this.textureWidth, this.textureHeight);
}
@Override

View file

@ -29,7 +29,7 @@ public class UnderConstructionScreen<T extends CustomFile<T>> extends Screen {
protected void init() {
int startY = this.height / 5-4;
ButtonWidget foxPNG = this.addDrawableChild(new ClickableImageWidget(70,70,140,140, Tooltip.of(Text.of("Art by @bunnestbun")),
Identifier.of(Data.MOD_ID, "textures/gui/fox.png"), ConfirmLinkScreen.opening(this, URI.create("https://www.instagram.com/bunnestbun/"))));
Identifier.of(Data.MOD_ID, "textures/gui/fox.png"), ConfirmLinkScreen.opening(this, "https://www.instagram.com/bunnestbun/")));
foxPNG.setPosition(this.width / 2 - (foxPNG.getWidth()/2), startY-35);
ButtonWidget openFileButton = this.addDrawableChild(new ButtonWidget.Builder(Text.translatable("sit!.gui.button.file"),
@ -38,7 +38,7 @@ public class UnderConstructionScreen<T extends CustomFile<T>> extends Screen {
openFileButton.setPosition(this.width / 2 - 70, startY+110);
TextureButtonWidget folderButton = this.addDrawableChild(new TextureButtonWidget.Builder(Text.translatable("sit!.gui.button.folder"),
(button) -> Util.getOperatingSystem().open(Paths.get(this.file.getFile().getParent())), true)
(button) -> Util.getOperatingSystem().open(this.file.getFile().getParent()), true)
.dimensions(20,20).texture(Identifier.of(Data.MOD_ID, "folder"), 15, 15).build());
folderButton.setPosition(this.width / 2 + 50, startY + 110);

View file

@ -8,7 +8,6 @@ import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.client.MinecraftClient;
@ -21,7 +20,8 @@ import one.oth3r.sit.command.SitCommand;
import one.oth3r.sit.file.FileData;
import one.oth3r.sit.file.LangReader;
import one.oth3r.sit.file.SittingConfig;
import one.oth3r.sit.packet.SitPayloads;
import one.oth3r.sit.packet.PacketSender;
import one.oth3r.sit.packet.PacketType;
import one.oth3r.sit.screen.ConfigScreen;
import org.lwjgl.glfw.GLFW;
@ -83,35 +83,37 @@ public class Events {
private static class Packet {
private static void common() {
// register the data
PayloadTypeRegistry.playC2S().register(SitPayloads.SettingsPayload.ID, SitPayloads.SettingsPayload.CODEC);
PayloadTypeRegistry.playS2C().register(SitPayloads.ResponsePayload.ID, SitPayloads.ResponsePayload.CODEC);
// server receiver is common
/// receiving the sitting setting payload
ServerPlayNetworking.registerGlobalReceiver(SitPayloads.SettingsPayload.ID,((payload, context) -> Data.getServer().execute(() -> {
// save the setting on the server for that player
FileData.setPlayerSetting(context.player(),Utl.getGson().fromJson(payload.value(), SittingConfig.class));
ServerPlayNetworking.registerGlobalReceiver(PacketSender.getIdentifier(PacketType.SETTINGS),
((server, player, handler, buf, responseSender) -> {
String packetData = PacketSender.getPacketData(buf);
server.execute(() -> {
// save the setting on the server for that player
FileData.setPlayerSetting(player,Utl.getGson().fromJson(packetData, SittingConfig.class));
// send the player back a response packet for confirmation
ServerPlayNetworking.send(context.player(),new SitPayloads.ResponsePayload(SitPayloads.ResponsePayload.VERSION));
// send the player back a response packet for confirmation
new PacketSender(PacketType.RESPONSE,PacketType.RESPONSE.getId()).sendToPlayer(player);
// log the receiving of the packet from the player
Data.LOGGER.info(Utl.lang("sit!.console.player_settings",context.player().getName().getString()).getString());
})));
// log the receiving of the packet from the player
Data.LOGGER.info(Utl.lang("sit!.console.player_settings",player.getName().getString()).getString());
});
}));
}
private static void client() {
/// receiving the response packet from the server
ClientPlayNetworking.registerGlobalReceiver(SitPayloads.ResponsePayload.ID, ((payload, context) -> {
// only update when needed
if (!Data.isSupportedServer()) {
Data.setSupportedServer(true);
Data.LOGGER.info(Utl.lang("sit!.console.connected",payload.value()).getString());
}
}));
ClientPlayNetworking.registerGlobalReceiver(PacketSender.getIdentifier(PacketType.RESPONSE),
((client, handler, buf, responseSender) -> {
String packetData = PacketSender.getPacketData(buf);
client.execute(() -> {
if (!Data.isSupportedServer()) {
Data.setSupportedServer(true);
Data.LOGGER.info(Utl.lang("sit!.console.connected",packetData).getString());
}
});
}));
}
}

View file

@ -5,7 +5,6 @@ import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.google.gson.stream.MalformedJsonException;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.block.*;
import net.minecraft.block.enums.BlockHalf;
import net.minecraft.block.enums.SlabType;
@ -14,7 +13,6 @@ import net.minecraft.entity.decoration.DisplayEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.consume.UseAction;
import net.minecraft.registry.Registries;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ServerWorld;
@ -29,7 +27,8 @@ import net.minecraft.util.math.Vec3d;
import net.minecraft.world.RaycastContext;
import net.minecraft.world.World;
import one.oth3r.sit.file.*;
import one.oth3r.sit.packet.SitPayloads;
import one.oth3r.sit.packet.PacketSender;
import one.oth3r.sit.packet.PacketType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -322,7 +321,7 @@ public class Utl {
player.sendMessage(messageTag().append(Utl.lang("sit!.chat.purged",Utl.lang("sit!.chat.purged.total",count).styled(
style -> style.withColor(Colors.LIGHT_GRAY).withItalic(true)
)).styled(
style -> style.withColor(Colors.GREEN)
style -> style.withColor(Formatting.GREEN)
)));
}
}
@ -370,7 +369,7 @@ public class Utl {
*/
public static void sendSettingsPackets() {
if (Data.isClient() && Data.isInGame()) {
ClientPlayNetworking.send(new SitPayloads.SettingsPayload(Utl.getGson().toJson(FileData.getSittingConfig())));
new PacketSender(PacketType.SETTINGS, Utl.getGson().toJson(FileData.getSittingConfig())).sendToServer();
}
}