diff --git a/build.gradle b/build.gradle index 2949beeb..44b214fd 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { mavenCentral() } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.+', changing: true + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' } } @@ -14,9 +14,9 @@ apply plugin: 'eclipse' apply plugin: 'maven-publish' apply plugin: 'org.spongepowered.mixin' -version = '1.8.2' +version = versions_mod group = 'com.majruszsenchantments' -archivesBaseName = 'majruszs-enchantments-1.18.2' +archivesBaseName = "majruszs-enchantments-${versions_minecraft}" java.toolchain.languageVersion = JavaLanguageVersion.of(17) compileJava { @@ -24,7 +24,7 @@ compileJava { } minecraft { - mappings channel: 'official', version: '1.18.2' + mappings channel: 'official', version: versions_minecraft accessTransformer = file( 'src/main/resources/META-INF/accesstransformer.cfg' ) // Currently, this location cannot be changed from the default. @@ -96,9 +96,16 @@ repositories { } } +processResources { + filesMatching('META-INF/mods.toml') { + expand project.properties + } + outputs.upToDateWhen { false } +} + dependencies { - minecraft 'net.minecraftforge:forge:1.18.2-40.2.0' - implementation fg.deobf( 'com.mlib:majrusz-library-1.18.2:4.0.0' ) + minecraft "net.minecraftforge:forge:${versions_minecraft}-${versions_forge}" + implementation fg.deobf( "com.mlib:majrusz-library-${versions_minecraft}:${versions_mlib}" ) annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' } diff --git a/gradle.properties b/gradle.properties index 878bf1f7..908942a3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,11 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false \ No newline at end of file +org.gradle.daemon=false +versions_minecraft=1.18.2 +versions_minecraft_range=[1.18.2,1.19) +versions_forge=40.2.0 +versions_forge_range=[40.2.0,) +versions_mod=1.9.0 +versions_mlib=4.3.0 +versions_mlib_range=[4.3.0,5.0.0) \ No newline at end of file diff --git a/libs/majrusz-library-1.18.2-4.0.0.jar b/libs/majrusz-library-1.18.2-4.3.0.jar similarity index 80% rename from libs/majrusz-library-1.18.2-4.0.0.jar rename to libs/majrusz-library-1.18.2-4.3.0.jar index b461d6ba..d5911628 100644 Binary files a/libs/majrusz-library-1.18.2-4.0.0.jar and b/libs/majrusz-library-1.18.2-4.3.0.jar differ diff --git a/src/main/java/com/majruszsenchantments/Registries.java b/src/main/java/com/majruszsenchantments/Registries.java index 79df03de..0581bcb4 100644 --- a/src/main/java/com/majruszsenchantments/Registries.java +++ b/src/main/java/com/majruszsenchantments/Registries.java @@ -61,6 +61,7 @@ public class Registries { public static final RegistryObject< LeechEnchantment > LEECH = ENCHANTMENTS.register( "leech", LeechEnchantment::new ); public static final RegistryObject< MagicProtectionEnchantment > MAGIC_PROTECTION = ENCHANTMENTS.register( "magic_protection", MagicProtectionEnchantment::new ); public static final RegistryObject< MisanthropyEnchantment > MISANTHROPY = ENCHANTMENTS.register( "misanthropy", MisanthropyEnchantment::new ); + public static final RegistryObject< RepulsionEnchantment > REPULSION = ENCHANTMENTS.register( "repulsion", RepulsionEnchantment::new ); public static final RegistryObject< SmelterEnchantment > SMELTER = ENCHANTMENTS.register( "smelter", SmelterEnchantment::new ); public static final RegistryObject< TelekinesisEnchantment > TELEKINESIS = ENCHANTMENTS.register( "telekinesis", TelekinesisEnchantment::new ); @@ -69,6 +70,7 @@ public class Registries { public static final RegistryObject< CorrosionCurse > CORROSION = ENCHANTMENTS.register( "corrosion_curse", CorrosionCurse::new ); public static final RegistryObject< FatigueCurse > FATIGUE = ENCHANTMENTS.register( "fatigue_curse", FatigueCurse::new ); public static final RegistryObject< IncompatibilityCurse > INCOMPATIBILITY = ENCHANTMENTS.register( "incompatibility_curse", IncompatibilityCurse::new ); + public static final RegistryObject< SlipperyCurse > SLIPPERY = ENCHANTMENTS.register( "slippery_curse", SlipperyCurse::new ); public static final RegistryObject< VampirismCurse > VAMPIRISM = ENCHANTMENTS.register( "vampirism_curse", VampirismCurse::new ); // Particles diff --git a/src/main/java/com/majruszsenchantments/curses/SlipperyCurse.java b/src/main/java/com/majruszsenchantments/curses/SlipperyCurse.java new file mode 100644 index 00000000..8fdc60f6 --- /dev/null +++ b/src/main/java/com/majruszsenchantments/curses/SlipperyCurse.java @@ -0,0 +1,66 @@ +package com.majruszsenchantments.curses; + +import com.majruszsenchantments.Registries; +import com.mlib.EquipmentSlots; +import com.mlib.annotations.AutoInstance; +import com.mlib.config.ConfigGroup; +import com.mlib.config.DoubleConfig; +import com.mlib.enchantments.CustomEnchantment; +import com.mlib.gamemodifiers.Condition; +import com.mlib.gamemodifiers.ModConfigs; +import com.mlib.gamemodifiers.contexts.OnEnchantmentAvailabilityCheck; +import com.mlib.gamemodifiers.contexts.OnPlayerTick; +import com.mlib.math.Range; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.api.distmarker.Dist; + +import java.util.function.Supplier; + +public class SlipperyCurse extends CustomEnchantment { + public SlipperyCurse() { + this.rarity( Rarity.RARE ) + .category( Registries.TOOLS ) + .slots( EquipmentSlots.BOTH_HANDS ) + .curse() + .maxLevel( 1 ) + .minLevelCost( level->10 ) + .maxLevelCost( level->50 ); + } + + @AutoInstance + public static class Handler { + final Supplier< SlipperyCurse > enchantment = Registries.SLIPPERY; + + public Handler() { + ConfigGroup group = ModConfigs.registerSubgroup( Registries.Groups.CURSE ) + .name( "Slippery" ) + .comment( "Makes the item occasionally drop out of hand." ); + + OnEnchantmentAvailabilityCheck.listen( OnEnchantmentAvailabilityCheck.ENABLE ) + .addCondition( OnEnchantmentAvailabilityCheck.is( this.enchantment ) ) + .addCondition( OnEnchantmentAvailabilityCheck.excludable() ) + .insertTo( group ); + + DoubleConfig dropCooldown = new DoubleConfig( 1.0, new Range<>( 0.1, 300.0 ) ); + dropCooldown.name( "drop_cooldown" ).comment( "Cooldown in seconds between ticks." ); + + DoubleConfig dropChance = new DoubleConfig( 0.03, Range.CHANCE ); + dropChance.name( "drop_chance" ).comment( "Chance to drop held item every tick." ); + + OnPlayerTick.listen( this::dropWeapon ) + .addCondition( Condition.isServer() ) + .addCondition( Condition.hasEnchantment( this.enchantment, data->data.player ) ) + .addCondition( Condition.cooldown( dropCooldown, Dist.DEDICATED_SERVER ) ) + .addCondition( Condition.chance( dropChance ) ) + .insertTo( group ); + } + + private void dropWeapon( OnPlayerTick.Data data ) { + EquipmentSlot slot = this.enchantment.get().hasEnchantment( data.player.getMainHandItem() ) ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND; + + data.player.drop( data.player.getItemBySlot( slot ), false ); + data.player.setItemSlot( slot, ItemStack.EMPTY ); + } + } +} diff --git a/src/main/java/com/majruszsenchantments/enchantments/DodgeEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/DodgeEnchantment.java index 9eebb771..6133879a 100644 --- a/src/main/java/com/majruszsenchantments/enchantments/DodgeEnchantment.java +++ b/src/main/java/com/majruszsenchantments/enchantments/DodgeEnchantment.java @@ -14,9 +14,7 @@ import com.mlib.gamemodifiers.contexts.OnPreDamaged; import com.mlib.math.Range; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.EnchantmentCategory; import net.minecraft.world.phys.Vec3; @@ -34,8 +32,7 @@ public DodgeEnchantment() { @AutoInstance public static class Handler { - final DoubleConfig chance = new DoubleConfig( 0.125, new Range<>( 0.01, 0.4 ) ); - final DoubleConfig pantsDamageMultiplier = new DoubleConfig( 0.5, new Range<>( 0.0, 10.0 ) ); + final DoubleConfig chance = new DoubleConfig( 0.125, new Range<>( 0.01, 0.5 ) ); final Supplier< DodgeEnchantment > enchantment = Registries.DODGE; public Handler() { @@ -54,7 +51,6 @@ public Handler() { .addCondition( OnPreDamaged.willTakeFullDamage() ) .addCondition( Condition.predicate( this::tryToDodge ) ) .addConfig( this.chance.name( "chance" ).comment( "Chance to completely ignore the damage per enchantment level." ) ) - .addConfig( this.pantsDamageMultiplier.name( "pants_damage_multiplier" ).comment( "Percent of damage transferred to pants." ) ) .insertTo( group ); } @@ -62,7 +58,6 @@ private void dodgeDamage( OnPreDamaged.Data data ) { if( data.getLevel() instanceof ServerLevel level ) { this.spawnEffects( data.target, level ); } - this.damagePants( data.target, data.damage ); OnPreDamaged.CANCEL.accept( data ); } @@ -77,15 +72,6 @@ private void spawnEffects( LivingEntity entity, ServerLevel level ) { SoundHandler.FIRE_EXTINGUISH.play( level, entity.position() ); } - private void damagePants( LivingEntity entity, float damage ) { - float multiplier = this.pantsDamageMultiplier.asFloat(); - if( multiplier > 0.0f ) { - ItemStack pants = entity.getItemBySlot( EquipmentSlot.LEGS ); - int totalDamage = Math.max( 1, ( int )( damage * multiplier ) ); - pants.hurtAndBreak( totalDamage, entity, owner->owner.broadcastBreakEvent( EquipmentSlot.LEGS ) ); - } - } - private boolean tryToDodge( OnPreDamaged.Data data ) { return Random.tryChance( this.enchantment.get().getEnchantmentLevel( data.target ) * this.chance.get() ); } diff --git a/src/main/java/com/majruszsenchantments/enchantments/EnlightenmentEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/EnlightenmentEnchantment.java index 0937ba5b..433beb1c 100644 --- a/src/main/java/com/majruszsenchantments/enchantments/EnlightenmentEnchantment.java +++ b/src/main/java/com/majruszsenchantments/enchantments/EnlightenmentEnchantment.java @@ -58,10 +58,8 @@ public Handler() { private void increaseExperience( OnPickupXp.Data data ) { int enlightenmentSum = this.enchantment.get().getEnchantmentSum( data.player, EquipmentSlots.ARMOR ); int experiencePoints = Random.roundRandomly( enlightenmentSum * this.experienceMultiplier.get() * data.event.getOrb().getValue() ); - if( experiencePoints > 1 ) { - data.player.giveExperiencePoints( Random.nextInt( 1, experiencePoints ) ); - } else if( experiencePoints > 0 ) { - data.player.giveExperiencePoints( 1 ); + if( experiencePoints > 0 ) { + data.player.giveExperiencePoints( experiencePoints ); } } diff --git a/src/main/java/com/majruszsenchantments/enchantments/FishingFanaticEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/FishingFanaticEnchantment.java index e016eb00..42c0f508 100644 --- a/src/main/java/com/majruszsenchantments/enchantments/FishingFanaticEnchantment.java +++ b/src/main/java/com/majruszsenchantments/enchantments/FishingFanaticEnchantment.java @@ -129,7 +129,6 @@ private void increaseLoot( OnExtraFishingLootCheck.Data data ) { List< ItemStack > extraLoot = this.spawnExtraLoot( data, fanaticLevel ); data.extraExperience += extraLoot.size() + Random.nextInt( 1, 2 * extraLoot.size() + 1 ); - data.extraRodDamage += extraLoot.size(); data.extraLoot.addAll( extraLoot ); } @@ -160,9 +159,9 @@ private void tryToLevelUp( OnItemFished.Data data ) { this.enchantment.get().increaseEnchantmentLevel( fishingRod ); if( data.player instanceof ServerPlayer player ) { - giveAdvancement( player, "nothing_can_stop_me", ()->isRaining ); giveAdvancement( player, "fishing_fanatic", ()->fanaticLevel + 1 == 1 ); giveAdvancement( player, "fishing_fanatic_true", ()->fanaticLevel + 1 == this.enchantment.get().getMaxLevel() ); + giveAdvancement( player, "nothing_can_stop_me", ()->isRaining ); } sendLevelUpMessage( data.player ); } diff --git a/src/main/java/com/majruszsenchantments/enchantments/FuseCutterEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/FuseCutterEnchantment.java index 699cacb0..f739beeb 100644 --- a/src/main/java/com/majruszsenchantments/enchantments/FuseCutterEnchantment.java +++ b/src/main/java/com/majruszsenchantments/enchantments/FuseCutterEnchantment.java @@ -78,7 +78,6 @@ private boolean isAnyoneBlockingWithFuseCutterNearby( OnExplosionStart.Data data ItemStack itemStack = ItemHelper.getCurrentlyUsedItem( livingEntity ); if( this.enchantment.get().hasEnchantment( itemStack ) ) { - itemStack.hurtAndBreak( data.radius.intValue(), player, owner->owner.broadcastBreakEvent( livingEntity.getUsedItemHand() ) ); EntityHelper.disableCurrentItem( player, data.radius.doubleValue() * this.cooldownRatio.get() ); return true; } diff --git a/src/main/java/com/majruszsenchantments/enchantments/HarvesterEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/HarvesterEnchantment.java index f7f2ad5c..e5a1046c 100644 --- a/src/main/java/com/majruszsenchantments/enchantments/HarvesterEnchantment.java +++ b/src/main/java/com/majruszsenchantments/enchantments/HarvesterEnchantment.java @@ -20,7 +20,6 @@ import com.mlib.math.Range; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -46,7 +45,6 @@ public HarvesterEnchantment() { @AutoInstance public static class Handler { - final DoubleConfig durabilityPenalty = new DoubleConfig( 1.0, new Range<>( 0.0, 10.0 ) ); final DoubleConfig growChance = new DoubleConfig( 0.04, Range.CHANCE ); final Supplier< HarvesterEnchantment > enchantment = Registries.HARVESTER; @@ -65,7 +63,6 @@ public Handler() { .addCondition( Condition.predicate( data->this.enchantment.get().hasEnchantment( data.itemStack ) ) ) .addCondition( Condition.predicate( data->data.event instanceof PlayerInteractEvent.RightClickBlock ) ) .addCondition( Condition.predicate( data->BlockHelper.isCropAtMaxAge( data.getLevel(), new BlockPos( data.event.getPos() ) ) ) ) - .addConfig( this.durabilityPenalty.name( "durability_penalty" ).comment( "Durability penalty per each successful increase of nearby crops." ) ) .addConfig( this.growChance.name( "extra_grow_chance" ).comment( "Chance to increase an age of nearby crops." ) ) .insertTo( group ); @@ -85,7 +82,7 @@ public Handler() { private void increaseAgeOfNearbyCrops( OnPlayerInteract.Data data ) { this.collectCrop( data.getServerLevel(), data.player, data.position, data.itemStack ); - this.tickNearbyCrops( data.getServerLevel(), data.player, data.position, data.itemStack, data.event.getHand() ); + this.tickNearbyCrops( data.getServerLevel(), data.position, data.itemStack ); SoundHandler.BONE_MEAL.play( data.getLevel(), AnyPos.from( data.position ).vec3() ); } @@ -95,11 +92,8 @@ private void collectCrop( ServerLevel level, Player player, BlockPos position, I block.playerDestroy( level, player, position, blockState, null, itemStack ); } - private void tickNearbyCrops( ServerLevel level, Player player, BlockPos position, ItemStack itemStack, - InteractionHand hand - ) { + private void tickNearbyCrops( ServerLevel level, BlockPos position, ItemStack itemStack ) { int range = this.enchantment.get().getEnchantmentLevel( itemStack ); - double totalDamage = 0; for( int z = -range; z <= range; ++z ) { for( int x = -range; x <= range; ++x ) { if( x == 0 && z == 0 ) @@ -114,17 +108,12 @@ private void tickNearbyCrops( ServerLevel level, Player player, BlockPos positio int particlesCount = 1; if( Random.tryChance( this.growChance.get() ) ) { BlockHelper.growCrop( level, neighbourPosition ); - totalDamage += this.durabilityPenalty.get(); particlesCount = 3; } ParticleHandler.AWARD.spawn( level, AnyPos.from( position ).vec3(), particlesCount ); } } - int finalDamage = Random.roundRandomly( totalDamage ); - if( finalDamage > 0 ) { - itemStack.hurtAndBreak( finalDamage, player, owner->owner.broadcastBreakEvent( hand ) ); - } } private void replant( OnLoot.Data data ) { diff --git a/src/main/java/com/majruszsenchantments/enchantments/RepulsionEnchantment.java b/src/main/java/com/majruszsenchantments/enchantments/RepulsionEnchantment.java new file mode 100644 index 00000000..480b4f5f --- /dev/null +++ b/src/main/java/com/majruszsenchantments/enchantments/RepulsionEnchantment.java @@ -0,0 +1,62 @@ +package com.majruszsenchantments.enchantments; + +import com.majruszsenchantments.Registries; +import com.mlib.EquipmentSlots; +import com.mlib.annotations.AutoInstance; +import com.mlib.config.ConfigGroup; +import com.mlib.config.DoubleConfig; +import com.mlib.enchantments.CustomEnchantment; +import com.mlib.gamemodifiers.Condition; +import com.mlib.gamemodifiers.ModConfigs; +import com.mlib.gamemodifiers.contexts.OnDamaged; +import com.mlib.gamemodifiers.contexts.OnEnchantmentAvailabilityCheck; +import com.mlib.items.ItemHelper; +import com.mlib.math.Range; +import net.minecraft.util.Mth; + +import java.util.function.Supplier; + +public class RepulsionEnchantment extends CustomEnchantment { + public RepulsionEnchantment() { + this.rarity( Rarity.RARE ) + .category( Registries.SHIELD ) + .slots( EquipmentSlots.BOTH_HANDS ) + .maxLevel( 1 ) + .minLevelCost( level->15 ) + .maxLevelCost( level->45 ); + } + + @AutoInstance + public static class Handler { + final DoubleConfig strength = new DoubleConfig( 1.0, new Range<>( 0.0, 10.0 ) ); + final Supplier< RepulsionEnchantment > enchantment = Registries.REPULSION; + + public Handler() { + ConfigGroup group = ModConfigs.registerSubgroup( Registries.Groups.ENCHANTMENT ) + .name( "Repulsion" ) + .comment( "Knocks back mobs when blocking their attack." ); + + OnEnchantmentAvailabilityCheck.listen( OnEnchantmentAvailabilityCheck.ENABLE ) + .addCondition( OnEnchantmentAvailabilityCheck.is( this.enchantment ) ) + .addCondition( OnEnchantmentAvailabilityCheck.excludable() ) + .insertTo( group ); + + OnDamaged.listen( this::knockbackEnemy ) + .addCondition( Condition.isServer() ) + .addCondition( Condition.predicate( data->data.attacker != null ) ) + .addCondition( OnDamaged.isDirect() ) + .addCondition( OnDamaged.dealtAnyDamage().negate() ) + .addCondition( this.isBlockingWithRepulsionShield() ) + .addConfig( this.strength.name( "strength" ).comment( "Determines how strong the knock back is." ) ) + .insertTo( group ); + } + + private void knockbackEnemy( OnDamaged.Data data ) { + data.attacker.knockback( this.strength.asFloat(), Mth.sin( data.attacker.getYRot() * ( float )Math.PI / 180.0f + ( float )Math.PI ), -Mth.cos( data.attacker.getYRot() * ( float )Math.PI / 180.0f + ( float )Math.PI ) ); + } + + private Condition< OnDamaged.Data > isBlockingWithRepulsionShield() { + return Condition.predicate( data->this.enchantment.get().hasEnchantment( ItemHelper.getCurrentlyUsedItem( data.target ) ) ); + } + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 3c91b2d7..45197596 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ issueTrackerURL="https://github.com/Majrusz/MajruszsEnchantmentsMod/issues" [[mods]] modId="majruszsenchantments" - version="1.8.2" + version="${versions_mod}" displayName="Majrusz's Enchantments" updateJSONURL="https://raw.githubusercontent.com/Majrusz/MinecraftCommon/main/Enchantments/update.json" displayURL="https://www.curseforge.com/minecraft/mc-mods/wonderful-enchantments" @@ -17,20 +17,20 @@ issueTrackerURL="https://github.com/Majrusz/MajruszsEnchantmentsMod/issues" [[dependencies.majruszsenchantments]] modId="forge" mandatory=true - versionRange="[40.2.0,)" + versionRange="${versions_forge_range}" ordering="NONE" side="BOTH" [[dependencies.majruszsenchantments]] modId="minecraft" mandatory=true - versionRange="[1.18.2,1.19)" + versionRange="${versions_minecraft_range}" ordering="NONE" side="BOTH" [[dependencies.majruszsenchantments]] modId="mlib" mandatory=true - versionRange="[4.0.0,5.0.0)" + versionRange="${versions_mlib_range}" ordering="NONE" side="BOTH" \ No newline at end of file diff --git a/src/main/resources/assets/majruszsenchantments/lang/en_us.json b/src/main/resources/assets/majruszsenchantments/lang/en_us.json index 9f0333b9..af0a05d5 100644 --- a/src/main/resources/assets/majruszsenchantments/lang/en_us.json +++ b/src/main/resources/assets/majruszsenchantments/lang/en_us.json @@ -18,7 +18,7 @@ "enchantment.majruszsenchantments.fishing_fanatic": "Fishing Fanatic", "enchantment.majruszsenchantments.fishing_fanatic.desc": "Gives a chance to catch additional items from fishing.", "enchantment.majruszsenchantments.fishing_fanatic.description": "Gives a chance to catch additional items from fishing.", - "enchantment.majruszsenchantments.fishing_fanatic.level_up": "You have become greater Fishing Fanatic!", + "enchantment.majruszsenchantments.fishing_fanatic.level_up": "You have become more addicted to fishing!", "enchantment.majruszsenchantments.fishing_fanatic.true": "True Fishing Fanatic", "enchantment.majruszsenchantments.fuse_cutter": "Fuse Cutter", @@ -65,6 +65,10 @@ "enchantment.majruszsenchantments.misanthropy.desc": "Increases the damage against villagers, pillagers, witches and other players.", "enchantment.majruszsenchantments.misanthropy.description": "Increases the damage against villagers, pillagers, witches and other players.", + "enchantment.majruszsenchantments.repulsion": "Repulsion", + "enchantment.majruszsenchantments.repulsion.desc": "Knocks back mobs when blocking their attack.", + "enchantment.majruszsenchantments.repulsion.description": "Knocks back mobs when blocking their attack.", + "enchantment.majruszsenchantments.sixth_sense": "Sixth Sense", "enchantment.majruszsenchantments.sixth_sense.desc": "Highlights nearby mobs that emit any sound if the player is sneaking nearby.", "enchantment.majruszsenchantments.sixth_sense.description": "Highlights nearby mobs that emit any sound if the player is sneaking nearby.", @@ -93,6 +97,10 @@ "enchantment.majruszsenchantments.incompatibility_curse.desc": "Makes the item unenchantable.", "enchantment.majruszsenchantments.incompatibility_curse.description": "Makes the item unenchantable.", + "enchantment.majruszsenchantments.slippery_curse": "Curse of Slippery", + "enchantment.majruszsenchantments.slippery_curse.desc": "Makes the item occasionally drop out of hand.", + "enchantment.majruszsenchantments.slippery_curse.description": "Makes the item occasionally drop out of hand.", + "enchantment.majruszsenchantments.vampirism_curse": "Curse of Vampirism", "enchantment.majruszsenchantments.vampirism_curse.desc": "Weakens and ignites the player when in daylight, but makes Leech enchantment stronger.", "enchantment.majruszsenchantments.vampirism_curse.description": "Weakens and ignites the player when in daylight, but makes Leech enchantment stronger.", diff --git a/src/main/resources/assets/majruszsenchantments/lang/pl_pl.json b/src/main/resources/assets/majruszsenchantments/lang/pl_pl.json index 0db64b90..49452e52 100644 --- a/src/main/resources/assets/majruszsenchantments/lang/pl_pl.json +++ b/src/main/resources/assets/majruszsenchantments/lang/pl_pl.json @@ -18,7 +18,7 @@ "enchantment.majruszsenchantments.fishing_fanatic": "Fanatyk wędkarstwa", "enchantment.majruszsenchantments.fishing_fanatic.desc": "Daje szansę na wyłowienie dodatkowych przedmiotów z łowienia.", "enchantment.majruszsenchantments.fishing_fanatic.description": "Daje szansę na wyłowienie dodatkowych przedmiotów z łowienia.", - "enchantment.majruszsenchantments.fishing_fanatic.level_up": "Stałeś się większym fanatykiem wędkarstwa!", + "enchantment.majruszsenchantments.fishing_fanatic.level_up": "Uzależniłeś się bardziej od wędkarstwa!", "enchantment.majruszsenchantments.fishing_fanatic.true": "Prawdziwy fanatyk wędkarstwa", "enchantment.majruszsenchantments.fuse_cutter": "Przecinak przewodów", @@ -65,6 +65,10 @@ "enchantment.majruszsenchantments.misanthropy.desc": "Zwiększa obrażenia zadawane osadnikom, rozbójnikom, wiedźmom i innym graczom.", "enchantment.majruszsenchantments.misanthropy.description": "Zwiększa obrażenia zadawane osadnikom, rozbójnikom, wiedźmom i innym graczom.", + "enchantment.majruszsenchantments.repulsion": "Odepchnięcie", + "enchantment.majruszsenchantments.repulsion.desc": "Odrzuca przeciwników gdy ich atak zostanie zablokowany tarczą.", + "enchantment.majruszsenchantments.repulsion.description": "Odrzuca przeciwników gdy ich atak zostanie zablokowany tarczą.", + "enchantment.majruszsenchantments.sixth_sense": "Szósty zmysł", "enchantment.majruszsenchantments.sixth_sense.desc": "Podświetla pobliskie moby, które wydają dźwięki, jeżeli gracz się skrada w pobliżu.", "enchantment.majruszsenchantments.sixth_sense.description": "Podświetla pobliskie moby, które wydają dźwięki, jeżeli gracz się skrada w pobliżu.", @@ -93,6 +97,10 @@ "enchantment.majruszsenchantments.incompatibility_curse.desc": "Powoduje, że żadne inne zaklęcie nie może zostać nałożone na przedmiot.", "enchantment.majruszsenchantments.incompatibility_curse.description": "Powoduje, że żadne inne zaklęcie nie może zostać nałożone na przedmiot.", + "enchantment.majruszsenchantments.slippery_curse": "Klątwa śliskości", + "enchantment.majruszsenchantments.slippery_curse.desc": "Powoduje, że przedmiot czasami wypada z dłoni.", + "enchantment.majruszsenchantments.slippery_curse.description": "Powoduje, że przedmiot czasami wypada z dłoni.", + "enchantment.majruszsenchantments.vampirism_curse": "Klątwa wampiryzmu", "enchantment.majruszsenchantments.vampirism_curse.desc": "Osłabia i podpala gracza gdy ten znajduje się na zewnątrz podczas dnia, za to wzmacnia zaklęcie Pijawka.", "enchantment.majruszsenchantments.vampirism_curse.description": "Osłabia i podpala gracza gdy ten znajduje się na zewnątrz podczas dnia, za to wzmacnia zaklęcie Pijawka.",