Skip to content

Commit 1e365d3

Browse files
committed
Add cannot sleep curse
1 parent 1894ccc commit 1e365d3

13 files changed

Lines changed: 37 additions & 8 deletions

File tree

src/generated/resources/.cache/20f5c98dc0fe2d7a53fc98de5b4a9405da0eaab5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.21.1 2025-09-02T21:14:11.4892853 Biome Modifier Registries: ifw
1+
// 1.21.1 2025-09-03T16:46:32.689735 Biome Modifier Registries: ifw
22
49f499fed8f8f7c797c3124710dff297dfe03998 data/ifw/neoforge/biome_modifier/ifw_add_deepslate_spawns.json
33
d3ce835cbe615798480c31acf5200397159fd125 data/ifw/neoforge/biome_modifier/ifw_add_deep_ores.json
44
5073fcccdb1b63e1972de71daef79b5d55a8ea59 data/ifw/neoforge/biome_modifier/ifw_add_forest_spawns.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.21.1 2025-09-02T21:14:11.4902923 Languages: zh_cn for mod: ifw
2-
f23ee52b42427c90e79feb6fd21aba0ef3f3942e assets/ifw/lang/zh_cn.json
1+
// 1.21.1 2025-09-03T16:46:32.6935437 Languages: zh_cn for mod: ifw
2+
b6b9cc33565468ace1a31bdb82ddc56738dae406 assets/ifw/lang/zh_cn.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.21.1 2025-09-02T21:14:11.4912913 Languages: en_us for mod: ifw
2-
7bc9a04ffef9c3e8d622828aea6339aa3fdcacc5 assets/ifw/lang/en_us.json
1+
// 1.21.1 2025-09-03T16:46:32.6950532 Languages: en_us for mod: ifw
2+
7a2884d0313e731d69c177887366af0b333946bc assets/ifw/lang/en_us.json

src/generated/resources/assets/ifw/lang/en_us.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@
200200
"block.ifw.silver_ore": "Silver Ore",
201201
"block.ifw.silver_private_chest": "Silver Private Chest",
202202
"block.ifw.stone_furnace": "Stone Furnace",
203+
"block.minecraft.bed.sleep.other_problem": "§cYou find you have trouble sleeping",
203204
"commands.clear.curse.player": "Removed curse from %s",
204205
"commands.clear.curse.players": "Removed curse from %s targets",
205206
"commands.day.message": "It is day %s of this world",
@@ -248,6 +249,7 @@
248249
"curse.ifw.fear_of_wolves.desc": "§cYou've become fearful of wolves and have difficulty striking them in melee combat",
249250
"curse.ifw.none": "Empty",
250251
"curse.ifw.none.desc": "§cYou are not cursed",
252+
"curse.ifw.someone_cannot_sleep.desc": "§ePlayer %s is cursed with insomnia, night cannot be skipped",
251253
"curse.ifw.unknown.desc": "§cUnknown effect",
252254
"effect.ifw.curse": "Curse",
253255
"effect.ifw.insulin_resistance.stage1": "Mild insulin resistance",

src/generated/resources/assets/ifw/lang/zh_cn.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@
200200
"block.ifw.silver_ore": "银矿石",
201201
"block.ifw.silver_private_chest": "银保险箱",
202202
"block.ifw.stone_furnace": "石制熔炉",
203+
"block.minecraft.bed.sleep.other_problem": "§c你发现你难以入眠",
203204
"commands.clear.curse.player": "已为 %s 清除诅咒",
204205
"commands.clear.curse.players": "已为个 %s 玩家清除诅咒",
205206
"commands.day.message": "今天是第 %s 天",
@@ -248,6 +249,7 @@
248249
"curse.ifw.fear_of_wolves.desc": "§c你发现你难以对狼发起有效攻击",
249250
"curse.ifw.none": "无诅咒",
250251
"curse.ifw.none.desc": "§c你没有被诅咒",
252+
"curse.ifw.someone_cannot_sleep.desc": "§e玩家 %s 被诅咒失眠,夜晚无法跳过",
251253
"curse.ifw.unknown.desc": "§c未知效果",
252254
"effect.ifw.curse": "诅咒",
253255
"effect.ifw.insulin_resistance.stage1": "轻度胰岛素抵抗",

