Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '0.12-SNAPSHOT'
id 'fabric-loom' version '1.0-SNAPSHOT'
id 'io.github.juuxel.loom-quiltflower' version '1.7.3'
id 'maven-publish'
}
Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
org.gradle.jvmargs=-Xmx2G

# Fabric Properties
minecraft_version=1.19.2
yarn_mappings=1.19.2+build.28
minecraft_version=1.19.3
yarn_mappings=1.19.3+build.1
loader_version=0.14.11

# Mod Properties
mod_version = 2.3.1
mod_version = 2.3.2
maven_group = io.icker
archives_base_name = factions

# Dependencies
fabric_version=0.68.0+1.19.2
fabric_version=0.68.1+1.19.3
lucko_permissions_version=0.1-SNAPSHOT
dynmap_api_version=3.4-beta-3
papi_version=2.0.0-beta.7+1.19
20 changes: 17 additions & 3 deletions src/main/java/io/icker/factions/command/HomeCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,26 @@
import io.icker.factions.util.Command;
import io.icker.factions.util.Message;
import net.minecraft.entity.damage.DamageRecord;
import net.minecraft.registry.RegistryKey;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.World;

import java.util.Objects;
import java.util.Optional;

public class HomeCommand implements Command {
private int go(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();

if (player == null) return 0;

Faction faction = Command.getUser(player).getFaction();
Home home = faction.getHome();

Expand All @@ -34,7 +39,16 @@ private int go(CommandContext<ServerCommandSource> context) throws CommandSyntax
return 0;
}

ServerWorld world = player.getServer().getWorld(RegistryKey.of(Registry.WORLD_KEY, new Identifier(home.level)));
if (player.getServer() == null) return 0;

Optional<RegistryKey<World>> worldKey = player.getServer().getWorldRegistryKeys().stream().filter(key -> Objects.equals(key.getValue(), new Identifier(home.level))).findAny();

if (worldKey.isEmpty()) {
new Message("Cannot find dimension").fail().send(player, false);
return 0;
}

ServerWorld world = player.getServer().getWorld(worldKey.get());

if (checkLimitToClaim(faction, world, new BlockPos(home.x, home.y, home.z))) {
new Message("Cannot warp home to an unclaimed chunk").fail().send(player, false);
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/io/icker/factions/core/FactionsManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
import net.minecraft.text.Text;
import net.minecraft.util.ActionResult;

import java.util.EnumSet;
import java.util.List;

public class FactionsManager {
public static PlayerManager playerManager;

Expand Down Expand Up @@ -82,7 +85,7 @@ private static void powerTick(ServerPlayerEntity player) {
}

private static void updatePlayerList(ServerPlayerEntity ...players) {
playerManager.sendToAll(new PlayerListS2CPacket(PlayerListS2CPacket.Action.UPDATE_DISPLAY_NAME, players));
playerManager.sendToAll(new PlayerListS2CPacket(EnumSet.of(PlayerListS2CPacket.Action.UPDATE_DISPLAY_NAME), List.of(players)));
}

private static ActionResult openSafe(PlayerEntity player, Faction faction) {
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/io/icker/factions/core/SoundManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.icker.factions.api.events.FactionEvents;
import io.icker.factions.api.persistents.Faction;
import io.icker.factions.api.persistents.User;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.server.PlayerManager;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.sound.SoundCategory;
Expand All @@ -21,19 +22,19 @@ public static void register() {
FactionEvents.MEMBER_LEAVE.register((faction, user) -> playFaction(faction, SoundEvents.BLOCK_NOTE_BLOCK_BIT, 0.5F));
}

private static void playFaction(Faction faction, SoundEvent soundEvent, float pitch) {
private static void playFaction(Faction faction, RegistryEntry.Reference<SoundEvent> soundEvent, float pitch) {
for (User user : faction.getUsers()) {
ServerPlayerEntity player = FactionsManager.playerManager.getPlayer(user.getID());
if (player != null && (user.sounds == User.SoundMode.ALL || user.sounds == User.SoundMode.FACTION)) {
player.playSound(soundEvent, SoundCategory.PLAYERS, 0.2F, pitch);
player.playSound(soundEvent.value(), SoundCategory.PLAYERS, 0.2F, pitch);
}
}
}

public static void warningSound(ServerPlayerEntity player) {
User user = User.get(player.getUuid());
if (user.sounds == User.SoundMode.ALL || user.sounds == User.SoundMode.WARNINGS) {
player.playSound(SoundEvents.BLOCK_NOTE_BLOCK_BASS, SoundCategory.PLAYERS, 0.5F, 1.0F);
player.playSound(SoundEvents.BLOCK_NOTE_BLOCK_BASS.value(), SoundCategory.PLAYERS, 0.5F, 1.0F);
}
}
}
5 changes: 3 additions & 2 deletions src/main/java/io/icker/factions/mixin/PlayerManagerMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@

@Mixin(PlayerManager.class)
public class PlayerManagerMixin {
@Redirect(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Ljava/util/function/Predicate;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageSourceProfile;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;sendChatMessage(Lnet/minecraft/network/message/SentMessage;ZLnet/minecraft/network/message/MessageType$Parameters;)V"))
@Redirect(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Ljava/util/function/Predicate;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageType$Parameters;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;sendChatMessage(Lnet/minecraft/network/message/SentMessage;ZLnet/minecraft/network/message/MessageType$Parameters;)V"))
public void sendChatMessage(ServerPlayerEntity player, SentMessage message, boolean bl, MessageType.Parameters parameters) {
if (message instanceof SentMessage.Profileless) {
player.sendChatMessage(message, bl, parameters);
return;
}

User sender = User.get(((SentMessage.Chat)message).message().link().sender());

User sender = User.get(((SentMessageAccessor)message).getMessage().signedHeader().sender());
User target = User.get(player.getUuid());

if (sender.chat == User.ChatMode.GLOBAL && target.chat != User.ChatMode.FOCUS) {
Expand Down
12 changes: 0 additions & 12 deletions src/main/java/io/icker/factions/mixin/SentMessageAccessor.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void onPlayerMove(PlayerMoveC2SPacket packet, CallbackInfo ci) {

@Inject(method = "handleDecoratedMessage", at = @At("HEAD"), cancellable = true)
public void handleDecoratedMessage(SignedMessage signedMessage, CallbackInfo ci) {
User member = User.get(signedMessage.signedHeader().sender());
User member = User.get(signedMessage.link().sender());

boolean factionChat = member.chat == User.ChatMode.FACTION || member.chat == User.ChatMode.FOCUS;

Expand All @@ -44,7 +44,7 @@ public void handleDecoratedMessage(SignedMessage signedMessage, CallbackInfo ci)
.fail()
.hover("Click to switch to global chat")
.click("/factions settings chat global")
.send(server.getPlayerManager().getPlayer(signedMessage.signedHeader().sender()), false);
.send(server.getPlayerManager().getPlayer(signedMessage.link().sender()), false);

ci.cancel();
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@

"depends": {
"fabricloader": ">=0.13.3",
"minecraft": ">=1.19",
"minecraft": ">=1.19.3",
"java": ">=17",
"fabric": "*"
"fabric-api": "*"
},
"suggests": {
"fabric-permissions-api-v0": "*",
Expand Down
1 change: 0 additions & 1 deletion src/main/resources/factions.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"LockableContainerBlockEntityMixin",
"MinecraftServerMixin",
"PlayerManagerMixin",
"SentMessageAccessor",
"ServerPlayerEntityMixin",
"ServerPlayerInteractionManagerMixin",
"ServerPlayNetworkHandlerMixin"
Expand Down