diff --git a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java index 364dca6..ccb7273 100644 --- a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java +++ b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java @@ -92,6 +92,7 @@ public class SzarClient implements ClientModInitializer { // Apply the cosmetic profile on the main thread client.execute(() -> { ClientCosmetics.fetchMojangCapes(playerUuid); + System.out.println("got it client"); ClientCosmetics.apply(playerUuid, nameType, staticColor, gradientStart, gradientEnd, capeTexture); }); }); diff --git a/src/main/java/dev/tggamesyt/szar/FaszItem.java b/src/main/java/dev/tggamesyt/szar/FaszItem.java index ff3e26c..3651b68 100644 --- a/src/main/java/dev/tggamesyt/szar/FaszItem.java +++ b/src/main/java/dev/tggamesyt/szar/FaszItem.java @@ -12,6 +12,10 @@ import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class FaszItem extends BlockItem { public FaszItem(Block block, Settings settings) { @@ -22,7 +26,7 @@ public class FaszItem extends BlockItem { public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack stack = user.getStackInHand(hand); - if (!world.isClient && stack.isOf(this)) { + if (!world.isClient && stack.isOf(this) && new Random().nextInt(5) == 1) { ServerWorld serverWorld = (ServerWorld) world; // Get the direction the player's torso is looking diff --git a/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java b/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java index 08faab6..fc43399 100644 --- a/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java +++ b/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java @@ -217,7 +217,16 @@ public class ServerCosmetics { /* ---------------- SYNC ---------------- */ public static void sync(ServerPlayerEntity player, UserCosmetics user) { - for (ServerPlayerEntity p : player.getServer().getPlayerManager().getPlayerList()) { + System.out.println("Syncing player: " + player.getName().getString() + " user: " + user.toString()); + List original = + player.getServer().getPlayerManager().getPlayerList(); + List list = new ArrayList<>(original); + if (!list.contains(player)) {list.add(player);} + System.out.println( + player.getServer().getPlayerManager().getPlayerList().size() + ); + for (ServerPlayerEntity p : list) { + System.out.println("sending sync : " + player.getName().getString() + " to user: " + p.getName().getString()); PacketByteBuf buf = PacketByteBufs.create(); // Write player UUID first diff --git a/src/main/java/dev/tggamesyt/szar/Szar.java b/src/main/java/dev/tggamesyt/szar/Szar.java index 49a9f01..a590b0c 100644 --- a/src/main/java/dev/tggamesyt/szar/Szar.java +++ b/src/main/java/dev/tggamesyt/szar/Szar.java @@ -11,6 +11,7 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.fabricmc.fabric.api.message.v1.ServerMessageDecoratorEvent; import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; +import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; @@ -64,13 +65,13 @@ import net.minecraft.world.poi.PointOfInterestType; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.regex.Pattern; +import static dev.tggamesyt.szar.ServerCosmetics.USERS; +import static dev.tggamesyt.szar.ServerCosmetics.sync; + public class Szar implements ModInitializer { public static final String MOD_ID = "szar"; public static final Logger LOGGER = LogManager.getLogger(MOD_ID); @@ -286,6 +287,22 @@ public class Szar implements ModInitializer { @Override public void onInitialize() { ServerCosmetics.init(); + ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { + ServerPlayerEntity player = handler.getPlayer(); + + ServerCosmetics.UserCosmetics user = USERS.get(player.getUuid()); + if (user != null) { + + // AUTO SELECT FIRST CAPE IF NONE SELECTED + if (user.selectedCape == null && !user.ownedCapes.isEmpty()) { + user.selectedCape = user.ownedCapes.get(0); + } else { + user.selectedCape = null; + } + + sync(player, user); + } + }); ServerLifecycleEvents.SERVER_STARTED.register(server -> { SERVER = server; }); @@ -1153,8 +1170,12 @@ public class Szar implements ModInitializer { } private void givePregnantEffect(ServerPlayerEntity player, ServerPlayerEntity partner) { - player.addStatusEffect(new StatusEffectInstance(PREGNANT, 20 * 60 * 20, 0, false, false, true)); - pregnantPartners.put(player.getUuid(), partner.getUuid()); + Random r = new Random(); + System.out.println(r.nextInt()); + if (r.nextInt(10) == 6) { + player.addStatusEffect(new StatusEffectInstance(PREGNANT, 20 * 60 * 20, 0, false, false, true)); + pregnantPartners.put(player.getUuid(), partner.getUuid()); + } } } diff --git a/usercosmetics.json b/usercosmetics.json index 06bdcb9..5eed9b5 100644 --- a/usercosmetics.json +++ b/usercosmetics.json @@ -5,7 +5,7 @@ "nameType": "GRADIENT", "gradientStart": "#8CD6FF", "gradientEnd": "#00FFFF", - "capes": ["tg", "tg1", "test", "gabri"] + "capes": ["tg", "tg1", "test", "gabri", "ciber"] }, { "uuid": "52af5540-dd18-4ad9-9acb-50eb11531180",