src/main/java/huix/infinity/common/world/curse/CurseEffectHelper.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,13 @@ public static void handleEndermanAggro(EnderMan enderman) {
132132
}
133133
}
134134
}
135+
136+
public static boolean shouldBlockSleep(Player player) {
137+
if (!(player instanceof PlayerExtension ext)) return false;
138+
if (ext.getCurse() == CurseType.cannot_sleep) {
139+
learnCurseEffect(ext);
140+
return true;
141+
}
142+
return false;
143+
}
135144
}

src/main/java/huix/infinity/datagen/lang/IFWCNLang.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ protected void addTranslations() {
5151
add("curse.ifw.cannot_wear_armor.desc", "§c你发现你不能穿着盔甲");
5252
add("curse.ifw.cannot_open_chests.desc", "§c你发现你无法打开箱子(我柜子怎么动了)");
5353
add("curse.ifw.cannot_sleep.desc", "§c你发现你在晚上无法入睡");
54+
add("block.minecraft.bed.sleep.other_problem", "§c你发现你难以入眠");
55+
add("curse.ifw.someone_cannot_sleep.desc", "§e玩家 %s 被诅咒失眠,夜晚无法跳过");
5456
add("curse.ifw.fear_of_spiders.desc", "§c你发现你难以对蜘蛛发起有效攻击");
5557
add("curse.ifw.fear_of_wolves.desc", "§c你发现你难以对狼发起有效攻击");
5658
add("curse.ifw.fear_of_creepers.desc", "§c你发现你难以对苦力怕发起有效攻击");

src/main/java/huix/infinity/datagen/lang/IFWUSLang.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ protected void addTranslations() {
5252
add("curse.ifw.cannot_wear_armor.desc", "§cYou find yourself unable to wear armor of any sort");
5353
add("curse.ifw.cannot_open_chests.desc", "§cYou find yourself unable to open chests");
5454
add("curse.ifw.cannot_sleep.desc", "§cYou find yourself unable to sleep at night");
55+
add("block.minecraft.bed.sleep.other_problem", "§cYou find you have trouble sleeping");
56+
add("curse.ifw.someone_cannot_sleep.desc", "§ePlayer %s is cursed with insomnia, night cannot be skipped");
5557
add("curse.ifw.fear_of_spiders.desc", "§cYou've become fearful of spiders and have difficulty striking them in melee combat");
5658
add("curse.ifw.fear_of_wolves.desc", "§cYou've become fearful of wolves and have difficulty striking them in melee combat");
5759
add("curse.ifw.fear_of_creepers.desc", "§cYou've become fearful of creepers and have difficulty striking them in melee combat");

src/main/java/huix/infinity/extension/func/PlayerExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ default void onEnchantmentPerformedPoints(final ItemStack enchantedItem, final i
2929

3030
default void ifw_updateTotalExperience() {}
3131

32-
default boolean infinityWay$canResetTimeBySleeping() {
32+
default boolean ifw$canResetTimeBySleeping() {
3333
return false;
3434
}
3535

src/main/java/huix/infinity/init/IFWEvents.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,14 @@ public static void onCanPlayerSleep(final CanPlayerSleepEvent event) {
337337
ServerPlayer player = event.getEntity();
338338

339339
if (event.getProblem() == null) {
340+
if (CurseEffectHelper.shouldBlockSleep(player)) {
341+
player.displayClientMessage(Component.translatable("curse.ifw.cannot_sleep.desc"), true);
342+
for (Player other : player.level().players()) {
343+
if (other != player && other.isSleeping()) {
344+
other.displayClientMessage(Component.translatable("curse.ifw.someone_cannot_sleep.desc", player.getDisplayName()), true);
345+
}
346+
}
347+
}
340348
long currentTime = player.level().getDayTime();
341349
playerSleepStartTime.put(player.getUUID(), currentTime);
342350
}

0 commit comments

Comments
 (0)