From 03ab0571aef8519b32265052ce10bc5a44f0c138 Mon Sep 17 00:00:00 2001 From: rtclark Date: Mon, 29 Jul 2024 16:40:18 -0500 Subject: [PATCH 1/2] Made Tunneling more cool. --- .idea/artifacts/LOTRings_jar.xml | 2 +- .../lotrings/abilities/TunnelingAbility.java | 118 ++++++-- src/main/resources/abilities.yml | 272 ++++++++++++++++-- src/main/resources/rings.yml | 215 ++++++++++++-- target/classes/abilities.yml | 272 ++++++++++++++++-- .../lotrings/abilities/TunnelingAbility.class | Bin 5075 -> 6257 bytes target/classes/rings.yml | 215 ++++++++++++-- 7 files changed, 976 insertions(+), 118 deletions(-) diff --git a/.idea/artifacts/LOTRings_jar.xml b/.idea/artifacts/LOTRings_jar.xml index 95ecdea..c457638 100644 --- a/.idea/artifacts/LOTRings_jar.xml +++ b/.idea/artifacts/LOTRings_jar.xml @@ -1,6 +1,6 @@ - $PROJECT_DIR$/../../../../Other/Paper Servers/Plugin test/plugins + $USER_HOME$/Desktop/test-mc-server/plugins diff --git a/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java b/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java index e44e80b..8b63fdd 100644 --- a/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java +++ b/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java @@ -12,24 +12,29 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.util.RayTraceResult; import org.bukkit.Bukkit; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class TunnelingAbility extends AbilitySuper { - private double range; - private CooldownManager cooldownManager; + //private double range; + //private CooldownManager cooldownManager; + private boolean isBreaking; + private BukkitScheduler scheduler; private Sound sound; private List unbreakableBlocks; public TunnelingAbility(LOTRings plugin, Ring ring, String abilityName) { super(plugin, ring, abilityName); + this.scheduler = plugin.getServer().getScheduler(); try { - this.range = plugin.getAbilityDataManager().getAbilityFloatData(abilityName, "range").doubleValue(); - this.cooldownManager = new CooldownManager(plugin, this, plugin.getAbilityDataManager().getAbilityFloatData(abilityName, "cooldown-seconds").doubleValue()); + //this.range = plugin.getAbilityDataManager().getAbilityFloatData(abilityName, "range").doubleValue(); + //this.cooldownManager = new CooldownManager(plugin, this, plugin.getAbilityDataManager().getAbilityFloatData(abilityName, "cooldown-seconds").doubleValue()); this.sound = Sound.valueOf(plugin.getAbilityDataManager().getAbilityStringData(abilityName, "sound").toUpperCase()); this.unbreakableBlocks = plugin.getAbilityDataManager().getAbilityStringListData(abilityName, "unbreakable-blocks"); } catch (Exception e) { @@ -38,53 +43,116 @@ public TunnelingAbility(LOTRings plugin, Ring ring, String abilityName) { } @EventHandler(priority = EventPriority.LOW) - public void PlayerRightClick(PlayerInteractEvent event) { - if (!event.getAction().isRightClick()) return; + public void PlayerRightClick(BlockBreakEvent event) { + if(isBreaking)return; if (!abilityCanBeUsed(event.getPlayer().getUniqueId())) return; - if (cooldownManager.checkAndStartCooldown()) return; + //if (cooldownManager.checkAndStartCooldown()) return; Player player = event.getPlayer(); - RayTraceResult rayTraceResult = player.getWorld().rayTraceBlocks(player.getEyeLocation(), player.getEyeLocation().getDirection(), range); - - if (rayTraceResult != null && rayTraceResult.getHitBlock() != null) { - Block targetBlock = rayTraceResult.getHitBlock(); - breakBlocksAround(player, targetBlock); - player.getWorld().playSound(player.getLocation(), sound, 10, 1); - } + //RayTraceResult rayTraceResult = player.getWorld().rayTraceBlocks(player.getEyeLocation(), player.getEyeLocation().getDirection(), range); + breakBlocksAround(player, event.getBlock()); + player.getWorld().playSound(player.getLocation(), sound, 10, 1); +// if (rayTraceResult != null && rayTraceResult.getHitBlock() != null) { +// Block targetBlock = rayTraceResult.getHitBlock(); +// breakBlocksAround(player, targetBlock); +// player.getWorld().playSound(player.getLocation(), sound, 10, 1); +// } } private void breakBlocksAround(Player player, Block center) { + isBreaking = true; + ArrayList blockList = new ArrayList<>(); for (int x = -1; x <= 1; x++) { for (int y = -1; y <= 1; y++) { for (int z = -1; z <= 1; z++) { Block block = center.getRelative(x, y, z); // Check if the block is in the unbreakable blocks list - if (unbreakableBlocks.contains(block.getType())) { + if (unbreakableBlocks.contains(block.getType().toString())) { continue; // Skip unbreakable blocks } // Check if the block is bedrock - if (block.getType() == Material.BEDROCK) { + if (block.getType() == Material.BEDROCK || block.getType().equals(Material.AIR)) { continue; // Skip bedrock } // Create and call a BlockBreakEvent to check if the block can be broken - BlockBreakEvent breakEvent = new BlockBreakEvent(block, player); - Bukkit.getPluginManager().callEvent(breakEvent); + //BlockBreakEvent breakEvent = new BlockBreakEvent(block, player); + //Bukkit.getPluginManager().callEvent(breakEvent); // If the event is cancelled, skip breaking the block - if (breakEvent.isCancelled()) { - continue; - } +// if (breakEvent.isCancelled()) { +// continue; +// } + + blockList.add(block); //sending all commented code for fancy delay. // Break the block if it's not air and passes the checks - if (block.getType() != Material.AIR) { - block.breakNaturally(); - block.getWorld().spawnParticle(Particle.BLOCK_CRACK, block.getLocation(), 10, block.getType().createBlockData()); - } +// if (block.getType() != Material.AIR) { +// block.breakNaturally(); +// block.getWorld().spawnParticle(Particle.BLOCK_CRACK, block.getLocation(), 10, block.getType().createBlockData()); +// } } } } + +// for(int i = 0; i < blockList.size(); i++){ +// for(int j = 0; j < blockList.size(); j++){ +// if(blockList.get(i).getLocation().distance(player.getLocation()) +// < blockList.get(j).getLocation().distance(player.getLocation())){ +// Block closerBlock = blockList.get(i); +// Block fartherBlock = blockList.get(j); +// blockList.set(i, closerBlock); +// blockList.set(j, fartherBlock); +// } +// } +// } + + stupidRecursiveFunction(blockList, player); + +// int tickSpacing = 0; +// for(Block block : blockList){ +// breakBlockLater(block, tickSpacing*2); +// tickSpacing += 1; +// Bukkit.broadcastMessage(tickSpacing + " ff"); +// } +// scheduler.runTaskLater(plugin, (task)->{ +// isBreaking = false; +// }, tickSpacing* 2L + 1); + } + + private void stupidRecursiveFunction(ArrayList blockList, Player player){ + if(blockList.isEmpty() || !ring.isHeld()){ + isBreaking = false; + return; + } + Block closestBlock = blockList.get(0); + Block compareBlock; + for(Block block : blockList){ + compareBlock = block; + if(closestBlock.getLocation().distance(player.getLocation()) > compareBlock.getLocation().distance(player.getLocation())){ + closestBlock = compareBlock; + } + } + breakBlock(closestBlock, player); + blockList.remove(closestBlock); + + scheduler.runTaskLater(plugin, (task) -> { + stupidRecursiveFunction(blockList, player); + }, 3); + } + + private void breakBlock(Block block, Player player){ + + // Create and call a BlockBreakEvent to check if the block can be broken + //BlockBreakEvent breakEvent = new BlockBreakEvent(block, player); + //Bukkit.getPluginManager().callEvent(breakEvent); + player.breakBlock(block); + // If the event is cancelled, skip breaking the block + //if (breakEvent.isCancelled()) return; + //block.breakNaturally(); + block.getWorld().playSound(block.getLocation(), Sound.BLOCK_STONE_BREAK, 5 ,1); + block.getWorld().spawnParticle(Particle.BLOCK_CRACK, block.getLocation(), 10, block.getType().createBlockData()); } } diff --git a/src/main/resources/abilities.yml b/src/main/resources/abilities.yml index 3afe668..c0ae1df 100644 --- a/src/main/resources/abilities.yml +++ b/src/main/resources/abilities.yml @@ -24,7 +24,7 @@ abilities: cooldown-seconds: 30 damage: 10 speed-multiplier: 0.3 - explosion-radius: 4 + explosion-radius: 2.0 # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. burst: 1 burst-interval-ticks: 5 @@ -41,16 +41,16 @@ abilities: display-name: '&dExtra Hearts' potion-effect: ABSORPTION cooldown-seconds: 10 - duration-ticks: 80 + duration-ticks: 150 power: 2 description: - '&8- &dExtra Hearts&7: adds more health!' large-pushback: ability-type: PUSH_BACK display-name: '&4Push Back' - range: 10.0 - horizontal-power: 2.5 - vertical-power: 1.5 + range: 12.5 + horizontal-power: 3.5 + vertical-power: 2.0 cooldown-seconds: 30 sound: ENTITY_WARDEN_SONIC_BOOM description: @@ -59,7 +59,7 @@ abilities: ability-type: BOOST display-name: '&fBoost' cooldown-seconds: 10 - magnitude: 1.5 + magnitude: 2.0 sound: ENTITY_ENDER_DRAGON_FLAP description: - '&8- &fBoost&7: an extra umf (double jump).' @@ -90,56 +90,272 @@ abilities: duration-seconds: 30 description: - '&8- &fInvisibility&7: makes you completely invisible, even armor.' + regeneration-1: + ability-type: HELD_POTION_EFFECT + display-name: '®eneration' + potion-effect: REGENERATION + power: 0 + description: + - '&8- &4Regeneration I&7: gives regeneration.' + resistance-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cresistance' + potion-effect: DAMAGE_RESISTANCE + power: 0 + description: + - '&8- &4Resistance I&7: gives resistance.' + health-boost-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cHealth Boost' + potion-effect: HEALTH_BOOST + power: 0 + description: + - '&8- &4Health boost I&7: gives more hearts.' + small-pushback: + ability-type: PUSH_BACK + display-name: '&4Small Push Back' + range: 5 + horizontal-power: 1.5 + vertical-power: 1.0 + cooldown-seconds: 30 + sound: ENTITY_ARMOR_STAND_BREAK + description: + - '&8- &4Small Push Back&7: knocks entities back.' + small-fireball: + ability-type: FIREBALL + display-name: '&6Small Fireball' + # Fireball type can be NORMAL, LARGE, or SMALL + fireball-type: SMALL + fire: true + cooldown-seconds: 30 + damage: 5 + speed-multiplier: 0.3 + explosion-radius: 2 + # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. + burst: 1 + burst-interval-ticks: 5 + description: + - '&8- &6Small Fireball&7: Shoots a small fireball.' + small-fireball-burst: + ability-type: FIREBALL + display-name: '&6Small Fireball Burst' + # Fireball type can be NORMAL, LARGE, or SMALL + fireball-type: SMALL + fire: true + cooldown-seconds: 30 + damage: 7 + speed-multiplier: 0.3 + explosion-radius: 0 + # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. + burst: 3 + burst-interval-ticks: 5 + description: + - '&8- &6Small Fireball Burst&7: Shoots a small burst of 3 fireballs.' + small-boost: + ability-type: BOOST + display-name: '&fSmall Boost' + cooldown-seconds: 20 + magnitude: 1.0 + sound: ENTITY_BAT_TAKEOFF + description: + - '&8- &fSmall Boost&7: an extra umf (double jump).' + fear-of-nazgul: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Wither' + cooldown-seconds: 60 + range: 10 + power: 0 + duration-ticks: 120 + sound: ENTITY_WITHER_SPAWN + effects: + - BLINDNESS + - WITHER + - SLOW + description: + - '&8- &7Fear of the Nazgul: gives nearby players withering, blindness, and slowness.' + lifesteal-heal: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dHealing' + potion-effect: HEAL + cooldown-seconds: 60 + duration-ticks: 1 + power: 0 + description: + - '&8- &dHealing&7: adds more health!' + Levitating-others: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Levitate others' + cooldown-seconds: 60 + range: 7 + power: 0 + duration-ticks: 100 + sound: BLOCK_SHULKER_BOX_OPEN + effects: + - LEVITATION + - SLOW_FALLING + water-breathing: + ability-type: HELD_POTION_EFFECT + display-name: '&Water Breathing' + potion-effect: WATER_BREATHING + power: 0 + description: + - '&8- &4Water Breathing I&7: lets you breath underwater.' + medium-pushback: + ability-type: PUSH_BACK + display-name: '&4Push Back' + range: 7.5 + horizontal-power: 2.0 + vertical-power: 2.0 + cooldown-seconds: 45 + sound: ENTITY_WARDEN_SONIC_BOOM + description: + - '&8- &4Push Back&7: knocks entities back.' + medium-boost: + ability-type: BOOST + display-name: '&fBoost' + cooldown-seconds: 30 + magnitude: 1.25 + sound: ENTITY_ENDER_DRAGON_FLAP + description: + - '&8- &fBoost&7: an extra umf (double jump).' + water-breathing-others: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Enhanced Swimming' + cooldown-seconds: 60 + range: 10 + power: 0 + duration-ticks: 600 + sound: ENTITY_DOLPHIN_SWIM + effects: + - DOLPHINS_GRACE + - WATER_BREATHING + description: + - '&8- &7Enhanced Swimming: gives nearby players Dolphins Grace and Water Breathing.' + dolphins-grace: + ability-type: HELD_POTION_EFFECT + display-name: '&Dolphins Grace' + potion-effect: DOLPHINS_GRACE + power: 0 + description: + - '&8- &4Dolphins Grace: Lets you swim fast' + resistance-2: + ability-type: HELD_POTION_EFFECT + display-name: '&cresistance' + potion-effect: DAMAGE_RESISTANCE + power: 1 + description: + - '&8- &4Resistance II&7: gives resistance II.' + small-extra-hearts: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dExtra Hearts' + potion-effect: ABSORPTION + cooldown-seconds: 30 + duration-ticks: 100 + power: 1 + description: + - '&8- &dExtra Hearts&7: adds more health!' + slow-falling: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSlow Falling' + potion-effect: SLOW_FALLING + cooldown-seconds: 30 + duration-ticks: 80 + power: 1 + description: + - '&8- &dSlow Falling&7: adds slow falling!' + fire-res: + ability-type: HELD_POTION_EFFECT + display-name: '&cFire Resistance' + potion-effect: FIRE_RESISTANCE + power: 1 + description: + - '&8- &4Fire Resistance &7: gives fire resistance.' + small-speed-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSpeed' + potion-effect: SPEED + cooldown-seconds: 20 + duration-ticks: 60 + power: 1 + description: + - '&8- &dSpeed&7: makes you speedy!' + large-speed-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSpeed' + potion-effect: SPEED + cooldown-seconds: 30 + duration-ticks: 60 + power: 2 + description: + - '&8- &dSpeed&7: makes you speedy!' + jump-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dJump Boost' + potion-effect: JUMP + cooldown-seconds: 30 + duration-ticks: 50 + power: 0 + description: + - '&8- &dJump Boost&7: makes you jump higher!' + small-haste: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dHaste' + potion-effect: FAST_DIGGING + cooldown-seconds: 30 + duration-ticks: 200 + power: 0 + description: + - '&8- &dHaste&7: makes you dig fast!' tunneling: ability-type: TUNNELING - display-name: "&cTunneling" - range: 5.0 - cooldown-seconds: 3.0 + display-name: '&cTunneling' sound: BLOCK_STONE_BREAK unbreakable-blocks: - BEDROCK description: - - "&8- &cTunneling&7: Breaks a 3x3 area of blocks in the direction you're facing." + - '&8- &cTunneling&7: Breaks a 3x3 area of blocks in the direction you''re facing.' fortune: ability-type: FORTUNE - display-name: "&6Fortune" + display-name: '&6Fortune' fortune-level: 3 description: - - "&8- &6Fortune&7: Anything you break acts like it was broken with the Fortune effect." + - '&8- &6Fortune&7: Anything you break acts like it was broken with the Fortune + effect.' lightning: ability-type: LIGHTNING - display-name: "&eLightning Strike" + display-name: '&eLightning Strike' range: 30.0 sound: ENTITY_LIGHTNING_BOLT_THUNDER - cooldown-seconds: 5.0 + cooldown-seconds: 3.0 description: - - "&8- &eLightning Strike&7: Summons a lightning bolt at the location you're looking at within a specified range." + - '&8- &eLightning Strike&7: Summons a lightning bolt at the location you''re + looking at within a specified range.' riptide: ability-type: RIPTIDE - display-name: "&bRiptide" + display-name: '&bRiptide' force-multiplier: 2.0 sound: ITEM_TRIDENT_RIPTIDE_1 cooldown-seconds: 5.0 description: - - "&8- &bRiptide Propel&7: Propels you forward like the Riptide enchantment." + - '&8- &bRiptide Propel&7: Propels you forward like the Riptide enchantment.' bonemeal: ability-type: BONEMEAL - display-name: "&aBonemeal" + display-name: '&aBonemeal' sound: ITEM_BONE_MEAL_USE description: - - "&8- &aBonemeal Effect&7: Right-click to apply bonemeal to applicable blocks." + - '&8- &aBonemeal Effect&7: Right-click to apply bonemeal to applicable blocks.' rainstorm: ability-type: RAINSTORM - display-name: "&9Summon Rainstorm" + display-name: '&9Summon Rainstorm' duration-seconds: 60.0 sound: ENTITY_LIGHTNING_BOLT_THUNDER cooldown-seconds: 120.0 description: - - "&8- &9Summon Rainstorm&7: Summons a rainstorm for a specified duration." - - - - - - - + - '&8- &9Summon Rainstorm&7: Summons a rainstorm for a specified duration.' + haste-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cHaste' + potion-effect: FAST_DIGGING + power: 1 + description: + - '&8- &4Haste II&7: makes you dig fast.' diff --git a/src/main/resources/rings.yml b/src/main/resources/rings.yml index 787f467..0da73ea 100644 --- a/src/main/resources/rings.yml +++ b/src/main/resources/rings.yml @@ -1,56 +1,235 @@ version: 1.0 -# unique cool rings that are lore accurate here. +# ---------------------------------------------------------------------------------------- +# LOTRings by CoreStone +# For help, bug reports, or feature requests my discord is: CoreStone#4179. +# ---------------------------------------------------------------------------------------- +# +# You can add rings using the existing ones as examples. You can add any abilities listed in abilities.yml. +# You can add abilities in abilities.yml using the exact format for the ability type. There are many examples there. +# use /lotrgetring to get a ring. +# use /lotrreload to reload the plugin. +# rings: one-ring: display-name: '&4One Ring' custom-model-data: 10 item: GOLD_NUGGET lore: - - '&ajust some lore here' - - 'abilities:' + - '&0One Ring to Rule Them All, One Ring to find them,' + - '&0One Ring to bring them all, and in the darkness bind them.' + - '&4abilities:' - '%ability-data%' abilities: - disabled - fireball - - fire-aspect-1 - extra-hearts - large-pushback - large-boost - 5-extra-hearts - slowness-and-wither + - resistance-2 + - regeneration-1 + - strength-1 narya: - display-name: '&cNenya' - custom-model-data: 12 + display-name: '&cNarya' + custom-model-data: 13 item: IRON_NUGGET lore: - - freaking lore + - '&4The Elven Ring of Fire' - '%ability-data%' abilities: - disabled - fireball - - strength-1 + - resistance-1 + - small-fireball-burst + - regeneration-1 + - fire-aspect-1 + - fire-res + - bonemeal men-ring: - display-name: '&fRing of Man' + display-name: '&7Ring of Man' custom-model-data: 16 item: IRON_NUGGET lore: - - '&blore' + - '&bAn Ancient Ring of Man' - '%ability-data%' abilities: - disabled - invisibility - dwarven-ring: - display-name: '&3Dwarven Ring' - custom-model-data: 2 + - fear-of-nazgul + - regeneration-1 + - resistance-1 + - lifesteal-heal + lesser-ring: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-pushback + - small-boost + nenya: + display-name: '&9Nenya' + custom-model-data: 14 item: IRON_NUGGET lore: - - "&blore" + - '&fThe Elven Ring of Water' - '%ability-data%' abilities: - disabled - - tunneling - - fortune - - lightning + - regeneration-1 + - resistance-1 + - water-breathing + - water-breathing-others + - dolphins-grace - riptide - - bonemeal - rainstorm + - lightning + - bonemeal + vilya: + display-name: '&fVilya' + custom-model-data: 15 + item: IRON_NUGGET + lore: + - '&fThe Elven Ring of Air' + - '%ability-data%' + abilities: + - disabled + - regeneration-1 + - Levitating-others + - medium-boost + - medium-pushback + - resistance-1 + - slow-falling + - bonemeal + lesser-ring2: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball-burst + - small-boost + - water-breathing + lesser-ring3: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball + - regeneration-1 + lesser-ring4: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball-burst + - small-boost + - regeneration-1 + - small-fireball + lesser-ring5: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball + lesser-ring6: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - regeneration-1 + lesser-ring7: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - small-boost + - small-boost + lesser-ring8: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - slow-falling + - small-extra-hearts + - small-boost + lesser-ring9: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - small-fireball-burst + lesser-ring10: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-speed-boost + - small-fireball + - jump-boost + lesser-ring11: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-haste + - fire-res + - small-boost + dwarven-ring: + display-name: '&6Dwarven Ring' + custom-model-data: 12 + item: IRON_NUGGET + lore: + - '&fA Dwarven Ring' + - '%ability-data%' + abilities: + - disabled + - resistance-2 + - tunneling + - haste-1 diff --git a/target/classes/abilities.yml b/target/classes/abilities.yml index 3afe668..c0ae1df 100644 --- a/target/classes/abilities.yml +++ b/target/classes/abilities.yml @@ -24,7 +24,7 @@ abilities: cooldown-seconds: 30 damage: 10 speed-multiplier: 0.3 - explosion-radius: 4 + explosion-radius: 2.0 # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. burst: 1 burst-interval-ticks: 5 @@ -41,16 +41,16 @@ abilities: display-name: '&dExtra Hearts' potion-effect: ABSORPTION cooldown-seconds: 10 - duration-ticks: 80 + duration-ticks: 150 power: 2 description: - '&8- &dExtra Hearts&7: adds more health!' large-pushback: ability-type: PUSH_BACK display-name: '&4Push Back' - range: 10.0 - horizontal-power: 2.5 - vertical-power: 1.5 + range: 12.5 + horizontal-power: 3.5 + vertical-power: 2.0 cooldown-seconds: 30 sound: ENTITY_WARDEN_SONIC_BOOM description: @@ -59,7 +59,7 @@ abilities: ability-type: BOOST display-name: '&fBoost' cooldown-seconds: 10 - magnitude: 1.5 + magnitude: 2.0 sound: ENTITY_ENDER_DRAGON_FLAP description: - '&8- &fBoost&7: an extra umf (double jump).' @@ -90,56 +90,272 @@ abilities: duration-seconds: 30 description: - '&8- &fInvisibility&7: makes you completely invisible, even armor.' + regeneration-1: + ability-type: HELD_POTION_EFFECT + display-name: '®eneration' + potion-effect: REGENERATION + power: 0 + description: + - '&8- &4Regeneration I&7: gives regeneration.' + resistance-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cresistance' + potion-effect: DAMAGE_RESISTANCE + power: 0 + description: + - '&8- &4Resistance I&7: gives resistance.' + health-boost-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cHealth Boost' + potion-effect: HEALTH_BOOST + power: 0 + description: + - '&8- &4Health boost I&7: gives more hearts.' + small-pushback: + ability-type: PUSH_BACK + display-name: '&4Small Push Back' + range: 5 + horizontal-power: 1.5 + vertical-power: 1.0 + cooldown-seconds: 30 + sound: ENTITY_ARMOR_STAND_BREAK + description: + - '&8- &4Small Push Back&7: knocks entities back.' + small-fireball: + ability-type: FIREBALL + display-name: '&6Small Fireball' + # Fireball type can be NORMAL, LARGE, or SMALL + fireball-type: SMALL + fire: true + cooldown-seconds: 30 + damage: 5 + speed-multiplier: 0.3 + explosion-radius: 2 + # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. + burst: 1 + burst-interval-ticks: 5 + description: + - '&8- &6Small Fireball&7: Shoots a small fireball.' + small-fireball-burst: + ability-type: FIREBALL + display-name: '&6Small Fireball Burst' + # Fireball type can be NORMAL, LARGE, or SMALL + fireball-type: SMALL + fire: true + cooldown-seconds: 30 + damage: 7 + speed-multiplier: 0.3 + explosion-radius: 0 + # Burst sets the amount of fireballs shot, interval ticks sets the time between shots. + burst: 3 + burst-interval-ticks: 5 + description: + - '&8- &6Small Fireball Burst&7: Shoots a small burst of 3 fireballs.' + small-boost: + ability-type: BOOST + display-name: '&fSmall Boost' + cooldown-seconds: 20 + magnitude: 1.0 + sound: ENTITY_BAT_TAKEOFF + description: + - '&8- &fSmall Boost&7: an extra umf (double jump).' + fear-of-nazgul: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Wither' + cooldown-seconds: 60 + range: 10 + power: 0 + duration-ticks: 120 + sound: ENTITY_WITHER_SPAWN + effects: + - BLINDNESS + - WITHER + - SLOW + description: + - '&8- &7Fear of the Nazgul: gives nearby players withering, blindness, and slowness.' + lifesteal-heal: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dHealing' + potion-effect: HEAL + cooldown-seconds: 60 + duration-ticks: 1 + power: 0 + description: + - '&8- &dHealing&7: adds more health!' + Levitating-others: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Levitate others' + cooldown-seconds: 60 + range: 7 + power: 0 + duration-ticks: 100 + sound: BLOCK_SHULKER_BOX_OPEN + effects: + - LEVITATION + - SLOW_FALLING + water-breathing: + ability-type: HELD_POTION_EFFECT + display-name: '&Water Breathing' + potion-effect: WATER_BREATHING + power: 0 + description: + - '&8- &4Water Breathing I&7: lets you breath underwater.' + medium-pushback: + ability-type: PUSH_BACK + display-name: '&4Push Back' + range: 7.5 + horizontal-power: 2.0 + vertical-power: 2.0 + cooldown-seconds: 45 + sound: ENTITY_WARDEN_SONIC_BOOM + description: + - '&8- &4Push Back&7: knocks entities back.' + medium-boost: + ability-type: BOOST + display-name: '&fBoost' + cooldown-seconds: 30 + magnitude: 1.25 + sound: ENTITY_ENDER_DRAGON_FLAP + description: + - '&8- &fBoost&7: an extra umf (double jump).' + water-breathing-others: + ability-type: EFFECT_NEARBY_ENTITIES + display-name: '&7Enhanced Swimming' + cooldown-seconds: 60 + range: 10 + power: 0 + duration-ticks: 600 + sound: ENTITY_DOLPHIN_SWIM + effects: + - DOLPHINS_GRACE + - WATER_BREATHING + description: + - '&8- &7Enhanced Swimming: gives nearby players Dolphins Grace and Water Breathing.' + dolphins-grace: + ability-type: HELD_POTION_EFFECT + display-name: '&Dolphins Grace' + potion-effect: DOLPHINS_GRACE + power: 0 + description: + - '&8- &4Dolphins Grace: Lets you swim fast' + resistance-2: + ability-type: HELD_POTION_EFFECT + display-name: '&cresistance' + potion-effect: DAMAGE_RESISTANCE + power: 1 + description: + - '&8- &4Resistance II&7: gives resistance II.' + small-extra-hearts: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dExtra Hearts' + potion-effect: ABSORPTION + cooldown-seconds: 30 + duration-ticks: 100 + power: 1 + description: + - '&8- &dExtra Hearts&7: adds more health!' + slow-falling: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSlow Falling' + potion-effect: SLOW_FALLING + cooldown-seconds: 30 + duration-ticks: 80 + power: 1 + description: + - '&8- &dSlow Falling&7: adds slow falling!' + fire-res: + ability-type: HELD_POTION_EFFECT + display-name: '&cFire Resistance' + potion-effect: FIRE_RESISTANCE + power: 1 + description: + - '&8- &4Fire Resistance &7: gives fire resistance.' + small-speed-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSpeed' + potion-effect: SPEED + cooldown-seconds: 20 + duration-ticks: 60 + power: 1 + description: + - '&8- &dSpeed&7: makes you speedy!' + large-speed-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dSpeed' + potion-effect: SPEED + cooldown-seconds: 30 + duration-ticks: 60 + power: 2 + description: + - '&8- &dSpeed&7: makes you speedy!' + jump-boost: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dJump Boost' + potion-effect: JUMP + cooldown-seconds: 30 + duration-ticks: 50 + power: 0 + description: + - '&8- &dJump Boost&7: makes you jump higher!' + small-haste: + ability-type: POTION_TOGGLE_EFFECT + display-name: '&dHaste' + potion-effect: FAST_DIGGING + cooldown-seconds: 30 + duration-ticks: 200 + power: 0 + description: + - '&8- &dHaste&7: makes you dig fast!' tunneling: ability-type: TUNNELING - display-name: "&cTunneling" - range: 5.0 - cooldown-seconds: 3.0 + display-name: '&cTunneling' sound: BLOCK_STONE_BREAK unbreakable-blocks: - BEDROCK description: - - "&8- &cTunneling&7: Breaks a 3x3 area of blocks in the direction you're facing." + - '&8- &cTunneling&7: Breaks a 3x3 area of blocks in the direction you''re facing.' fortune: ability-type: FORTUNE - display-name: "&6Fortune" + display-name: '&6Fortune' fortune-level: 3 description: - - "&8- &6Fortune&7: Anything you break acts like it was broken with the Fortune effect." + - '&8- &6Fortune&7: Anything you break acts like it was broken with the Fortune + effect.' lightning: ability-type: LIGHTNING - display-name: "&eLightning Strike" + display-name: '&eLightning Strike' range: 30.0 sound: ENTITY_LIGHTNING_BOLT_THUNDER - cooldown-seconds: 5.0 + cooldown-seconds: 3.0 description: - - "&8- &eLightning Strike&7: Summons a lightning bolt at the location you're looking at within a specified range." + - '&8- &eLightning Strike&7: Summons a lightning bolt at the location you''re + looking at within a specified range.' riptide: ability-type: RIPTIDE - display-name: "&bRiptide" + display-name: '&bRiptide' force-multiplier: 2.0 sound: ITEM_TRIDENT_RIPTIDE_1 cooldown-seconds: 5.0 description: - - "&8- &bRiptide Propel&7: Propels you forward like the Riptide enchantment." + - '&8- &bRiptide Propel&7: Propels you forward like the Riptide enchantment.' bonemeal: ability-type: BONEMEAL - display-name: "&aBonemeal" + display-name: '&aBonemeal' sound: ITEM_BONE_MEAL_USE description: - - "&8- &aBonemeal Effect&7: Right-click to apply bonemeal to applicable blocks." + - '&8- &aBonemeal Effect&7: Right-click to apply bonemeal to applicable blocks.' rainstorm: ability-type: RAINSTORM - display-name: "&9Summon Rainstorm" + display-name: '&9Summon Rainstorm' duration-seconds: 60.0 sound: ENTITY_LIGHTNING_BOLT_THUNDER cooldown-seconds: 120.0 description: - - "&8- &9Summon Rainstorm&7: Summons a rainstorm for a specified duration." - - - - - - - + - '&8- &9Summon Rainstorm&7: Summons a rainstorm for a specified duration.' + haste-1: + ability-type: HELD_POTION_EFFECT + display-name: '&cHaste' + potion-effect: FAST_DIGGING + power: 1 + description: + - '&8- &4Haste II&7: makes you dig fast.' diff --git a/target/classes/dev/corestone/lotrings/abilities/TunnelingAbility.class b/target/classes/dev/corestone/lotrings/abilities/TunnelingAbility.class index f0e698b09346d6bd4155d63b8e05dfee8c90c0c6..08a7e632694354b74e143e8db06348a078e9e878 100644 GIT binary patch literal 6257 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 diff --git a/target/classes/rings.yml b/target/classes/rings.yml index 787f467..0da73ea 100644 --- a/target/classes/rings.yml +++ b/target/classes/rings.yml @@ -1,56 +1,235 @@ version: 1.0 -# unique cool rings that are lore accurate here. +# ---------------------------------------------------------------------------------------- +# LOTRings by CoreStone +# For help, bug reports, or feature requests my discord is: CoreStone#4179. +# ---------------------------------------------------------------------------------------- +# +# You can add rings using the existing ones as examples. You can add any abilities listed in abilities.yml. +# You can add abilities in abilities.yml using the exact format for the ability type. There are many examples there. +# use /lotrgetring to get a ring. +# use /lotrreload to reload the plugin. +# rings: one-ring: display-name: '&4One Ring' custom-model-data: 10 item: GOLD_NUGGET lore: - - '&ajust some lore here' - - 'abilities:' + - '&0One Ring to Rule Them All, One Ring to find them,' + - '&0One Ring to bring them all, and in the darkness bind them.' + - '&4abilities:' - '%ability-data%' abilities: - disabled - fireball - - fire-aspect-1 - extra-hearts - large-pushback - large-boost - 5-extra-hearts - slowness-and-wither + - resistance-2 + - regeneration-1 + - strength-1 narya: - display-name: '&cNenya' - custom-model-data: 12 + display-name: '&cNarya' + custom-model-data: 13 item: IRON_NUGGET lore: - - freaking lore + - '&4The Elven Ring of Fire' - '%ability-data%' abilities: - disabled - fireball - - strength-1 + - resistance-1 + - small-fireball-burst + - regeneration-1 + - fire-aspect-1 + - fire-res + - bonemeal men-ring: - display-name: '&fRing of Man' + display-name: '&7Ring of Man' custom-model-data: 16 item: IRON_NUGGET lore: - - '&blore' + - '&bAn Ancient Ring of Man' - '%ability-data%' abilities: - disabled - invisibility - dwarven-ring: - display-name: '&3Dwarven Ring' - custom-model-data: 2 + - fear-of-nazgul + - regeneration-1 + - resistance-1 + - lifesteal-heal + lesser-ring: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-pushback + - small-boost + nenya: + display-name: '&9Nenya' + custom-model-data: 14 item: IRON_NUGGET lore: - - "&blore" + - '&fThe Elven Ring of Water' - '%ability-data%' abilities: - disabled - - tunneling - - fortune - - lightning + - regeneration-1 + - resistance-1 + - water-breathing + - water-breathing-others + - dolphins-grace - riptide - - bonemeal - rainstorm + - lightning + - bonemeal + vilya: + display-name: '&fVilya' + custom-model-data: 15 + item: IRON_NUGGET + lore: + - '&fThe Elven Ring of Air' + - '%ability-data%' + abilities: + - disabled + - regeneration-1 + - Levitating-others + - medium-boost + - medium-pushback + - resistance-1 + - slow-falling + - bonemeal + lesser-ring2: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball-burst + - small-boost + - water-breathing + lesser-ring3: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball + - regeneration-1 + lesser-ring4: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball-burst + - small-boost + - regeneration-1 + - small-fireball + lesser-ring5: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-fireball + lesser-ring6: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - regeneration-1 + lesser-ring7: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - small-boost + - small-boost + lesser-ring8: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - slow-falling + - small-extra-hearts + - small-boost + lesser-ring9: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-boost + - small-fireball-burst + lesser-ring10: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-speed-boost + - small-fireball + - jump-boost + lesser-ring11: + display-name: '&fLesser Ring' + custom-model-data: 10 + item: GOLD_NUGGET + lore: + - '&bA Lesser Ring' + - '%ability-data%' + abilities: + - disabled + - small-haste + - fire-res + - small-boost + dwarven-ring: + display-name: '&6Dwarven Ring' + custom-model-data: 12 + item: IRON_NUGGET + lore: + - '&fA Dwarven Ring' + - '%ability-data%' + abilities: + - disabled + - resistance-2 + - tunneling + - haste-1 From 01264e96bf3cbdb34e65a2ccd2d5f4a3b846f586 Mon Sep 17 00:00:00 2001 From: rtclark Date: Mon, 29 Jul 2024 16:43:09 -0500 Subject: [PATCH 2/2] made tunneling cooler. --- .../lotrings/abilities/TunnelingAbility.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java b/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java index 8b63fdd..9537739 100644 --- a/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java +++ b/src/main/java/dev/corestone/lotrings/abilities/TunnelingAbility.java @@ -145,14 +145,14 @@ private void stupidRecursiveFunction(ArrayList blockList, Player player){ private void breakBlock(Block block, Player player){ - // Create and call a BlockBreakEvent to check if the block can be broken - //BlockBreakEvent breakEvent = new BlockBreakEvent(block, player); - //Bukkit.getPluginManager().callEvent(breakEvent); - player.breakBlock(block); - // If the event is cancelled, skip breaking the block - //if (breakEvent.isCancelled()) return; - //block.breakNaturally(); - block.getWorld().playSound(block.getLocation(), Sound.BLOCK_STONE_BREAK, 5 ,1); - block.getWorld().spawnParticle(Particle.BLOCK_CRACK, block.getLocation(), 10, block.getType().createBlockData()); + // Create and call a BlockBreakEvent to check if the block can be broken + //BlockBreakEvent breakEvent = new BlockBreakEvent(block, player); + //Bukkit.getPluginManager().callEvent(breakEvent); + player.breakBlock(block); + // If the event is cancelled, skip breaking the block + //if (breakEvent.isCancelled()) return; + //block.breakNaturally(); + block.getWorld().playSound(block.getLocation(), Sound.BLOCK_STONE_BREAK, 5 ,1); + block.getWorld().spawnParticle(Particle.BLOCK_CRACK, block.getLocation(), 10, block.getType().createBlockData()); } }