mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 17:53:00 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f1532cf96 | ||
|
|
5bbb389d9a | ||
|
|
87bd92a5b0 | ||
|
|
c94039ab45 | ||
|
|
e1dee2778d |
6
.github/workflows/maven.yml
vendored
6
.github/workflows/maven.yml
vendored
@@ -29,11 +29,11 @@ jobs:
|
||||
|
||||
# 1. Check out the current working tree
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# 2. Setup Java 17 JDK (Adopt)
|
||||
- name: Java 17 setup
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-package: jdk
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
# 3. Setup local Maven package cache to speed up building
|
||||
- name: Cache Maven packages
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.m2
|
||||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||
|
||||
342
Changelog.txt
342
Changelog.txt
@@ -1,329 +1,3 @@
|
||||
Version 2.2.046
|
||||
Added Spears combat skill
|
||||
Added Spears to repair.vanilla.yml and salvage.vanilla.yml (see notes)
|
||||
Added various permissions related to Spears
|
||||
Added /spears skill command
|
||||
Added Nautilus to taming XP in experience.yml
|
||||
Added Camel_Husk to taming XP in experience.yml
|
||||
Added Camel_Husk to combat XP in experience.yml
|
||||
Added Parched to combat XP in experience.yml
|
||||
Fixed bug where converting from SQL to FlatFile would not copy data for tridents, crossbows, maces, or spears
|
||||
(Codebase) Added docker-based unit tests for SQL databases (see notes)
|
||||
(Codebase) Large refactor to both SQLDatabaseManager and FlatFileDatabaseManager
|
||||
(Codebase) Database related errors are now more descriptive and have had their logging improved
|
||||
|
||||
NOTES:
|
||||
This update had a lot of changes behind the scenes, please report any bugs you find to our GitHub issues page!
|
||||
You will need to manually update repair.vanilla.yml and salvage.vanilla.yml to get support for Spears, or...
|
||||
If you want to update salvage/repair configs the easy way, you simply can delete these config files to have mcMMO regenerate them with the new entries.
|
||||
If you don't want to delete them, you can find the default values for these config files in the defaults folder at plugins\mcMMO\defaults after running this mcMMO update at least once.
|
||||
You can use this default file to copy paste if you please.
|
||||
Docker is ONLY required for developers compiling mcMMO from source code and ONLY for running SQL-related unit tests.
|
||||
mcMMO itself does NOT require Docker to run, and servers using prebuilt releases are completely unaffected.
|
||||
New SQL database unit tests use Testcontainers to spin up temporary MySQL/MariaDB instances for testing purposes.
|
||||
These containers are created at test time and are never used at runtime.
|
||||
If you compile mcMMO locally and do not have Docker installed, SQL-related unit tests may fail.
|
||||
In this case, you can safely compile with -DskipTests to skip unit tests entirely.
|
||||
Skipping tests has no impact on mcMMO functionality when running on a server.
|
||||
Known Issues:
|
||||
I ran into an issue where having a spear in the offhand while the main hand is empty causes attacks to be incorrectly classified as unarmed. This allows unarmed abilities to apply to spear damage. As a temporary measure, I’ve disabled unarmed skills from applying to combat when a spear is equipped in the offhand while I investigate a more robust solution.
|
||||
|
||||
Version 2.2.045
|
||||
Green Thumb now replants some crops it was failing to replant before (see notes)
|
||||
Green Thumb now replants harvested plants faster
|
||||
Fixed an error that could happen when replanting crops with Green Thumb
|
||||
Fixed a bug where salvage.vanilla.yml was readding deleted entries on server restart
|
||||
Fixed a bug where repair.vanilla.yml was readding deleted entries on server restart
|
||||
Added missing permission node 'mcmmo.ability.repair.copperrepair'
|
||||
Added missing permission node 'mcmmo.ability.salvage.coppersalvage'
|
||||
|
||||
NOTES:
|
||||
The delay from a plant being replanted from Green Thumb is intentional, and while looking into bugs it seemed maybe a tad slow, so I sped it up a bit.
|
||||
Green Thumb still won't replant some stuff such as sugar canes, cacti, those are handled a bit differently, but I could add support for it in an upcoming patch if requested.
|
||||
|
||||
Version 2.2.044
|
||||
Fixed copper armor and tools not working with Repair or Salvage
|
||||
|
||||
Version 2.2.043
|
||||
Added support for the new copper tools and armor added in Minecraft 1.21.9
|
||||
Added many missing buttons, trapdoors, doors, fence gates, etc to the ability/tool blacklists (see notes)
|
||||
Added copper tools and armor to repair.vanilla.yml (see notes)
|
||||
Added copper tools and armor to salvage.vanilla.yml (see notes)
|
||||
Added copper tools and armor to fishing_treasures.yml (see notes)
|
||||
Added Copper_Nugget to treasures.yml (see notes)
|
||||
Added Copper_Nugget to experience.yml for Smelting XP
|
||||
Added Copper_Golem to experience.yml for Combat XP
|
||||
Fixed mcMMO custom potions not having their name set correctly (see notes)
|
||||
Fixed ExploitFix.PreventArmorStandInteraction in experience.yml not being respected
|
||||
Added ExploitFix.PreventMannequinInteraction to experience.yml to prevent mannequins from granting XP or other effects
|
||||
Fixed bug where Armor Stands would get renamed to heart symbols upon breaking them (see notes)
|
||||
Tweaked potions loaded msg during mcMMO startup to not include potions requiring newer game versions from being included in the total.
|
||||
|
||||
NOTES:
|
||||
You don't need to update your experience.yml, that one updates automatically when you run mcMMO after an update.
|
||||
You will need to manually update the following files manually repair.vanilla.yml, salvage.vanilla.yml, treasures.yml, and fishing_treasures.yml files to get support for copper tools and armor.
|
||||
You can find the default config files in the defaults folder at plugins\mcMMO\defaults after running this mcMMO update at least once.
|
||||
You can use this default file to copy paste if you please
|
||||
OR if you haven't customizes these config files, simply delete them to have mcMMO regenerate them with the new entries.
|
||||
mcMMO has an internal blacklist of blocks that abilities and tools won't activate or "ready" on, pretty much anything that is interactable should go on this list, and I performed an audit and there were quite a few missing entries, so I've added them in this update, what this means is you won't click on a button and have it ready your tool anymore, as it should have been doing.
|
||||
Mannequins are treated the same way armor stands are treated, the default behavior is mcMMO won't process on them unless you turn on the setting under ExploitFix in experience.yml, in addition to this their default XP is set to 0.0
|
||||
mcMMO had a setting 'ExploitFix.PreventArmorStandInteraction' to allow mcMMO to process abilities and XP on armor stands, but it was never hooked up! I fixed that mistake in this update.
|
||||
The fix for potion names will only apply to newly created potions.
|
||||
Armor stands that had already been renamed from the heart symbol bug will keep their names, but the bug shouldn't happen anymore
|
||||
|
||||
Version 2.2.042
|
||||
mcMMO now listens to BlockDropItemEvent at LOW priority instead of HIGHEST
|
||||
Bonus drops from mcMMO now simply modify quantity in BlockDropItemEvent instead of spawning new ItemStacks.
|
||||
Added McMMOModifyBlockDropItemEvent event, this event is called when mcMMO modifies the quantity of an ItemStack during a BlockDropItemEvent, it is modifiable and cancellable.
|
||||
You can now define custom sounds to be played in sounds.yml (Thank you JeBobs, see notes)
|
||||
Added a cap to how much Blast Mining PVP damage can do to other players
|
||||
|
||||
Notes:
|
||||
The new sounds.yml config file allows you to override the sounds played by mcMMO.
|
||||
Simply define the ID of the sound you want to play for each sound.
|
||||
For example, add an entry for Sounds.TOOL_READY.CustomSoundId into sounds.yml to override the sound played when a tool is "readied".
|
||||
If you are on older versions (1.18, 1.19, etc), instead of registering an ID, you specify the Sound enum.
|
||||
Those who are on newer versions, can define the ID of any sound registered with Paper/Spigot, this allows you to even play custom sounds so long as they are properly loaded on the server.
|
||||
Vanilla minecraft sounds tend to have IDs like "minecraft:ui.toast.challenge_complete", you can google what these keys are.
|
||||
|
||||
Version 2.2.041
|
||||
Fixed Berserk failing to crack blocks
|
||||
Added 'Skills.Unarmed.Block_Cracker.Allow_Block_Cracker' to config.yml
|
||||
Removed 'SmoothBrick_To_CrackedBrick', it has been replaced by `Allow_Block_Cracker`
|
||||
Block Cracker can now crack deepslate bricks, deepslate tiles, polished blackstone bricks, and netherbricks
|
||||
Optimizations for Hoppers & Alchemy (thanks Warriorrrr)
|
||||
Fixed buckets being consumed by furnaces (thanks RunqRun)
|
||||
Fixed Repair stripping unsafe enchantments from items (thanks Techirion)
|
||||
Fixed IronGolem causing cast exceptions in rare cases (thanks Techirion)
|
||||
|
||||
Version 2.2.040
|
||||
Fixed hover component and action bar messages not working for 1.21.6 and 1.21.7
|
||||
Fixed bug where entries of mctop could be duplicated when using FlatFile
|
||||
Fixed bug where a party leader could leave a party and the party would be left without a party leader
|
||||
Fixed a bug where EcoEnchants and similar plugins could cause an infinite loop within mcMMO during TreeFeller and other abilities
|
||||
Added 'Happy_Ghast' to experience.yml for combat XP
|
||||
Added 'Ghastling' to experience.yml for combat XP
|
||||
Updated Japanese (ja_JP) translation (Thanks ryota-abe)
|
||||
Updated Simplified Chinese (zh_CN) locale (Thanks GhostDC)
|
||||
|
||||
Version 2.2.039
|
||||
Added StackOverflow safeguards for abilities dealing damage in mcMMO
|
||||
Improved compatibility with MythicMobs/ModelEngine
|
||||
Improved compatibility with AdvancedEnchantments
|
||||
|
||||
Version 2.2.038
|
||||
Fix potion match failing for non-english locales
|
||||
FoliaLib Performance improvements (thanks SirSalad)
|
||||
Fixed situations where Rupture could never end which affected server performance
|
||||
|
||||
Version 2.2.037
|
||||
Fixed bug where Alchemy was not matching potions correctly and producing incorrect results (Thanks TheBentoBox)
|
||||
|
||||
Version 2.2.036
|
||||
Fixed a bug where Chimaera Wing could cause an exception when used
|
||||
Fixed bug where Mob Spawners could drop in Blast Mining (thanks TomBock)
|
||||
Fixed Spectral Arrows not granting XP for Archery or Crossbows (thanks broccolai)
|
||||
Fixed bug where Trickshot arrows would lose their potion or custom effects
|
||||
Added locale strings for /mcmmo help command (thanks Griffeng)
|
||||
|
||||
Version 2.2.035
|
||||
Support for new additions from Minecraft 1.21.5
|
||||
Fixed bug where Blast Mining would not drop deep slate
|
||||
Swords subskill Stab is now configurable in advanced.yml
|
||||
Added 'Skills.Swords.Stab.Base_Damage' to advanced.yml
|
||||
Added 'Skills.Swords.Stab.Per_Rank_Multiplier' to advanced.yml
|
||||
Added 'Bush' to experience.yml for Herbalism
|
||||
Added 'Bush' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Cactus_Flower' to experience.yml for Herbalism
|
||||
Added 'Cactus_Flower' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Firefly_Bush' to experience.yml for Herbalism
|
||||
Added 'Firefly_Bush' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Leaf_Litter' to experience.yml for Herbalism
|
||||
Added 'Leaf_Litter' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Short_Dry_Grass' to experience.yml for Herbalism
|
||||
Added 'Short_Dry_Grass' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Tall_Dry_Grass' to experience.yml for Herbalism
|
||||
Added 'Tall_Dry_Grass' to config.yml Bonus Drops for Herbalism
|
||||
Added 'Wildflowers' to experience.yml for Herbalism
|
||||
Added 'Wildflowers' to config.yml Bonus Drops for Herbalism
|
||||
|
||||
|
||||
NOTES:
|
||||
The mob variants will use the "base" mob definition for values for now, such a a warm chicken using chicken values from experience.yml
|
||||
The new config settings will be added automatically to advanced.yml
|
||||
|
||||
Version 2.2.034
|
||||
Fixed bug where mcMMO would drop items in such a way that they get stuck in an adjacent block and float to the surface
|
||||
Fixed a rare edge case where null entities during chunk unload would cause a NullPointerException and potentially lead to server instability
|
||||
Fixed bug where arrow would award archery xp after a crossbow trickshot bounce
|
||||
|
||||
Version 2.2.033
|
||||
Added Breeze_Rod entries to potions.yml for Awkward potion (see notes)
|
||||
Added missing TURTLE_HELMET entry to potions.yml for Tier 1 ingredients
|
||||
Added missing Wind Charging potion entries to potions.yml (see notes)
|
||||
Fixed bug where mcMMO would attempt to load potions that required ingredients or effects from newer versions of Minecraft
|
||||
mcMMO is a little more specific during start up of how many potions it loaded, it will now report on incompatible potions from being on an older game version.
|
||||
|
||||
NOTES:
|
||||
You will have to update your potions.yml manually to receive these changes, it is highly recommended that if you haven't customized this file that you simply just delete it, mcMMO will generate a new one on the next start up and it will contain all the missing entries.
|
||||
If you have customized this file, you can find the "default" version of this file here on the mcMMO github repo: https://github.com/mcMMO-Dev/mcMMO/blob/master/src/main/resources/potions.yml
|
||||
You can use this file to compare it to your own and make the manual changes needed to get the new entries.
|
||||
After making the changes to potions.yml (either via deleting it or not...) mcMMO should now recognize the Wind Charging potion and the Awkward potion created from Breeze Rods
|
||||
|
||||
Version 2.2.032
|
||||
Fixed bug where Roll would throw exceptions with certain CMI interactions
|
||||
Blast Mining no longer drops infested block variants
|
||||
Reduced bonus drops on Blast Mining and randomized results (see notes)
|
||||
Added Beetroot to experience.yml for Herbalism
|
||||
Added Open_Eyeblossom to experience.yml for Herbalism
|
||||
Addeed Open_Eyeblossom to config.yml Bonus Drops for Herbalism
|
||||
Added Closed_Eyeblossom to experience.yml for Herbalism
|
||||
Addeed Closed_Eyeblossom to config.yml Bonus Drops for Herbalism
|
||||
|
||||
NOTES:
|
||||
A balance pass for Blast Mining is coming, but for now, I've reduced the total bonus drops and clamped the yield ceiling as Blast Mining is a bit too good.
|
||||
|
||||
Version 2.2.031
|
||||
Fixed potential NPE when player or blockstate is null for Inventory events on Furnaces
|
||||
Fixed bug where en_us locale was being set system-wide (thanks BlvckBytes)
|
||||
Fixed bug where Decimal format would throw exception on non en_us systems (thanks BlvckBytes)
|
||||
(API) Added McMMOPlayerTameEntityEvent event (thanks Warriorrr)
|
||||
|
||||
Version 2.2.030
|
||||
Fixed bug where rupture task could cause an exception (Thanks Wariorrrr)
|
||||
Fixed bug where Smelting permission was needed for Alchemy XP gain
|
||||
Fixed material based salvage permissions not functioning (Thanks Momshroom)
|
||||
|
||||
Version 2.2.029
|
||||
Fixed bug where block checks at world height would throw IndexOutOfBounds exceptions
|
||||
Added Eyeblossom to experience.yml for Herbalism xp
|
||||
Added Bonus_Drops.Herbalism.Eyeblossom to config.yml to enable double/triple drops for Eyeblossom
|
||||
Added Pale_Hanging_Moss to experience.yml for Herbalism xp
|
||||
Added Pale_Moss_Block to experience.yml for Herbalism xp
|
||||
Added Pale_Moss_Carpet to experience.yml for Herbalism xp
|
||||
Added Pale_Oak_Log to experience.yml for Woodcutting xp
|
||||
Added Pale_Oak_Wood to experience.yml for Woodcutting xp
|
||||
Added Stripped_Pale_Oak_Log to experience.yml for Woodcutting xp
|
||||
Added Stripped_Pale_Oak_Wood to experience.yml for Woodcutting xp
|
||||
Added Bonus_Drops.Woodcutting.Pale_Oak_Wood to config.yml to enable double/triple drops for Pale Oak Wood
|
||||
Added Bonus_Drops.Woodcutting.Pale_Oak_Log to config.yml to enable double/triple drops for Pale Oak Log
|
||||
Temporarily disabled the party item share functionality until it is fixed or potentially removed (see notes)
|
||||
|
||||
Notes:
|
||||
This update adds support for the new stuff added by the "The Garden Awakens" Minecraft Update
|
||||
I noticed some issues with the party item share feature, so I've temporarily disabled it until those issues are addressed.
|
||||
I'm not even sure people like or dislike this feature, I'm personally not a fan.. I'd like to hear what you guys think.
|
||||
|
||||
Version 2.2.028
|
||||
Fixed stack overflow during ChunkUnloadEvent
|
||||
Fixed a bug where you had to wait to summon another COTW summon if one or more of them had died or otherwise expired before their time limit
|
||||
McMMOItemSpawnEvent#setItemStack being ignored (thanks galacticwarrior9)
|
||||
(API) Added McMMOPlayerMasterAnglerEvent (thanks bobcat4848)
|
||||
|
||||
Version 2.2.027
|
||||
Added Tridents / Crossbows to salvage.vanilla.yml config (see notes)
|
||||
Fixed an issue where Folia could have all of its threads lock up effectively killing the server
|
||||
Fixed concurrency issue with Folia regarding locale strings
|
||||
Fixed concurrency issue with Folia regarding COTW summons
|
||||
Updated 'Salvage.SubSkill.ScrapCollector.Stat' to no longer mention luck being involved
|
||||
The amount of materials from salvage are no longer luck-based, you will get a deterministic amount based on damage to the item.
|
||||
Fixed Ricocheted arrows losing some data after a ricochet
|
||||
Changed color of locale strings for 'Repair.Listener.Anvil' to be easier to read
|
||||
Changed color of locale strings for 'Salvage.Listener.Anvil' to be easier to read
|
||||
|
||||
NOTES:
|
||||
Tridents and Crossbows are now in the salvage.vanilla.yml config, you will need to either delete this config file to regenerate it or add the entries manually.
|
||||
You can check the default config file after running this mcMMO update at least once in the defaults folder at plugins\mcMMO\defaults to see what you would need to add if you want to take the manual approach
|
||||
|
||||
Version 2.2.026
|
||||
Fixed NullPointerException on ChunkUnloadEvent
|
||||
|
||||
Version 2.2.025
|
||||
Fixed NullPointerException spam when processing XP for child skills
|
||||
|
||||
Version 2.2.024
|
||||
Fixed errors when Fishing or using Shake ability
|
||||
Significant optimizations made to reading new chunks for mcMMO
|
||||
Significant optimizations to most block interactions in mcMMO code
|
||||
Fixed a horrendous edge case where Tree Feller could cause a lot of lag
|
||||
|
||||
Notes:
|
||||
Part of this update focused on optimization, there's improvements of around 30% in CPU time for most code involving block interactions in mcMMO, which happens to be most code in mcMMO.
|
||||
One of the optimizations made in this update removes an edge case where Tree Feller could cause a lot of lag, but the optimizations really are across the board in regards to any abilities that interact with blocks.
|
||||
|
||||
Version 2.2.023
|
||||
Compatibility with Minecraft 1.21.3
|
||||
(API) add causingPlayer to McMMOReplaceVanillaTreasureEvent and update Fish Event to use it (thanks bobcat4848 and Jacob Cuomo)
|
||||
|
||||
Notes:
|
||||
Tested this version of mcMMO against 1.21.3, 1.21.1, and 1.19.4, which should be full coverage for all the changes, but it is possible you will run into things I didn't catch.
|
||||
Please report any errors or bugs to GitHub if you find them.
|
||||
|
||||
Version 2.2.022
|
||||
Fixed a bug where Roll was always reducing damage (thanks Ineusia)
|
||||
Fix COTW errors on older versions (thanks Warriorrrr)
|
||||
Fixed slimes spawning from slime division not inheriting tags. (thanks Ineusia)
|
||||
|
||||
Version 2.2.021
|
||||
Fixed issue where Roll wasn't reducing as much damage as it should have been (thanks Ineusia)
|
||||
Updated locale_es (thanks Devilcasters)
|
||||
Updated locale_lt_LT (thanks tautuxs)
|
||||
|
||||
Version 2.2.020
|
||||
(Codebase) Reworked Roll implementation (See notes)
|
||||
(Codebase) Added unit test coverage for Roll
|
||||
Fixed Alchemy error spam in mcMMO potion matching logic (see notes)
|
||||
Fixed Alchemy NPE when brewing finishes
|
||||
Fixed a bug where Roll was modifying damage unnecessarily
|
||||
Fixed blast mining trying to drop non-items (thanks IAISI)
|
||||
|
||||
NOTES:
|
||||
I'll need to rework Alchemy config logic a bit further to address some issues I've found, for now mcMMO will ignore harmless matching errors in the potion matching logic.
|
||||
The code for Roll was a bit of a mess, I've rewritten a good chunk of it and added some unit test coverage.
|
||||
I will likely put out another update for Acrobatics in general, as the code for Acrobatics is whack.
|
||||
This would be a good time to suggest changes to Acrobatics on discord.
|
||||
|
||||
Version 2.2.019
|
||||
Optimized Alchemy code (thanks MrPowerGamerBR)
|
||||
Fixed an exception that could occur when shooting entities through worlds (thanks Wariorrrr)
|
||||
Fixes to en_US locale (thanks BlockMasters617)
|
||||
Maces, Crossbows, and Tridents skill commands don't warn you that they are work in progress anymore.
|
||||
Fixed IllegalArgumentException when Rupture would trigger on an entity with illegal state
|
||||
|
||||
NOTES:
|
||||
Maces, Crossbows, and Tridents are still in development, the change to remove the message from the skill command was to reduce the visual noise.
|
||||
|
||||
Version 2.2.018
|
||||
Fixed a probability bug where certain skills would max out in chance to succeed well before they were supposed to (such as Dodge)
|
||||
Blast Mining will no longer drop mob spawners (see notes)
|
||||
(Codebase) Added more unit tests for Probability and RNG
|
||||
The Herbalism XP gained when breaking certain plants that can grow unnaturally tall vertically (bamboo, kelp) is now capped to the most it could give when naturally grown, this can be disabled in experience.yml
|
||||
Added 'ExploitFix.LimitTallPlantFarming' to experience.yml
|
||||
|
||||
NOTES:
|
||||
This probability bug was a big oopsie and showed a gap in unit test coverage, I've added that coverage and a bug like this in theory shouldn't happen again.
|
||||
In a future version I will add configuration for admins to control what blocks are not allowed to be dropped by blast mining.
|
||||
A setting has been added to disable player-created super tall plants from giving full XP, this is on by default, you can tun it off in experience.yml via 'ExploitFix.LimitTallPlantFarming'
|
||||
Version 2.2.017
|
||||
Fixed a bug with default Mace permissions (thanks SrBedrock)
|
||||
Fixed Blast Mining being almost completely broken
|
||||
Reworked Blast Mining to drop non-mining related blocks too
|
||||
Reworked Blast Mining to use your pickaxe when determining drops (will apply Silk Touch)
|
||||
Fixed shift-clicking ingredients into the brewing stand not working on older versions of Minecraft
|
||||
Added a setting in advanced.yml to ignore attack cooldowns (see notes)
|
||||
Updated zh_CN locale (thanks libook)
|
||||
Updated pt_BR locale (thanks JesusRuescas)
|
||||
Updated fr locale (thanks Ted-18)
|
||||
|
||||
NOTES:
|
||||
If Mace skills weren't working for your players before and you were scratching your head wondering why, this should fix it (thanks SrBedrock).
|
||||
Skills.General.Attack_Cooldown.Adjust_Skills_For_Attack_Cooldown is a new setting in advanced.yml that will allow you to ignore attack cooldowns for the combat skills.
|
||||
When a player spams an attack, they have a reduced amount of bonus damage from mcMMO and reduced chance for chance-on-hit subskills to activate.
|
||||
You can have mcMMO ignore this value and apply full bonus damage and full chance to proc abilities by setting this to false.
|
||||
|
||||
Version 2.2.016
|
||||
(SQL) Fixed a bug where skill cooldowns were being loaded for players incorrectly
|
||||
|
||||
Version 2.2.015
|
||||
Added Maces skill
|
||||
Added Mace to repair.vanilla.yml (see notes)
|
||||
@@ -338,7 +12,7 @@ Version 2.2.015
|
||||
While working on Maces, I noticed a bug where spamming attacks would still apply full bonus damage and full chance to proc abilities, this has been fixed.
|
||||
When you swing your weapon in Minecraft, you gain an "Attack Strength" value, which is relative to your cooldown, mcMMO was supposed to be making use of this value, but at some point in the past this was broken.
|
||||
I have fixed this and now mcMMO will use the attack strength value to determine the bonus damage and chance to proc abilities.
|
||||
For servers modifying Minecraft combat to not have this "cooldown", mcMMO should behave as you would expect, with full damage and full chance to proc abilities even when spamming attacks.
|
||||
For servers modifying Minecraft combat to not have this "cooldown", mcMMO should behave as you would expect, with full damage and full chance to proc abilities.
|
||||
|
||||
Version 2.2.014
|
||||
Fixed a bug where Luck Of The Sea was being applied for Super Breaker (and other abilities)
|
||||
@@ -2813,7 +2487,7 @@ Version 2.1.38
|
||||
Version 2.1.37
|
||||
Fixed a potential IndexOutOfBoundsException when informing a disconnected player that their Blast Mining was off CD
|
||||
Updated hu_HU locale (thanks andris)
|
||||
|
||||
|
||||
Version 2.1.36
|
||||
Updated German locale (Thanks OverCrave)
|
||||
Fixed a bug preventing Villagers from giving combat XP
|
||||
@@ -3353,7 +3027,7 @@ Version 1.5.01
|
||||
= Fixed bug where pistons would mess with the block tracking
|
||||
= Fixed bug where the Updater was running on the main thread.
|
||||
= Fixed bug when players would use /ptp without being in a party
|
||||
= Fixed bug where player didn't have a mmoPlayer object in AsyncPlayerChatEvent
|
||||
= Fixed bug where player didn't have a mcMMOPlayer object in AsyncPlayerChatEvent
|
||||
= Fixed bug where dodge would check the wrong player skill level
|
||||
= Fixed bug which causes /party teleport to stop working
|
||||
= Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException
|
||||
@@ -3801,7 +3475,7 @@ Version 1.3.13
|
||||
+ Added displaying bonus perks on skill commands
|
||||
+ Added config option to disable gaining Acrobatics XP from dodging lightning
|
||||
+ Added missing skill guides. They're finally here!
|
||||
+ Added more localization
|
||||
+ Added more localization
|
||||
+ Added a very secret easter egg
|
||||
= Fix issue with Sand/Gravel tracking
|
||||
= Fix possible NPE when using the PartyAPI to add a player to a party that doesn't exist.
|
||||
@@ -3898,7 +3572,7 @@ Version 1.3.11
|
||||
= Fixed bug where mcMMO could throw NPE errors if trees cut down were from a custom mod and had an id of 17
|
||||
= Fixed dupe bug where mcMMO would ignore other block-protection plugins for various abilities
|
||||
= Fixed NPE with hardcore mode's vampirism
|
||||
|
||||
|
||||
Version 1.3.10
|
||||
+ Added 1.3.1 compatibility
|
||||
+ Added permission node for Iron Grip ability (mcmmo.ability.unarmed.irongrip)
|
||||
@@ -4160,7 +3834,7 @@ Version 1.3.02
|
||||
Version 1.3.01
|
||||
= Fixed bug where Tree Feller had no cooldown
|
||||
= Fixed bug with activating Skull Splitter after using Tree Feller
|
||||
|
||||
|
||||
Version 1.3.00
|
||||
+ Added ability to customize drops for Excavation skill (treasures.yml)
|
||||
+ Added ability to customize drops for Fishing skill (treasures.yml)
|
||||
@@ -4224,7 +3898,7 @@ Version 1.3.00
|
||||
- Removed unused settings from config.yml (HP Regen)
|
||||
- Removed Nether Brick from Mining XP Tables
|
||||
- Removed Stone Brick from Mining XP Tables
|
||||
|
||||
|
||||
Version 1.2.12
|
||||
- Fixed issue that caused terrible MySQL performance and negative XP on levelup (Issue #134)
|
||||
- Fixed addxp command taking xprate and skill modifiers into account
|
||||
@@ -5233,7 +4907,7 @@ Version 0.5.9
|
||||
Version 0.5.8
|
||||
|
||||
Fixed bug where players inventories would dupe during combat
|
||||
|
||||
|
||||
Version 0.5.7
|
||||
|
||||
Fixed monsters instant killing players
|
||||
|
||||
43
Jenkinsfile
vendored
43
Jenkinsfile
vendored
@@ -1,43 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
tools {
|
||||
jdk 'jdk17'
|
||||
// If you configured Maven as a Jenkins tool, add:
|
||||
// maven 'Maven3'
|
||||
}
|
||||
|
||||
options {
|
||||
timestamps()
|
||||
disableConcurrentBuilds()
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'mvn -V -B clean package'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy to Nexus') {
|
||||
steps {
|
||||
configFileProvider([configFile(fileId: 'maven-settings-nexus', variable: 'MAVEN_SETTINGS')]) {
|
||||
sh 'mvn -s "$MAVEN_SETTINGS" -V -B deploy'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
archiveArtifacts artifacts: 'target/mcMMO.jar', fingerprint: true
|
||||
}
|
||||
}
|
||||
}
|
||||
22
README.md
22
README.md
@@ -1,14 +1,14 @@
|
||||
# mcMMO
|
||||
The #1 RPG Mod for Minecraft
|
||||
## The #1 RPG Mod for Minecraft
|
||||
|
||||
## Useful URLs
|
||||
Website: http://www.mcmmo.org
|
||||
## Website
|
||||
I'm working on a brand new website for mcMMO
|
||||
|
||||
You can check it out here http://www.mcmmo.org
|
||||
|
||||
Spigot Resource: https://spigot.mcmmo.org
|
||||
|
||||
Polymart Resource: https://polymart.org/product/727/mcmmo
|
||||
|
||||
Wiki: https://wiki.mcmmo.org/
|
||||
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
||||
|
||||
## API
|
||||
If you are using maven, you can add mcMMO API to your plugin by adding it to pom.xml like so...
|
||||
@@ -23,11 +23,12 @@ If you are using maven, you can add mcMMO API to your plugin by adding it to pom
|
||||
<dependency>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>put-the-version-here</version>
|
||||
<version>2.2.004</version>
|
||||
</dependency>
|
||||
```
|
||||
### Builds
|
||||
Currently, you can obtain our builds via Spigot or Polymart:
|
||||
Currently, you can obtain our builds via the Spigot or Polymart:
|
||||
|
||||
|
||||
http://spigot.mcmmo.org
|
||||
|
||||
@@ -38,6 +39,8 @@ The goal of mcMMO is to take core Minecraft game mechanics and expand them into
|
||||
|
||||
## About the Team
|
||||
In December 2018, the original author and creator of mcMMO (nossr50) returned and took over the role of project lead once again, to develop and improve mcMMO.
|
||||
#### Project Lead & Founder
|
||||
[](https://github.com/nossr50)
|
||||
|
||||
#### Current mcMMO Devs
|
||||
[](https://github.com/nossr50)
|
||||
@@ -69,7 +72,8 @@ The typical command used to build mcMMO is: `mvn clean install`
|
||||
|
||||
https://spigot.mcmmo.org for more up to date information.
|
||||
|
||||
## Downloads
|
||||
Downloads:
|
||||
|
||||
|
||||
https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
|
||||
|
||||
|
||||
439
extras/mods/1.6.x/LOTR.armor.yml
Executable file
439
extras/mods/1.6.x/LOTR.armor.yml
Executable file
@@ -0,0 +1,439 @@
|
||||
# Lord of the Rings mod config by Dragyn
|
||||
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||
#
|
||||
#
|
||||
# Settings for Boots
|
||||
###
|
||||
Boots:
|
||||
# Bronze
|
||||
X12015:
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Orc
|
||||
X12035:
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Gondorian
|
||||
X12060:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Mithril
|
||||
X12064:
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Elven
|
||||
X12088:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Warg
|
||||
X12098:
|
||||
Repairable: true
|
||||
Repair_Material: X12094
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dwarven
|
||||
X12129:
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Galven
|
||||
X12134:
|
||||
Repairable: true
|
||||
Repair_Material: X12130
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Uruk
|
||||
X12161:
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Wood Elf
|
||||
X12176:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Ancient
|
||||
X12180:
|
||||
Repairable: true
|
||||
Repair_Material: X12179
|
||||
Repair_Material_Data_Value: 3
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rohirric
|
||||
X12187:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rangers
|
||||
X12206:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dunlending
|
||||
X12210:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Morgul
|
||||
X12222:
|
||||
Repairable: true
|
||||
Repair_Material: X12217
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Chestplates
|
||||
###
|
||||
Chestplates:
|
||||
# Bronze
|
||||
X12013:
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Orc
|
||||
X12033:
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Gondorian
|
||||
X12058:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Mithril
|
||||
X12062:
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Elven
|
||||
X12086:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Warg
|
||||
X12096:
|
||||
Repairable: true
|
||||
Repair_Material: X12094
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dwarven
|
||||
X12127:
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Galven
|
||||
X12132:
|
||||
Repairable: true
|
||||
Repair_Material: X12130
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Uruk
|
||||
X12159:
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Wood Elf
|
||||
X12174:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Ancient
|
||||
X12178:
|
||||
Repairable: true
|
||||
Repair_Material: X12179
|
||||
Repair_Material_Data_Value: 3
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rohirric
|
||||
X12185:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rangers
|
||||
X12204:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dunlending
|
||||
X12208:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Morgul
|
||||
X12220:
|
||||
Repairable: true
|
||||
Repair_Material: X12217
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Helmets
|
||||
###
|
||||
Helmets:
|
||||
# Bronze
|
||||
X12012:
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Orc
|
||||
X12032:
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Gondorian
|
||||
X12057:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Mithril
|
||||
X12061:
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Elven
|
||||
X12085:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Warg
|
||||
X12095:
|
||||
Repairable: true
|
||||
Repair_Material: X12094
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dwarven
|
||||
X12126:
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Galven
|
||||
X12131:
|
||||
Repairable: true
|
||||
Repair_Material: X12130
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Uruk
|
||||
X12158:
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Wood Elf
|
||||
X12173:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Ancient
|
||||
X12177:
|
||||
Repairable: true
|
||||
Repair_Material: X12179
|
||||
Repair_Material_Data_Value: 3
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rohirric
|
||||
X12184:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rangers
|
||||
X12203:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dunlending
|
||||
X12207:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Morgul
|
||||
X12219:
|
||||
Repairable: true
|
||||
Repair_Material: X12217
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Leggings
|
||||
###
|
||||
Leggings:
|
||||
# Bronze
|
||||
X12014:
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Orc
|
||||
X12034:
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Gondorian
|
||||
X12059:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Mithril
|
||||
X12063:
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Elven
|
||||
X12087:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Warg
|
||||
X12097:
|
||||
Repairable: true
|
||||
Repair_Material: X12094
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dwarven
|
||||
X12128:
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Galven
|
||||
X12133:
|
||||
Repairable: true
|
||||
Repair_Material: X12130
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Uruk
|
||||
X12160:
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Wood Elf
|
||||
X12175:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Ancient
|
||||
X12179:
|
||||
Repairable: true
|
||||
Repair_Material: X12179
|
||||
Repair_Material_Data_Value: 3
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rohirric
|
||||
X12186:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Rangers
|
||||
X12205:
|
||||
Repairable: true
|
||||
Repair_Material: LEATHER
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Dunlending
|
||||
X12209:
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Morgul
|
||||
X12221:
|
||||
Repairable: true
|
||||
Repair_Material: X12217
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
211
extras/mods/1.6.x/LOTR.blocks.yml
Executable file
211
extras/mods/1.6.x/LOTR.blocks.yml
Executable file
@@ -0,0 +1,211 @@
|
||||
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
|
||||
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||
#
|
||||
# Settings for Custom Excavation Blocks
|
||||
###
|
||||
Excavation:
|
||||
Block_1|0:
|
||||
XP_Gain: 99
|
||||
Double_Drops_Enabled: true
|
||||
Block_2|0:
|
||||
XP_Gain: 99
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
#
|
||||
# Settings for Custom Herbalism Blocks
|
||||
###
|
||||
Herbalism:
|
||||
|
||||
# Shireheather
|
||||
X1813:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Simbelmyne
|
||||
X1805:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Asphodel
|
||||
X1895:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Bluebell
|
||||
X1867:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Clover
|
||||
X1873:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: false
|
||||
|
||||
# Dead Marsh Plant
|
||||
X1886:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: false
|
||||
|
||||
# DwarfWort
|
||||
X1902:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Elanor
|
||||
X1833:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Lettuce Crop
|
||||
X1830:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Morgul Shroom
|
||||
X1870:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Niphredil
|
||||
X1834:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Pipeweed Crop
|
||||
X1823:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
# Pipeweed Plant
|
||||
X1822:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
|
||||
# Mithril
|
||||
X1803:
|
||||
XP_Gain: 2000
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: true
|
||||
# Naurite
|
||||
X1818:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
#Glowstone Ore
|
||||
X1859:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
# Remains
|
||||
X1885:
|
||||
XP_Gain: 1800
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
# Gulduril
|
||||
X1887:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
# Quendite
|
||||
X1846:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
|
||||
# MorgulIron
|
||||
X1819:
|
||||
XP_Gain: 25
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
# Rohan Rock
|
||||
X180|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
|
||||
|
||||
#Gondor Stone
|
||||
X180|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
|
||||
# Mordor Stone
|
||||
X180|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: false
|
||||
Is_Ore: false
|
||||
|
||||
#
|
||||
# Settings for Custom Woodcutting Blocks
|
||||
###
|
||||
Woodcutting:
|
||||
# Shire Pine
|
||||
X1806|0:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Mallorn
|
||||
X1806|1:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Apple
|
||||
X1860|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Pear
|
||||
X1860|1:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Cherry
|
||||
X1860|2:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Mirkwood
|
||||
X1806|2:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Charred
|
||||
X1806|3:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Lebethron
|
||||
X1896|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
# Beech
|
||||
X1896|1:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
|
||||
#
|
||||
# Settings for Custom Ability Blocks
|
||||
# (These blocks don't trigger abilities)
|
||||
###
|
||||
Ability_Blocks:
|
||||
Block_1|0:
|
||||
Block_2|0:
|
||||
700
extras/mods/1.6.x/LOTR.tools.yml
Executable file
700
extras/mods/1.6.x/LOTR.tools.yml
Executable file
@@ -0,0 +1,700 @@
|
||||
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
|
||||
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
|
||||
|
||||
Axes:
|
||||
#DwarvenThrowingAxe
|
||||
X12146:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 451
|
||||
#UrukWarhammer
|
||||
X12156:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 391
|
||||
#Gondorian Warhammer
|
||||
X12140:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 281
|
||||
#UrukBattleaxe
|
||||
X12155:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 391
|
||||
#MithrilBattleaxe
|
||||
X12138:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2479
|
||||
#MithrilWarhamer
|
||||
X12139:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2479
|
||||
#OrcWarhammer
|
||||
X12125:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 261
|
||||
#Dwarven Warhammer
|
||||
X12120:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 451
|
||||
#DwarvenZbattleaxe
|
||||
X12119:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 451
|
||||
#BronzeAxe
|
||||
X12009:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 197
|
||||
#MithrilAxe
|
||||
X12050:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2479
|
||||
#MallornAxe
|
||||
X12075:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 121
|
||||
#Elven Axe
|
||||
X12080:
|
||||
XP_Modifer: 2
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 313
|
||||
#DwarvenAxe
|
||||
X12115:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 450
|
||||
#OrcAxe
|
||||
X12123:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 261
|
||||
#UrukAxe
|
||||
X12150:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 391
|
||||
Bows:
|
||||
#ElvenBow
|
||||
X12093:
|
||||
XP_Modifer: 2
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Durability: 485
|
||||
#mallornbow
|
||||
X12084:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 417
|
||||
#orcBow
|
||||
X12099:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 441
|
||||
#UrukCrossbow
|
||||
X12163:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 471
|
||||
#MithrilCrossbow
|
||||
X12171:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 1761
|
||||
#IronCrossbow
|
||||
X12170:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 9
|
||||
Durability: 357
|
||||
#BowofMirkwood
|
||||
X12177:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X1806
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 417
|
||||
Hoes:
|
||||
#BronzeHoe
|
||||
X12011:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 197
|
||||
#MithrilHoe
|
||||
X12052:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 2479
|
||||
#MallornHoe
|
||||
X12077:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 1
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 121
|
||||
#CopperHoe
|
||||
X26511:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X26507
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 180
|
||||
#ElvenHoe
|
||||
X12082:
|
||||
XP_Modifer: 2
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12082
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#DwarvenHoe
|
||||
X12117:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X26507
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 180
|
||||
Pickaxes:
|
||||
#MEBronzePickaxe
|
||||
X12008:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 197
|
||||
#MithrilPixkaxe
|
||||
X12049:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2479
|
||||
#MallornPickaxe
|
||||
X12074:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 121
|
||||
#ElvenPickaxe
|
||||
X12079:
|
||||
XP_Modifer: 2
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 313
|
||||
#DwarvenPickaxe
|
||||
X12114:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 451
|
||||
#UrukPickaxe
|
||||
X12149:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 391
|
||||
#OrcPickaxe
|
||||
X12122:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 261
|
||||
Shovels:
|
||||
#BronzeShovel
|
||||
X12007:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 197
|
||||
#MithrilShovel
|
||||
X12048:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 2479
|
||||
#MallornShovel
|
||||
X12073:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 1
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 121
|
||||
#ElvenShovel
|
||||
X12078:
|
||||
XP_Modifer: 2
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12082
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 313
|
||||
#DwarvenShovel
|
||||
X12113:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 451
|
||||
#UrukShovel
|
||||
X12148:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 391
|
||||
#OrcShovel
|
||||
X12121:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 261
|
||||
|
||||
Swords:
|
||||
#Uruk Dagger
|
||||
X12153:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#Poisoned urukd agger
|
||||
X12154:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#Uruk Spear
|
||||
X12157:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 391
|
||||
#Rohirric Sword
|
||||
X12181:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 251
|
||||
#Rohirric Dagger
|
||||
X12182:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 201
|
||||
#Rohirric Spear
|
||||
X12183:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 251
|
||||
#Dunlending Spear
|
||||
X12212:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 251
|
||||
#Uruk Scimitar
|
||||
X12151:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12147
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 391
|
||||
#Mithril Dagger
|
||||
X12137:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1983
|
||||
#Iron Dagger
|
||||
X12136:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 201
|
||||
#Dwarven Dagger
|
||||
X12118:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 361
|
||||
#Dwarven Sword
|
||||
X12116:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12112
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 451
|
||||
#Elven Sword
|
||||
X12081:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#Elven Spear
|
||||
X12083:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#Anduril
|
||||
X12070:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 313
|
||||
#Mallorn Sword
|
||||
X12076:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X1801
|
||||
Repair_Material_Data_Value: 1
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 121
|
||||
#Mithril Spear
|
||||
X12069:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 2479
|
||||
#Iron Spear
|
||||
X12068:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: IRON_INGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 251
|
||||
#Orc Spear
|
||||
X12066:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 261
|
||||
#Bronze Spear
|
||||
X12067:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 197
|
||||
#Gondor Spear
|
||||
X12065:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 281
|
||||
#Gondor Sword
|
||||
X12056:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 281
|
||||
#Orc Scimitar
|
||||
X12031:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12036
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 261
|
||||
#Steel Sword
|
||||
X26862:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X26857
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 751
|
||||
#Bronze Sword
|
||||
X12010:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X12004
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 197
|
||||
#Mithril Sword
|
||||
X12051:
|
||||
XP_Modifer: 1
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X12006
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 2479
|
||||
14
extras/mods/1.6.x/advancedgenetics.tools.yml
Normal file
14
extras/mods/1.6.x/advancedgenetics.tools.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Advanced Genetics 1.4.3
|
||||
Bows:
|
||||
# Genetic
|
||||
X31179:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31197
|
||||
Repair_Material_Pretty_Name: "Cell"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 1501
|
||||
9
extras/mods/1.6.x/appliedenergistics.blocks.yml
Normal file
9
extras/mods/1.6.x/appliedenergistics.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Applied Energistics rv14-finale3
|
||||
Mining:
|
||||
# Certus Quartz Ore
|
||||
X4076|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
65
extras/mods/1.6.x/appliedenergistics.tools.yml
Normal file
65
extras/mods/1.6.x/appliedenergistics.tools.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Applied Energistics rv14-finale3
|
||||
Axes:
|
||||
# Quartz
|
||||
X4365:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X4362
|
||||
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 250
|
||||
|
||||
Hoes:
|
||||
# Quartz
|
||||
X4366:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X4362
|
||||
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 2
|
||||
|
||||
Pickaxes:
|
||||
# Quartz
|
||||
X4368:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X4362
|
||||
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 250
|
||||
|
||||
Shovels:
|
||||
# Quartz
|
||||
X4367:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X4362
|
||||
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 750
|
||||
|
||||
Swords:
|
||||
# Quartz
|
||||
X4369:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X4362
|
||||
Repair_Material_Pretty_Name: "Certus Quartz"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 250
|
||||
9
extras/mods/1.6.x/bigreactors.blocks.yml
Normal file
9
extras/mods/1.6.x/bigreactors.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Big Reactors 0.3.4A2
|
||||
Mining:
|
||||
# Yellorite
|
||||
X1750|0:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
77
extras/mods/1.6.x/biomesoplenty.armor.yml
Normal file
77
extras/mods/1.6.x/biomesoplenty.armor.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of BoP 1.2.1.434
|
||||
Boots:
|
||||
# Wading
|
||||
X21269:
|
||||
Repairable: false
|
||||
Durability: 9999
|
||||
# Muddy
|
||||
X21283:
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 26
|
||||
# Amethyst
|
||||
X21293:
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 520
|
||||
|
||||
Chestplates:
|
||||
# Muddy
|
||||
X21281:
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 32
|
||||
# Amethyst
|
||||
X21291:
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 640
|
||||
|
||||
Helmets:
|
||||
# Muddy
|
||||
X21280:
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 22
|
||||
# Amethyst
|
||||
X21290:
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 440
|
||||
|
||||
Leggings:
|
||||
# Muddy
|
||||
X21280:
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 30
|
||||
# Amethyst
|
||||
X21290:
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 600
|
||||
44
extras/mods/1.6.x/biomesoplenty.blocks.yml
Normal file
44
extras/mods/1.6.x/biomesoplenty.blocks.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Incomplete! Only covers ores
|
||||
# Up to date as of BoP 1.2.1.434
|
||||
Mining:
|
||||
# Red Rock
|
||||
X162|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Amethyst
|
||||
X1921|0:
|
||||
XP_Gain: 200
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Ruby
|
||||
X1921|2:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Peridot
|
||||
X1921|4:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Topaz
|
||||
X1921|6:
|
||||
XP_Gain: 200
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tanzanite
|
||||
X1921|8:
|
||||
XP_Gain: 200
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Malachite
|
||||
X1921|10:
|
||||
XP_Gain: 200
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Sapphire
|
||||
X1921|12:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
121
extras/mods/1.6.x/biomesoplenty.tools.yml
Normal file
121
extras/mods/1.6.x/biomesoplenty.tools.yml
Normal file
@@ -0,0 +1,121 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of BoP 1.2.1.434
|
||||
Axes:
|
||||
# Amethyst
|
||||
X21287:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2013
|
||||
# Muddy
|
||||
X21277:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 32
|
||||
|
||||
Hoes:
|
||||
# Amethyst
|
||||
X21288:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 2013
|
||||
# Muddy
|
||||
X21278:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 32
|
||||
|
||||
Pickaxes:
|
||||
# Amethyst
|
||||
X21286:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 2013
|
||||
# Muddy
|
||||
X21276:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 32
|
||||
|
||||
Shovels:
|
||||
# Amethyst
|
||||
X21285:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 2013
|
||||
# Muddy
|
||||
X21275:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 32
|
||||
|
||||
Swords:
|
||||
# Amethyst
|
||||
X21284:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X21264
|
||||
Repair_Material_Pretty_Name: "Amethyst"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 2013
|
||||
# Muddy
|
||||
X21274:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X21263
|
||||
Repair_Material_Pretty_Name: "Mud Ball"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 32
|
||||
31
extras/mods/1.6.x/emasher.armor.yml
Normal file
31
extras/mods/1.6.x/emasher.armor.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Emasher Resource 1.2.3.5
|
||||
Boots:
|
||||
# Hemp
|
||||
X9301:
|
||||
Repairable: true
|
||||
Repair_Material: X9291
|
||||
Repair_Material_Pretty_Name: "Hemp"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 65
|
||||
|
||||
Chestplates:
|
||||
# Hemp
|
||||
X9299:
|
||||
Repairable: true
|
||||
Repair_Material: X9291
|
||||
Repair_Material_Pretty_Name: "Hemp"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 80
|
||||
|
||||
Leggings:
|
||||
# Hemp
|
||||
X9300:
|
||||
Repairable: true
|
||||
Repair_Material: X9291
|
||||
Repair_Material_Pretty_Name: "Hemp"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 75
|
||||
44
extras/mods/1.6.x/emasher.blocks.yml
Normal file
44
extras/mods/1.6.x/emasher.blocks.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Emasher Resource 1.2.3.5
|
||||
Mining:
|
||||
# Bauxite
|
||||
X1565|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Cassiterite
|
||||
X1565|1:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Emery
|
||||
X1565|2:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Galena
|
||||
X1565|3:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Native Copper
|
||||
X1565|4:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Petlandite
|
||||
X1565|5:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Ruby
|
||||
X1565|6:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Sapphire
|
||||
X1565|7:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
166
extras/mods/1.6.x/extrabiomesxl.blocks.yml
Executable file
166
extras/mods/1.6.x/extrabiomesxl.blocks.yml
Executable file
@@ -0,0 +1,166 @@
|
||||
# Config created by Dragyn
|
||||
# Created For ExtrabiomesXL-universal-1.6.4-3.14.5
|
||||
|
||||
#
|
||||
# Settings for Custom Excavation Blocks
|
||||
###
|
||||
Excavation:
|
||||
# Quicksand
|
||||
X2214|0:
|
||||
XP_Gain: 40
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
|
||||
#
|
||||
# Settings for Custom Herbalism Blocks
|
||||
###
|
||||
Herbalism:
|
||||
# Cattails
|
||||
X2201|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
# Hydrangea
|
||||
X2202|1:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
# Buttercups
|
||||
X2202|2:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
# Lavender
|
||||
X2202|3:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
# Tiny Cactus
|
||||
X2202|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
# Toadstool
|
||||
X2202|6:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
# Calla Lillies
|
||||
X2202|7:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
X254|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
X254|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
#
|
||||
# Settings for Custom Woodcutting Blocks
|
||||
###
|
||||
Woodcutting:
|
||||
# Fir
|
||||
X2208|0:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Acacia
|
||||
X2208|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Cypress
|
||||
X2208|2:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Japanese Maple
|
||||
X2208|3:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Redwood Quarter
|
||||
X2209|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2211|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2212|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2213|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Fir Quarters
|
||||
X2211|1:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2212|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2213|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Oak Quarters
|
||||
X2211|2:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2212|2:
|
||||
XP_Gain: 70
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2213|2:
|
||||
XP_Gain: 70
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Acacia
|
||||
# Cypress
|
||||
# Bald Cypress Quarter
|
||||
X2225|0:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Bald Cypress Elbow
|
||||
X2227|0:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Bald Cypress Log
|
||||
X2231|2:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Rainbow Eucalyptus
|
||||
X2228|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2229|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X2231|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Autumn Log
|
||||
X2231|1:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Sakura Log
|
||||
X2238|0:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
54
extras/mods/1.6.x/extrautilities.tools.yml
Normal file
54
extras/mods/1.6.x/extrautilities.tools.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Extra Utilities 1.0.3c
|
||||
Axes:
|
||||
# Healing
|
||||
X10264:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X10258
|
||||
Repair_Material_Pretty_Name: "Unstable Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 1561
|
||||
|
||||
Hoes:
|
||||
# Reversing
|
||||
X10265:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X10258
|
||||
Repair_Material_Pretty_Name: "Unstable Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1561
|
||||
|
||||
Pickaxes:
|
||||
# Destruction
|
||||
X10263:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: false
|
||||
Durability: 6244
|
||||
|
||||
Shovels:
|
||||
# Erosion
|
||||
X10262:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: false
|
||||
Durability: 6244
|
||||
|
||||
Swords:
|
||||
# Etheric
|
||||
X10261:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: false
|
||||
Durability: 1561
|
||||
9
extras/mods/1.6.x/factorization.blocks.yml
Normal file
9
extras/mods/1.6.x/factorization.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Factorization 0.8.34
|
||||
Mining:
|
||||
# Dark Iron Ore
|
||||
X1004|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
19
extras/mods/1.6.x/forestry.blocks.yml
Normal file
19
extras/mods/1.6.x/forestry.blocks.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Forestry 2.3.1.1
|
||||
Mining:
|
||||
# Apatite
|
||||
X1398|0:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Copper
|
||||
X1398|1:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tin
|
||||
X1398|2:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
27
extras/mods/1.6.x/forestry.tools.yml
Normal file
27
extras/mods/1.6.x/forestry.tools.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Forestry 2.3.1.1
|
||||
Pickaxes:
|
||||
# Survivalist
|
||||
X13261:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X5261
|
||||
Repair_Material_Pretty_Name: "Bronze Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 200
|
||||
|
||||
Shovels:
|
||||
# Survivalist
|
||||
X13264:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X5261
|
||||
Repair_Material_Pretty_Name: "Bronze Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 200
|
||||
71
extras/mods/1.6.x/galacticraft.armor.yml
Executable file
71
extras/mods/1.6.x/galacticraft.armor.yml
Executable file
@@ -0,0 +1,71 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||
#
|
||||
# Settings for Boots
|
||||
###
|
||||
Boots:
|
||||
# Heavy Duty
|
||||
X10149:
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
X10171:
|
||||
Repairable: true
|
||||
Repair_Material: X10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Chestplates
|
||||
###
|
||||
Chestplates:
|
||||
# Heavy Duty
|
||||
X10147:
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
X10169:
|
||||
Repairable: true
|
||||
Repair_Material: X10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Helmets
|
||||
###
|
||||
Helmets:
|
||||
# Heavy Duty
|
||||
X10146:
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
X10168:
|
||||
Repairable: true
|
||||
Repair_Material: X10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 999
|
||||
#
|
||||
# Settings for Leggings
|
||||
###
|
||||
Leggings:
|
||||
# Heavy Duty
|
||||
X10148:
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
X10170:
|
||||
Repairable: true
|
||||
Repair_Material: X10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 999
|
||||
|
||||
98
extras/mods/1.6.x/galacticraft.blocks.yml
Executable file
98
extras/mods/1.6.x/galacticraft.blocks.yml
Executable file
@@ -0,0 +1,98 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||
#
|
||||
# Settings for Custom Excavation Blocks
|
||||
###
|
||||
Excavation:
|
||||
# Dirt
|
||||
X3347|3:
|
||||
XP_Gain: 40
|
||||
Double_Drops_Enabled: true
|
||||
Block_2|0:
|
||||
XP_Gain: 99
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
# Copper Ore
|
||||
X3347|0:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
X3372|5:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
X3390|0:
|
||||
XP_Gain: 550
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tin Ore
|
||||
X3347|1:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
X3372|6:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
X3390|1:
|
||||
XP_Gain: 550
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Aluminum Ore
|
||||
X3372|7:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Silicon Ore
|
||||
X3372|8:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Cheese Ore
|
||||
X3347|2:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Iron Ore
|
||||
X3390|3:
|
||||
XP_Gain: 550
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Desh Ore
|
||||
X3390|2:
|
||||
XP_Gain: 600
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Moon Stone
|
||||
X3347|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Moon Turf
|
||||
X3347|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Mars Cobblestone
|
||||
X3390|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Mars Rock/Stone
|
||||
X3390|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X3390|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X3390|9:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
123
extras/mods/1.6.x/galacticraft.tools.yml
Executable file
123
extras/mods/1.6.x/galacticraft.tools.yml
Executable file
@@ -0,0 +1,123 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
Axes:
|
||||
# Heavy Duty
|
||||
X10145:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Desh
|
||||
X10167:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: 10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1000
|
||||
|
||||
#
|
||||
# Settings for Hoes
|
||||
###
|
||||
Hoes:
|
||||
# Heavy Duty
|
||||
X10144:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Desh
|
||||
X10166:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: 10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1000
|
||||
#
|
||||
# Settings for Pickaxes
|
||||
###
|
||||
Pickaxes:
|
||||
# Heavy Duty
|
||||
X10142:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Desh
|
||||
X10164:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: 10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1000
|
||||
#
|
||||
# Settings for Shovels
|
||||
###
|
||||
Shovels:
|
||||
# Heavy Duty
|
||||
X10143:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Desh
|
||||
X10165:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: 10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1000
|
||||
#
|
||||
# Settings for Swords
|
||||
###
|
||||
Swords:
|
||||
# Heavy Duty
|
||||
X10141:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 4
|
||||
Repairable: true
|
||||
Repair_Material: X10150
|
||||
Repair_Material_Data_Value: 9
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Desh
|
||||
X10163:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: 10161
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1000
|
||||
1018
extras/mods/1.6.x/metallurgy3.armor.yml
Executable file
1018
extras/mods/1.6.x/metallurgy3.armor.yml
Executable file
File diff suppressed because it is too large
Load Diff
185
extras/mods/1.6.x/metallurgy3.blocks.yml
Executable file
185
extras/mods/1.6.x/metallurgy3.blocks.yml
Executable file
@@ -0,0 +1,185 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Metallurgy-1.6.4-3.3.1
|
||||
#
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
# Copper
|
||||
X900|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tin
|
||||
X900|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Zinc
|
||||
X902|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Silver
|
||||
X902|1:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Platinum
|
||||
X902|3:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
|
||||
# NETHER ORES
|
||||
# Ignatius
|
||||
X903|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Shadow Iron
|
||||
X903|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Lemurite
|
||||
X903|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Midasium
|
||||
X903|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Vyroxeres
|
||||
X903|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Ceruclase
|
||||
X903|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Alduorite
|
||||
X903|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Kalendrite
|
||||
X903|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Vulcanite
|
||||
X903|8:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Sanguinite
|
||||
X903|9:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
|
||||
# Manganese
|
||||
X900|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Eximite
|
||||
X900|5:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Meutoite
|
||||
X900|6:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Sulfur
|
||||
X905|7:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Phosphorite
|
||||
X905|8:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Saltpeter
|
||||
X905|9:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Magnesium
|
||||
X905|10:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Bitumen
|
||||
X905|11:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Potash
|
||||
X905|12:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Prometheum
|
||||
X906|0:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Deep Iron
|
||||
X906|1:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Infuscolium
|
||||
X906|2:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Oureclase
|
||||
X906|4:
|
||||
XP_Gain: 650
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Astral Silver
|
||||
X906|5:
|
||||
XP_Gain: 650
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Carmot
|
||||
X906|6:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Mithril
|
||||
X906|7:
|
||||
XP_Gain: 750
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Rubracium
|
||||
X906|8:
|
||||
XP_Gain: 800
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Orichalcum
|
||||
X906|11:
|
||||
XP_Gain: 900
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Adamantine
|
||||
X906|13:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Atlarus
|
||||
X906|14:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
1789
extras/mods/1.6.x/metallurgy3.tools.yml
Normal file
1789
extras/mods/1.6.x/metallurgy3.tools.yml
Normal file
File diff suppressed because it is too large
Load Diff
11
extras/mods/1.6.x/minefactoryreloaded.armor.yml
Normal file
11
extras/mods/1.6.x/minefactoryreloaded.armor.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Minefactory Reloaded 2.7.9 Final
|
||||
Boots:
|
||||
# Plastic
|
||||
X12306:
|
||||
Repairable: true
|
||||
Repair_Material: X12249
|
||||
Repair_Material_Pretty_Name: "Plastic Sheets"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 39
|
||||
41
extras/mods/1.6.x/natura.armor.yml
Normal file
41
extras/mods/1.6.x/natura.armor.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Natura 2.1.14
|
||||
Boots:
|
||||
# Impskin
|
||||
X12712:
|
||||
Repairable: true
|
||||
Repair_Material: X12660
|
||||
Repair_Material_Pretty_Name: "Imp Leather"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 429
|
||||
|
||||
Chestplates:
|
||||
# Impskin
|
||||
X12710:
|
||||
Repairable: true
|
||||
Repair_Material: X12660
|
||||
Repair_Material_Pretty_Name: "Imp Leather"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 528
|
||||
|
||||
Helmets:
|
||||
# Impskin
|
||||
X12709:
|
||||
Repairable: true
|
||||
Repair_Material: X12660
|
||||
Repair_Material_Pretty_Name: "Imp Leather"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 363
|
||||
|
||||
Leggings:
|
||||
# Impskin
|
||||
X12709:
|
||||
Repairable: true
|
||||
Repair_Material: X12660
|
||||
Repair_Material_Pretty_Name: "Imp Leather"
|
||||
Repair_Material_Data_Value: 6
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 495
|
||||
272
extras/mods/1.6.x/natura.tools.yml
Normal file
272
extras/mods/1.6.x/natura.tools.yml
Normal file
@@ -0,0 +1,272 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Natura 2.1.14
|
||||
Axes:
|
||||
# Bloodwood
|
||||
X12685:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||
Repair_Material_Data_Value: 4
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 350
|
||||
# Darkwood
|
||||
X12689:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||
Repair_Material_Data_Value: 11
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 131
|
||||
# Fusewood
|
||||
X12693:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||
Repair_Material_Data_Value: 12
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 250
|
||||
# Ghostwood
|
||||
X12681:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 59
|
||||
# Quartz
|
||||
X12697:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: QUARTZ_BLOCK
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 131
|
||||
|
||||
Bows:
|
||||
# Bloodwood
|
||||
X12706:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X12677
|
||||
Repair_Material_Pretty_Name: "Bloodwood Stick"
|
||||
Repair_Material_Data_Value: 4
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 1501
|
||||
# Darkwood
|
||||
X12707:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X12677
|
||||
Repair_Material_Pretty_Name: "Darkwood Stick"
|
||||
Repair_Material_Data_Value: 11
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 162
|
||||
# Fusewood
|
||||
X12708:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X12677
|
||||
Repair_Material_Pretty_Name: "Fusewood Stick"
|
||||
Repair_Material_Data_Value: 12
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 28
|
||||
# Ghostwood
|
||||
X12705:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X12677
|
||||
Repair_Material_Pretty_Name: "Ghostwood Stick"
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 384
|
||||
|
||||
|
||||
Pickaxes:
|
||||
# Bloodwood
|
||||
X12683:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||
Repair_Material_Data_Value: 4
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 350
|
||||
# Darkwood
|
||||
X12687:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||
Repair_Material_Data_Value: 11
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 131
|
||||
# Fusewood
|
||||
X12691:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||
Repair_Material_Data_Value: 12
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 250
|
||||
# Ghostwood
|
||||
X12679:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 59
|
||||
# Quartz
|
||||
X12695:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: QUARTZ_BLOCK
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 131
|
||||
|
||||
Shovels:
|
||||
# Bloodwood
|
||||
X12684:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||
Repair_Material_Data_Value: 4
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 350
|
||||
# Darkwood
|
||||
X12688:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||
Repair_Material_Data_Value: 11
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 131
|
||||
# Fusewood
|
||||
X12692:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||
Repair_Material_Data_Value: 12
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 250
|
||||
# Ghostwood
|
||||
X12680:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 59
|
||||
# Quartz
|
||||
X12696:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: QUARTZ_BLOCK
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 131
|
||||
|
||||
Swords:
|
||||
# Bloodwood
|
||||
X12682:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Bloodwood Planks"
|
||||
Repair_Material_Data_Value: 4
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 350
|
||||
# Darkwood
|
||||
X12686:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Darkwood Planks"
|
||||
Repair_Material_Data_Value: 11
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
# Fusewood
|
||||
X12690:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Fusewood Planks"
|
||||
Repair_Material_Data_Value: 12
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 250
|
||||
# Ghostwood
|
||||
X12678:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: X3262
|
||||
Repair_Material_Pretty_Name: "Ghostwood Planks"
|
||||
Repair_Material_Data_Value: 2
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 59
|
||||
# Quartz
|
||||
X12694:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: true
|
||||
Repair_Material: QUARTZ_BLOCK
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
29
extras/mods/1.6.x/projectred.blocks.yml
Normal file
29
extras/mods/1.6.x/projectred.blocks.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Project Red 4.3.5.30
|
||||
Mining:
|
||||
# Ruby
|
||||
X2130|0:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Sapphire
|
||||
X2130|1:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Peridot
|
||||
X2130|2:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Marble
|
||||
X2131|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Basalt
|
||||
X2131|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
176
extras/mods/1.6.x/projectred.tools.yml
Normal file
176
extras/mods/1.6.x/projectred.tools.yml
Normal file
@@ -0,0 +1,176 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Project Red 4.3.5.30
|
||||
Axes:
|
||||
# Ruby
|
||||
X9353:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Ruby"
|
||||
Repair_Material_Data_Value: 37
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
# Sapphire
|
||||
X9354:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Sapphire"
|
||||
Repair_Material_Data_Value: 38
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
# Peridot
|
||||
X9355:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Peridot"
|
||||
Repair_Material_Data_Value: 39
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
|
||||
Hoes:
|
||||
# Ruby
|
||||
X9356:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Ruby"
|
||||
Repair_Material_Data_Value: 37
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Sapphire
|
||||
X9357:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Sapphire"
|
||||
Repair_Material_Data_Value: 38
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Peridot
|
||||
X9358:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Peridot"
|
||||
Repair_Material_Data_Value: 39
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
Pickaxes:
|
||||
# Ruby
|
||||
X9359:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Ruby"
|
||||
Repair_Material_Data_Value: 37
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
# Sapphire
|
||||
X9360:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Sapphire"
|
||||
Repair_Material_Data_Value: 38
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
# Peridot
|
||||
X9361:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Peridot"
|
||||
Repair_Material_Data_Value: 39
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 500
|
||||
|
||||
Shovels:
|
||||
# Ruby
|
||||
X9362:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Ruby"
|
||||
Repair_Material_Data_Value: 37
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 500
|
||||
# Sapphire
|
||||
X9363:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Sapphire"
|
||||
Repair_Material_Data_Value: 38
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 500
|
||||
# Peridot
|
||||
X9364:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Peridot"
|
||||
Repair_Material_Data_Value: 39
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 500
|
||||
|
||||
Swords:
|
||||
# Ruby
|
||||
X9365:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Ruby"
|
||||
Repair_Material_Data_Value: 37
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Sapphire
|
||||
X9366:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Sapphire"
|
||||
Repair_Material_Data_Value: 38
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Peridot
|
||||
X9368:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X9281
|
||||
Repair_Material_Pretty_Name: "Peridot"
|
||||
Repair_Material_Data_Value: 39
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
49
extras/mods/1.6.x/railcraft.armor.yml
Executable file
49
extras/mods/1.6.x/railcraft.armor.yml
Executable file
@@ -0,0 +1,49 @@
|
||||
# Config wrote by Dragyn, updated by M1cr0man
|
||||
# Up to date as of Railcraft 8.4.0.0
|
||||
Boots:
|
||||
# Steel
|
||||
X7758:
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 325
|
||||
|
||||
Chestplates:
|
||||
# Steel
|
||||
X7761:
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 400
|
||||
|
||||
Helmets:
|
||||
# Steel
|
||||
X7759:
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 275
|
||||
|
||||
Leggings:
|
||||
# Steel
|
||||
X7760:
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 375
|
||||
# Overalls
|
||||
X7757:
|
||||
Repairable: true
|
||||
Repair_Material: WOOL
|
||||
Repair_Material_Pretty_Name: "Light Blue Wool"
|
||||
Repair_Material_Data_Value: 3
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 75
|
||||
103
extras/mods/1.6.x/railcraft.blocks.yml
Executable file
103
extras/mods/1.6.x/railcraft.blocks.yml
Executable file
@@ -0,0 +1,103 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Railcraft_1.6.2-8.1.0.0
|
||||
#
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
# Abyssal Stone
|
||||
X457|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Quarried Stone
|
||||
X457|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Sulfur
|
||||
X458|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Saltpeter
|
||||
X458|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Dark Diamond
|
||||
X458|2:
|
||||
XP_Gain: 750
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Dark Emerald
|
||||
X458|3:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Dark Lapis
|
||||
X458|4:
|
||||
XP_Gain: 400
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Firestone
|
||||
X458|5:
|
||||
XP_Gain: 450
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Infernal Stone
|
||||
X467|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X467|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Blood Stained Stone
|
||||
X468|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X468|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Sandy Stone
|
||||
X469|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X469|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Quarried Stone
|
||||
X471|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X471|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Frost Bound Stone
|
||||
X472|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X472|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
# Nether Stone
|
||||
X475|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X475|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
|
||||
66
extras/mods/1.6.x/railcraft.tools.yml
Executable file
66
extras/mods/1.6.x/railcraft.tools.yml
Executable file
@@ -0,0 +1,66 @@
|
||||
# Config wrote by Dragyn, updated by M1cr0man
|
||||
# Up to date as of Railcraft 8.4.0.0
|
||||
Axes:
|
||||
# Steel
|
||||
X7819:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
Hoes:
|
||||
# Steel
|
||||
X7820:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
Pickaxes:
|
||||
# Steel
|
||||
X7821:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
Shovels:
|
||||
# Steel
|
||||
X7823:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
Swords:
|
||||
# Steel
|
||||
X7824:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X7796
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
543
extras/mods/1.6.x/simcraft.blocks.yml
Executable file
543
extras/mods/1.6.x/simcraft.blocks.yml
Executable file
@@ -0,0 +1,543 @@
|
||||
# Config created by Dragyn
|
||||
# Created For SimCraft 1.6.4
|
||||
#
|
||||
#
|
||||
# Settings for Custom Herbalism Blocks
|
||||
###
|
||||
Herbalism:
|
||||
X705|0:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|1:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|2:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|3:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|4:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|5:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|6:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|7:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|8:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|9:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|10:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|11:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|12:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|13:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|14:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X705|15:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|0:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|1:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|2:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|3:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|4:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|5:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|6:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|7:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|8:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|9:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|10:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|11:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|12:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|13:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|14:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X706|15:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|0:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|1:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|2:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|3:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|4:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|5:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|6:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|7:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|8:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|9:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|10:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|11:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|12:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|13:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|14:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
X707|15:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
X700|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|8:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|9:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|10:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|11:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|12:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|13:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|14:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X700|15:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|0:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|1:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|2:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|3:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|4:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|5:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|6:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|7:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|8:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|9:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|10:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|11:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|12:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|13:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|14:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X701|15:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|8:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|9:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|10:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|11:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|12:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|13:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|14:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X702|15:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|8:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|9:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|10:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|11:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|12:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|13:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|14:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X703|15:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|8:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|9:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|10:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|11:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|12:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|13:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|14:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X704|15:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
#
|
||||
# Settings for Custom Woodcutting Blocks
|
||||
###
|
||||
Woodcutting:
|
||||
X708|0:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|2:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|3:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|4:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|5:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|6:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|7:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|8:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|9:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|10:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X708|11:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X1095|0:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X1095|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X1095|2:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
X1095|3:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
61
extras/mods/1.6.x/simcraft.tools.yml
Executable file
61
extras/mods/1.6.x/simcraft.tools.yml
Executable file
@@ -0,0 +1,61 @@
|
||||
# Config created by Dragyn
|
||||
# Created For Railcraft_1.6.2-8.1.0.0
|
||||
#
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
Axes:
|
||||
# Steel
|
||||
X15787:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X15260
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
|
||||
#
|
||||
# Settings for Pickaxes
|
||||
###
|
||||
Pickaxes:
|
||||
# Steel
|
||||
X15788:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X15260
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Shovels
|
||||
###
|
||||
Shovels:
|
||||
# Steel
|
||||
X15789:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X15260
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Swords
|
||||
###
|
||||
Swords:
|
||||
# Steel
|
||||
X15786:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X15260
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
9
extras/mods/1.6.x/stargatetech2.blocks.yml
Normal file
9
extras/mods/1.6.x/stargatetech2.blocks.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Stargate Tech 2 Alpha 0.7.3
|
||||
Mining:
|
||||
# Naquadah Ore
|
||||
X1005|0:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
41
extras/mods/1.6.x/thermalexpansion.armor.yml
Normal file
41
extras/mods/1.6.x/thermalexpansion.armor.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Thermal Expansion 3.0.0.7
|
||||
Boots:
|
||||
# Invar
|
||||
X31973:
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 325
|
||||
|
||||
Chestplates:
|
||||
# Invar
|
||||
X31975:
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 400
|
||||
|
||||
Helmets:
|
||||
# Invar
|
||||
X31976:
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 275
|
||||
|
||||
Leggings:
|
||||
# Invar
|
||||
X31976:
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 375
|
||||
29
extras/mods/1.6.x/thermalexpansion.blocks.yml
Normal file
29
extras/mods/1.6.x/thermalexpansion.blocks.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Thermal Expansion 3.0.0.7
|
||||
Mining:
|
||||
# Copper
|
||||
X4064|0:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tin
|
||||
X4064|1:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Silver
|
||||
X4064|2:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Lead
|
||||
X4064|3:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Ferrous
|
||||
X4064|4:
|
||||
XP_Gain: 300
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
66
extras/mods/1.6.x/thermalexpansion.tools.yml
Normal file
66
extras/mods/1.6.x/thermalexpansion.tools.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Thermal Expansion 3.0.0.7
|
||||
Axes:
|
||||
# Invar
|
||||
X31969:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 450
|
||||
|
||||
Hoes:
|
||||
# Invar
|
||||
X31968:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 450
|
||||
|
||||
Pickaxes:
|
||||
# Invar
|
||||
X31970:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 3
|
||||
Durability: 450
|
||||
|
||||
Shovels:
|
||||
# Invar
|
||||
X31971:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 1
|
||||
Durability: 450
|
||||
|
||||
Swords:
|
||||
# Invar
|
||||
X31972:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 3
|
||||
Repairable: true
|
||||
Repair_Material: X31978
|
||||
Repair_Material_Pretty_Name: "Invar Ingot"
|
||||
Repair_Material_Data_Value: 71
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 450
|
||||
74
extras/mods/1.6.x/tinkersconstruct.armor.yml
Normal file
74
extras/mods/1.6.x/tinkersconstruct.armor.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Up to date as of Tinker's Construct 1.5.5.7
|
||||
# Also covers Tinker's Steelworks 0.0.4.2-fix2
|
||||
Boots:
|
||||
# Wooden (Repaired with Oak Wood)
|
||||
X14366:
|
||||
Repairable: true
|
||||
Repair_Material: LOG
|
||||
Repair_Material_Pretty_Name: "Oak Wood"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 26
|
||||
# Steel
|
||||
X14771:
|
||||
Repairable: true
|
||||
Repair_Material: X14276
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 16
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 325
|
||||
|
||||
Chestplates:
|
||||
# Wooden (Repaired with Oak Wood)
|
||||
X14364:
|
||||
Repairable: true
|
||||
Repair_Material: LOG
|
||||
Repair_Material_Pretty_Name: "Oak Wood"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 32
|
||||
# Steel
|
||||
X14769:
|
||||
Repairable: true
|
||||
Repair_Material: X14276
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 16
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 400
|
||||
|
||||
Helmets:
|
||||
# Wooden (Repaired with Oak Wood)
|
||||
X14362:
|
||||
Repairable: true
|
||||
Repair_Material: LOG
|
||||
Repair_Material_Pretty_Name: "Oak Wood"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 22
|
||||
# Steel
|
||||
X14768:
|
||||
Repairable: true
|
||||
Repair_Material: X14276
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 16
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 275
|
||||
|
||||
Leggings:
|
||||
# Wooden (Repaired with Oak Wood)
|
||||
X14362:
|
||||
Repairable: true
|
||||
Repair_Material: LOG
|
||||
Repair_Material_Pretty_Name: "Oak Wood"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 30
|
||||
# Steel
|
||||
X14768:
|
||||
Repairable: true
|
||||
Repair_Material: X14276
|
||||
Repair_Material_Pretty_Name: "Steel Ingot"
|
||||
Repair_Material_Data_Value: 16
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 375
|
||||
55
extras/mods/1.6.x/tinkersconstruct.blocks.yml
Normal file
55
extras/mods/1.6.x/tinkersconstruct.blocks.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Possibly incomplete. Only covers ores
|
||||
# Up to date as of Tinker's Construct 1.5.5.7
|
||||
Excavation:
|
||||
# Iron
|
||||
X1488|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
# Gold
|
||||
X1488|1:
|
||||
XP_Gain: 350
|
||||
Double_Drops_Enabled: true
|
||||
# Copper
|
||||
X1488|2:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
# Tin
|
||||
X1488|3:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
# Aluminum
|
||||
X1488|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
# Cobalt
|
||||
X1488|5:
|
||||
XP_Gain: 500
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
Mining:
|
||||
# Cobalt
|
||||
X1475|1:
|
||||
XP_Gain: 500
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Ardite
|
||||
X1475|2:
|
||||
XP_Gain: 500
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Copper
|
||||
X1475|3:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Tin
|
||||
X1475|4:
|
||||
XP_Gain: 175
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
# Aluminium
|
||||
X1475|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: true
|
||||
149
extras/mods/1.6.x/tinkersconstruct.tools.yml
Normal file
149
extras/mods/1.6.x/tinkersconstruct.tools.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
# Config wrote by M1cr0man
|
||||
# Abilites for Pickaxes and Shovels disabled due to a bug
|
||||
# Repair disabled as mcMMO does not support NBTTag - based tools
|
||||
# Up to date as of Tinker's Construct 1.5.5.7
|
||||
# Also covers Tinker's Steelworks 0.0.4.2-fix2
|
||||
Axes:
|
||||
# Hatchets
|
||||
X14309:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Mattocks
|
||||
X14316:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Lumber Axes
|
||||
X14317:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Battle Axes
|
||||
X14327:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
|
||||
Bows:
|
||||
# Shortbows
|
||||
X14319:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
|
||||
Hoes:
|
||||
# Mattocks
|
||||
X14316:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Scythes
|
||||
X14323:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
|
||||
Pickaxes:
|
||||
# Pickaxes
|
||||
X14307:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: false
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Hammers
|
||||
X14326:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: false
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
|
||||
Shovels:
|
||||
# Shovels
|
||||
X14308:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: false
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Mattocks
|
||||
X14316:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: false
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Excavators
|
||||
X14325:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: false
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
|
||||
Swords:
|
||||
# Broadswords
|
||||
X14311:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Longswords
|
||||
X14312:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Rapiers
|
||||
X14313:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Daggers
|
||||
X14321:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Cleavers
|
||||
X14324:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Battle Axes
|
||||
X14327:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
# Cutlasses
|
||||
X14328:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 2
|
||||
Repairable: false
|
||||
Durability: 500
|
||||
141
extras/mods/1.6.x/twilightforest.armor.yml
Executable file
141
extras/mods/1.6.x/twilightforest.armor.yml
Executable file
@@ -0,0 +1,141 @@
|
||||
# Config wrote by Dragyn, updated by M1cr0man
|
||||
# Up to date as of Twilight Forest 1.20.5
|
||||
Boots:
|
||||
# Ironwood
|
||||
X27978:
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 260
|
||||
# Fiery
|
||||
X27995:
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 325
|
||||
# Stealeaf
|
||||
X28002:
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 260
|
||||
# Knightmetal
|
||||
X28037:
|
||||
Repairable: true
|
||||
Repair_Material: X28032
|
||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 4
|
||||
Durability: 260
|
||||
|
||||
Chestplates:
|
||||
# Ironwood
|
||||
X27976:
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 320
|
||||
# Naga Scale
|
||||
X27958:
|
||||
Repairable: true
|
||||
Repair_Material: X27957
|
||||
Repair_Material_Pretty_Name: "Naga Scale"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 336
|
||||
# Fiery
|
||||
X27993:
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 400
|
||||
# Stealeaf
|
||||
X28000:
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 8
|
||||
Durability: 320
|
||||
# Knightmetal
|
||||
# Phantom
|
||||
|
||||
Helmets:
|
||||
# Ironwood
|
||||
X27975:
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 220
|
||||
# Fiery
|
||||
X27992:
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 275
|
||||
# Stealeaf
|
||||
X27999:
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 5
|
||||
Durability: 220
|
||||
# Knightmetal
|
||||
# Phantom
|
||||
|
||||
Leggings:
|
||||
# Ironwood
|
||||
X27977:
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 300
|
||||
# Naga Scale
|
||||
X27959:
|
||||
Repairable: true
|
||||
Repair_Material: X27957
|
||||
Repair_Material_Pretty_Name: "Naga Scale"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 315
|
||||
# Fiery
|
||||
X27994:
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Pretty_Name: "Fiery Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 375
|
||||
# Stealeaf
|
||||
X28001:
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 300
|
||||
# Knightmetal
|
||||
X28036:
|
||||
Repairable: true
|
||||
Repair_Material: X28032
|
||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 7
|
||||
Durability: 300
|
||||
117
extras/mods/1.6.x/twilightforest.blocks.yml
Executable file
117
extras/mods/1.6.x/twilightforest.blocks.yml
Executable file
@@ -0,0 +1,117 @@
|
||||
# Config created by Dragyn
|
||||
# Created For twilightforest-1.20.3
|
||||
#
|
||||
#
|
||||
# Settings for Custom Herbalism Blocks
|
||||
###
|
||||
Herbalism:
|
||||
# Mushgloom
|
||||
X2169|9:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
# Torchberry Plant
|
||||
X2169|13:
|
||||
XP_Gain: 20
|
||||
Double_Drops_Enabled: true
|
||||
# Mayapple
|
||||
X2169|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
# Fiddlehead
|
||||
X2169|8:
|
||||
XP_Gain: 35
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
# Mazestone
|
||||
X2165|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2165|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
#
|
||||
# Settings for Custom Woodcutting Blocks
|
||||
###
|
||||
Woodcutting:
|
||||
# Twilight Oak
|
||||
X2163|0:
|
||||
XP_Gain: 70
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Canopy
|
||||
X2163|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Mangrove
|
||||
X2163|2:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Darkwood
|
||||
X2163|3:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Roots
|
||||
X2170|0:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: false
|
||||
X2170|1:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: false
|
||||
# Timewood
|
||||
X2176|0:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Transwood
|
||||
X2176|1:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Minewood
|
||||
X2176|2:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Sortingwood
|
||||
X2176|3:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
|
||||
181
extras/mods/1.6.x/twilightforest.tools.yml
Executable file
181
extras/mods/1.6.x/twilightforest.tools.yml
Executable file
@@ -0,0 +1,181 @@
|
||||
# Config wrote by Dragyn, updated by M1cr0man
|
||||
# Up to date as of Twilight Forest 1.20.5
|
||||
Axes:
|
||||
# Ironwood
|
||||
X27982:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Steeleaf
|
||||
X28006:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
# Knightmetal
|
||||
X28040:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X28032
|
||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Minotaur
|
||||
X28008:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: false
|
||||
Durability: 1561
|
||||
|
||||
Hoes:
|
||||
# Ironwood
|
||||
X27983:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Steeleaf
|
||||
X28007:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
|
||||
Pickaxes:
|
||||
# Ironwood
|
||||
X27981:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Fiery
|
||||
X27997:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1024
|
||||
# Steeleaf
|
||||
X28005:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
# Knightmetal
|
||||
X28039:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X28032
|
||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
|
||||
Shovels:
|
||||
# Ironwood
|
||||
X27980:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Steeleaf
|
||||
X28004:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
|
||||
Swords:
|
||||
# Ironwood
|
||||
X27979:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27974
|
||||
Repair_Material_Pretty_Name: "Ironwood Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
# Fiery
|
||||
X27996:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27991
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 1024
|
||||
# Steeleaf
|
||||
X28003:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X27998
|
||||
Repair_Material_Pretty_Name: "Steeleaf"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 131
|
||||
# Knightmetal
|
||||
X28038:
|
||||
XP_Modifier: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: X28032
|
||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 512
|
||||
171
extras/mods/1.6.x/underground_biomes.blocks.yml
Executable file
171
extras/mods/1.6.x/underground_biomes.blocks.yml
Executable file
@@ -0,0 +1,171 @@
|
||||
# Config created by Dragyn
|
||||
# Created For UndergroundBiomes 1.6.x - 0.4.2c
|
||||
#
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
X2000|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2000|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
#
|
||||
X2001|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2001|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
#
|
||||
X2009|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2009|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
#
|
||||
X2010|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2010|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
#
|
||||
X2011|0:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|1:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|2:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|3:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|4:
|
||||
XP_Gain: 50
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|5:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|6:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
X2011|7:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
132
extras/mods/1.7.x/twilightforest.armor.yml
Normal file
132
extras/mods/1.7.x/twilightforest.armor.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
# Config created by joulesbeef
|
||||
# Created For twilightforest-2.2.3
|
||||
#
|
||||
#
|
||||
# Settings for Boots
|
||||
###
|
||||
Boots:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODBOOTS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYBOOTS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Stealeaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFBOOTS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYBOOTS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
#
|
||||
# Settings for Chestplates
|
||||
###
|
||||
Chestplates:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODPLATE:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYPLATE:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Stealeaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFPLATE:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYPLATE:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
#
|
||||
# Settings for Helmets
|
||||
###
|
||||
Helmets:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODHELM:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYHELM:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Stealeaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFHELM:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYHELM:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 50
|
||||
# Settings for Leggings
|
||||
###
|
||||
Leggings:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODLEGS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYLEGS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Stealeaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFLEGS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYLEGS:
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
116
extras/mods/1.7.x/twilightforest.blocks.yml
Normal file
116
extras/mods/1.7.x/twilightforest.blocks.yml
Normal file
@@ -0,0 +1,116 @@
|
||||
# Config created by joulesbeef
|
||||
# Created For twilightforest-2.2.3
|
||||
#
|
||||
#
|
||||
# Settings for Custom Herbalism Blocks
|
||||
###
|
||||
Herbalism:
|
||||
# Mushgloom
|
||||
TWILIGHTFOREST_TILE_TFLOG|9:
|
||||
XP_Gain: 150
|
||||
Double_Drops_Enabled: true
|
||||
# Torchberry Plant
|
||||
TWILIGHTFOREST_TILE_TFLOG|13:
|
||||
XP_Gain: 20
|
||||
Double_Drops_Enabled: true
|
||||
# Mayapple
|
||||
TWILIGHTFOREST_TILE_TFLOG|4:
|
||||
XP_Gain: 30
|
||||
Double_Drops_Enabled: true
|
||||
# Fiddlehead
|
||||
TWILIGHTFOREST_TILE_TFLOG|8:
|
||||
XP_Gain: 35
|
||||
Double_Drops_Enabled: true
|
||||
|
||||
|
||||
#
|
||||
# Settings for Custom Mining Blocks
|
||||
###
|
||||
Mining:
|
||||
# Mazestone
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|0:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|1:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|2:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|3:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|4:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|5:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|6:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
TWILIGHTFOREST_TILE_TFMAZESTONE|7:
|
||||
XP_Gain: 250
|
||||
Double_Drops_Enabled: true
|
||||
Is_Ore: false
|
||||
|
||||
#
|
||||
# Settings for Custom Woodcutting Blocks
|
||||
###
|
||||
Woodcutting:
|
||||
# Twilight Oak
|
||||
TWILIGHTFOREST_TILE_TFLOG|0:
|
||||
XP_Gain: 70
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Canopy
|
||||
TWILIGHTFOREST_TILE_TFLOG|1:
|
||||
XP_Gain: 80
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Mangrove
|
||||
TWILIGHTFOREST_TILE_TFLOG|2:
|
||||
XP_Gain: 90
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Darkwood
|
||||
TWILIGHTFOREST_TILE_TFLOG|3:
|
||||
XP_Gain: 100
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Roots
|
||||
TWILIGHTFOREST_TILE_TFROOTS|0:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: false
|
||||
TWILIGHTFOREST_TILE_TFROOTS|1:
|
||||
XP_Gain: 10
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: false
|
||||
# Timewood
|
||||
TWILIGHTFOREST_TILE_TFMAGICLOG|0:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Transwood
|
||||
TWILIGHTFOREST_TILE_TFMAGICLOG|1:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Minewood
|
||||
TWILIGHTFOREST_TILE_TFMAGICLOG|2:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
# Sortingwood
|
||||
TWILIGHTFOREST_TILE_TFMAGICLOG|3:
|
||||
XP_Gain: 1000
|
||||
Double_Drops_Enabled: true
|
||||
Is_Log: true
|
||||
152
extras/mods/1.7.x/twilightforest.entities.yml
Normal file
152
extras/mods/1.7.x/twilightforest.entities.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
# Config created by joulesbeef
|
||||
# Created For twilightforest-2.2.3
|
||||
#
|
||||
# Settings for Custom Mobs
|
||||
MoCreatures-Ogre:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-TwilightLich:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-HelmetCrab:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-SlimeBeetle:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-TwilightWraith:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-Naga:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
MoCreatures-Shark:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-TowerTermite:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
MoCreatures-SmallFish:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-Redcap:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-YetiBoss:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
MoCreatures-HellRat:
|
||||
Class: Monster
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-Hydra:
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-Firefly:
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-KnightPhantom:
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
TwilightForest-TowerGolem:
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
MoCreatures-FishBowl:
|
||||
XP_Multiplier: 1.0
|
||||
Tameable: false
|
||||
Taming_XP: 0
|
||||
CanBeSummoned: false
|
||||
COTW_Material: ''
|
||||
COTW_Material_Data: 0
|
||||
COTW_Material_Amount: 0
|
||||
184
extras/mods/1.7.x/twilightforest.tools.yml
Normal file
184
extras/mods/1.7.x/twilightforest.tools.yml
Normal file
@@ -0,0 +1,184 @@
|
||||
# Config created by joulesbeef
|
||||
# Created For twilightforest-2.2.3
|
||||
#
|
||||
#
|
||||
# Settings for Axes
|
||||
###
|
||||
Axes:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODAXE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Steeleaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFAXE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYAXE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Minotaur
|
||||
TWILIGHTFOREST_ITEM_MINOTAURAXE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: Diamond
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Hoes
|
||||
###
|
||||
Hoes:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODHOE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Steeleaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFHOE:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
|
||||
#
|
||||
# Settings for Pickaxes
|
||||
###
|
||||
Pickaxes:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODPICK:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYPICK:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Steeleaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFPICK:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYPICK:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Shovels
|
||||
###
|
||||
Shovels:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODSHOVEL:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Steeleaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFSHOVEL:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
#
|
||||
# Settings for Swords
|
||||
###
|
||||
Swords:
|
||||
# Ironwood
|
||||
TWILIGHTFOREST_ITEM_IRONWOODSWORD:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Fiery
|
||||
TWILIGHTFOREST_ITEM_FIERYSWORD:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Steeleaf
|
||||
TWILIGHTFOREST_ITEM_STEELEAFSWORD:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
# Knightmetal
|
||||
TWILIGHTFOREST_ITEM_KNIGHTLYSWORD:
|
||||
XP_Modifer: 1.0
|
||||
Ability_Enabled: true
|
||||
Tier: 1
|
||||
Repairable: true
|
||||
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
|
||||
Repair_Material_Data_Value: 0
|
||||
Repair_Material_Quantity: 2
|
||||
Durability: 500
|
||||
60
extras/repair.chain.yml
Normal file
60
extras/repair.chain.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# Repair configuration
|
||||
# Last updated on ${project.version}-b${BUILD_NUMBER}
|
||||
#
|
||||
# Any file named repair.*.yml in the mcmmmo folder will be loaded as a repair config
|
||||
# All repair configs have a main section titled "Repairables"
|
||||
# Afterwards, all sub-items are considered a Repairable to be loaded. The names of each subitem should be the exact material name.
|
||||
# The bare minimum of a Repairable is that it have a RepairMaterial and a MaximumDurability
|
||||
#
|
||||
# ItemType: This is the type of item to be repaired, this is only important to permissions.
|
||||
## Valid values are ARMOR, TOOL, and OTHER.
|
||||
## This defaults to OTHER.
|
||||
#
|
||||
# MaterialType: This is the type of the material of the item to be repaired, this is only important for permissions.
|
||||
## Valid values are STRING, LEATHER, WOOD, STONE, IRON, GOLD, DIAMOND, and OTHER
|
||||
## This defaults to OTHER.
|
||||
#
|
||||
# RepairMaterial: This is the material name of the item used to repair this repairable.
|
||||
## This is required to be set.
|
||||
#
|
||||
# RepairMaterialMetadata: This is the metadata of the item used to repair this repairable.
|
||||
## A value of -1 means to ignore all metadata when repairing.
|
||||
## This defaults to -1
|
||||
#
|
||||
# MaximumDurability: This is the maximum durability of the item.
|
||||
## This is required to be set.
|
||||
#
|
||||
# MinimumLevel: This is the minimum repair level needed to repair this item.
|
||||
## Valid values are => 0
|
||||
## This defaults to 0
|
||||
#
|
||||
# MinimumQuantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
|
||||
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
|
||||
## This defaults to 2
|
||||
#
|
||||
# XpMultiplier: This is the amount to multiply the xp bonus by.
|
||||
## This defaults to 1
|
||||
#
|
||||
#
|
||||
# The following is an example of a repair.*.yml config which adds the ability to repair Chainmail armor using fire.
|
||||
#
|
||||
#
|
||||
###
|
||||
Repairables:
|
||||
#
|
||||
# Chainmail repairables
|
||||
###
|
||||
# Armor
|
||||
CHAINMAIL_HELMET:
|
||||
RepairMaterial: FIRE
|
||||
XpMultiplier: 2
|
||||
CHAINMAIL_CHESTPLATE:
|
||||
RepairMaterial: FIRE
|
||||
XpMultiplier: 2
|
||||
CHAINMAIL_LEGGINGS:
|
||||
RepairMaterial: FIRE
|
||||
XpMultiplier: 2
|
||||
CHAINMAIL_BOOTS:
|
||||
RepairMaterial: FIRE
|
||||
XpMultiplier: 2
|
||||
198
pom.xml
198
pom.xml
@@ -1,10 +1,8 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||
<artifactId>mcMMO</artifactId>
|
||||
<version>2.2.046</version>
|
||||
<version>2.2.015-SNAPSHOT</version>
|
||||
<name>mcMMO</name>
|
||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||
<scm>
|
||||
@@ -15,11 +13,6 @@
|
||||
</scm>
|
||||
|
||||
<properties>
|
||||
<!-- <spigot.version>1.19-R0.1-SNAPSHOT</spigot.version>-->
|
||||
<spigot.version>1.21.11-R0.1-SNAPSHOT</spigot.version>
|
||||
<kyori.adventure.version>4.23.0</kyori.adventure.version>
|
||||
<kyori.adventure.platform.version>4.4.1-SNAPSHOT</kyori.adventure.platform.version>
|
||||
<kyori.option.version>1.1.0</kyori.option.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
@@ -80,15 +73,6 @@
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.3.1</version>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<propertiesEncoding>UTF-8</propertiesEncoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.2.5</version>
|
||||
@@ -102,11 +86,13 @@
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>3.2.5</version>
|
||||
|
||||
<configuration>
|
||||
<junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
|
||||
<trimStackTrace>false</trimStackTrace>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
@@ -163,7 +149,6 @@
|
||||
<include>net.kyori:adventure-platform-facet</include>
|
||||
<include>net.kyori:adventure-platform-viaversion</include>
|
||||
<include>net.kyori:adventure-text-serializer-bungeecord</include>
|
||||
<include>net.kyori:adventure-text-serializer-commons</include>
|
||||
<include>net.kyori:adventure-text-serializer-gson</include>
|
||||
<include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
|
||||
<include>net.kyori:adventure-text-serializer-json</include>
|
||||
@@ -184,13 +169,11 @@
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>co.aikar.commands</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.acf
|
||||
</shadedPattern> <!-- Replace this -->
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.acf</shadedPattern> <!-- Replace this -->
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>co.aikar.locales</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.locales
|
||||
</shadedPattern> <!-- Replace this -->
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.locales</shadedPattern> <!-- Replace this -->
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.apache.commons.logging</pattern>
|
||||
@@ -198,8 +181,7 @@
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.apache.juli</pattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat.juli
|
||||
</shadedPattern>
|
||||
<shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat.juli</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.apache.tomcat</pattern>
|
||||
@@ -241,6 +223,11 @@
|
||||
</pluginRepositories>
|
||||
|
||||
<repositories>
|
||||
<!-- Protocol Lib Repository -->
|
||||
<repository>
|
||||
<id>dmulloy2-repo</id>
|
||||
<url>https://repo.dmulloy2.net/repository/public/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
@@ -269,19 +256,15 @@
|
||||
<id>placeholderapi</id>
|
||||
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>devmart-other</id>
|
||||
<url>https://nexuslite.gcnt.net/repos/other/</url>
|
||||
</repository>
|
||||
<!-- MockBukkit -->
|
||||
<repository>
|
||||
<id>papermc</id>
|
||||
<url>https://repo.papermc.io/repository/maven-public/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>tcoded-releases</id>
|
||||
<url>https://repo.tcoded.com/releases/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
|
||||
@@ -292,9 +275,9 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.dmulloy2</groupId>
|
||||
<groupId>com.comphenix.protocol</groupId>
|
||||
<artifactId>ProtocolLib</artifactId>
|
||||
<version>5.3.0</version>
|
||||
<version>LATEST</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -306,7 +289,7 @@
|
||||
<dependency>
|
||||
<groupId>me.clip</groupId>
|
||||
<artifactId>placeholderapi</artifactId>
|
||||
<version>2.11.6</version>
|
||||
<version>2.11.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -317,67 +300,67 @@
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-bungeecord</artifactId>
|
||||
<version>${kyori.adventure.platform.version}</version>
|
||||
<version>4.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-gson</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-json</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-api</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-nbt</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-key</artifactId>
|
||||
<version>${kyori.adventure.version}</version>
|
||||
<version>4.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-api</artifactId>
|
||||
<version>${kyori.adventure.platform.version}</version>
|
||||
<version>4.3.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-bukkit</artifactId>
|
||||
<version>${kyori.adventure.platform.version}</version>
|
||||
<version>LATEST</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-facet</artifactId>
|
||||
<version>${kyori.adventure.platform.version}</version>
|
||||
<version>4.3.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-platform-viaversion</artifactId>
|
||||
<version>${kyori.adventure.platform.version}</version>
|
||||
<version>4.3.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>option</artifactId>
|
||||
<version>${kyori.option.version}</version>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.scm</groupId>
|
||||
@@ -390,15 +373,10 @@
|
||||
<version>3.0.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>io.papermc.paper</groupId>-->
|
||||
<!-- <artifactId>paper-api</artifactId>-->
|
||||
<!-- <version>1.21.8-R0.1-SNAPSHOT</version>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>${spigot.version}</version>
|
||||
<version>1.21-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -431,76 +409,10 @@
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- JUnit 5 -->
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<version>5.11.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Testcontainers core -->
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers</artifactId>
|
||||
<version>2.0.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Testcontainers JUnit Jupiter integration -->
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-junit-jupiter</artifactId>
|
||||
<version>2.0.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Log4j core for tests -->
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-core</artifactId>
|
||||
<version>2.25.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Log4j API -->
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-api</artifactId>
|
||||
<version>2.25.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-slf4j-impl</artifactId>
|
||||
<version>2.25.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- MySQL Testcontainers module -->
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-mysql</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- MariaDB Testcontainers module -->
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-mariadb</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- MySQL JDBC driver -->
|
||||
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>9.5.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- MariaDB JDBC driver -->
|
||||
<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
|
||||
<dependency>
|
||||
<groupId>org.mariadb.jdbc</groupId>
|
||||
<artifactId>mariadb-java-client</artifactId>
|
||||
<version>3.5.6</version>
|
||||
<version>5.11.0-M2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -518,7 +430,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat</groupId>
|
||||
<artifactId>tomcat-jdbc</artifactId>
|
||||
<version>11.0.14</version>
|
||||
<version>10.1.24</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -529,26 +441,38 @@
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>33.2.0-jre
|
||||
</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
|
||||
<version>33.2.0-jre</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.tcoded</groupId>
|
||||
<artifactId>FoliaLib</artifactId>
|
||||
<version>0.5.1</version>
|
||||
<version>0.3.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.apache.logging.log4j</groupId>-->
|
||||
<!-- <artifactId>log4j-core</artifactId>-->
|
||||
<!-- <version>2.22.1</version> <!– Make sure this version matches the other log4j dependencies –>-->
|
||||
<!-- <scope>test</scope>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.apache.logging.log4j</groupId>-->
|
||||
<!-- <artifactId>log4j-api</artifactId>-->
|
||||
<!-- <version>2.22.1</version>-->
|
||||
<!-- <scope>test</scope>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.apache.logging.log4j</groupId>-->
|
||||
<!-- <artifactId>log4j-slf4j-impl</artifactId>-->
|
||||
<!-- <version>2.22.1</version>-->
|
||||
<!-- <scope>test</scope>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.github.seeseemelk</groupId>-->
|
||||
<!-- <artifactId>MockBukkit-v1.19</artifactId>-->
|
||||
<!-- <version>LATEST</version>-->
|
||||
<!-- <scope>test</scope>-->
|
||||
<!-- </dependency>-->
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-bom</artifactId>
|
||||
<version>2.0.2</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</project>
|
||||
|
||||
@@ -7,48 +7,42 @@ import com.gmail.nossr50.util.player.UserManager;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class AbilityAPI {
|
||||
private AbilityAPI() {
|
||||
}
|
||||
private AbilityAPI() {}
|
||||
|
||||
public static boolean berserkEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.BERSERK);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
|
||||
}
|
||||
|
||||
public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.GIGA_DRILL_BREAKER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER);
|
||||
}
|
||||
|
||||
public static boolean greenTerraEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.GREEN_TERRA);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GREEN_TERRA);
|
||||
}
|
||||
|
||||
public static boolean serratedStrikesEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.SERRATED_STRIKES);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SERRATED_STRIKES);
|
||||
}
|
||||
|
||||
public static boolean skullSplitterEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.SKULL_SPLITTER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SKULL_SPLITTER);
|
||||
}
|
||||
|
||||
public static boolean superBreakerEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.SUPER_BREAKER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SUPER_BREAKER);
|
||||
}
|
||||
|
||||
public static boolean treeFellerEnabled(Player player) {
|
||||
return hasAbilityEnabled(player, SuperAbilityType.TREE_FELLER);
|
||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.TREE_FELLER);
|
||||
}
|
||||
|
||||
public static boolean isAnyAbilityEnabled(Player player) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if(mmoPlayer == null) {
|
||||
return false;
|
||||
}
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
|
||||
for (SuperAbilityType ability : SuperAbilityType.values()) {
|
||||
if (mmoPlayer.getAbilityMode(ability)) {
|
||||
if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -56,62 +50,43 @@ public final class AbilityAPI {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean hasAbilityEnabled(Player player, SuperAbilityType ability) {
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
return mmoPlayer != null && mmoPlayer.getAbilityMode(ability);
|
||||
}
|
||||
|
||||
public static void resetCooldowns(Player player) {
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if(mmoPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mmoPlayer.resetCooldowns();
|
||||
UserManager.getPlayer(player).resetCooldowns();
|
||||
}
|
||||
|
||||
public static void setBerserkCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.BERSERK, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.BERSERK, cooldown);
|
||||
}
|
||||
|
||||
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.GIGA_DRILL_BREAKER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GIGA_DRILL_BREAKER, cooldown);
|
||||
}
|
||||
|
||||
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.GREEN_TERRA, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GREEN_TERRA, cooldown);
|
||||
}
|
||||
|
||||
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.SERRATED_STRIKES, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SERRATED_STRIKES, cooldown);
|
||||
}
|
||||
|
||||
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.SKULL_SPLITTER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SKULL_SPLITTER, cooldown);
|
||||
}
|
||||
|
||||
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.SUPER_BREAKER, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SUPER_BREAKER, cooldown);
|
||||
}
|
||||
|
||||
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
||||
setAbilityCooldown(player, SuperAbilityType.TREE_FELLER, cooldown);
|
||||
}
|
||||
|
||||
private static void setAbilityCooldown(Player player, SuperAbilityType ability, long cooldown) {
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if(mmoPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mmoPlayer.setAbilityDATS(ability, cooldown);
|
||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.TREE_FELLER, cooldown);
|
||||
}
|
||||
|
||||
public static boolean isBleeding(LivingEntity entity) {
|
||||
if (entity.isValid()) {
|
||||
return entity.hasMetadata(MetadataConstants.METADATA_KEY_RUPTURE);
|
||||
if (entity.hasMetadata(MetadataConstants.METADATA_KEY_RUPTURE)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -6,8 +6,63 @@ import com.gmail.nossr50.util.player.UserManager;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public final class ChatAPI {
|
||||
private ChatAPI() {
|
||||
}
|
||||
private ChatAPI() {}
|
||||
|
||||
// /**
|
||||
// * Send a message to all members of a party
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender
|
||||
// * @param displayName The display name of the sender
|
||||
// * @param party The name of the party to send to
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
|
||||
// getPartyChatManager(plugin, party).handleChat(sender, displayName, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to all members of a party
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender to display in the chat
|
||||
// * @param party The name of the party to send to
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
|
||||
// getPartyChatManager(plugin, party).handleChat(sender, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to administrators
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender
|
||||
// * @param displayName The display name of the sender
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
|
||||
// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, displayName, message);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Send a message to administrators
|
||||
// * </br>
|
||||
// * This function is designed for API usage.
|
||||
// *
|
||||
// * @param plugin The plugin sending the message
|
||||
// * @param sender The name of the sender to display in the chat
|
||||
// * @param message The message to send
|
||||
// */
|
||||
// public static void sendAdminChat(Plugin plugin, String sender, String message) {
|
||||
// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, message);
|
||||
// }
|
||||
|
||||
/**
|
||||
* Check if a player is currently talking in party chat.
|
||||
@@ -55,8 +110,7 @@ public final class ChatAPI {
|
||||
* @param player The player to toggle party chat on.
|
||||
*/
|
||||
public static void togglePartyChat(Player player) {
|
||||
mcMMO.p.getChatManager()
|
||||
.setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.PARTY);
|
||||
mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.PARTY);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,8 +119,7 @@ public final class ChatAPI {
|
||||
* @param playerName The name of the player to toggle party chat on.
|
||||
*/
|
||||
public static void togglePartyChat(String playerName) {
|
||||
mcMMO.p.getChatManager()
|
||||
.setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
|
||||
mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,8 +128,7 @@ public final class ChatAPI {
|
||||
* @param player The player to toggle admin chat on.
|
||||
*/
|
||||
public static void toggleAdminChat(Player player) {
|
||||
mcMMO.p.getChatManager()
|
||||
.setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.ADMIN);
|
||||
mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.ADMIN);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -85,7 +137,6 @@ public final class ChatAPI {
|
||||
* @param playerName The name of the player to toggle party chat on.
|
||||
*/
|
||||
public static void toggleAdminChat(String playerName) {
|
||||
mcMMO.p.getChatManager()
|
||||
.setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
|
||||
mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,21 +2,19 @@ package com.gmail.nossr50.api;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class DatabaseAPI {
|
||||
private DatabaseAPI() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a player exists in the mcMMO Database
|
||||
*
|
||||
* @param offlinePlayer target player
|
||||
* @return true if the player exists in the DB, false if they do not
|
||||
*/
|
||||
public static boolean doesPlayerExistInDB(@NotNull OfflinePlayer offlinePlayer) {
|
||||
public boolean doesPlayerExistInDB(@NotNull OfflinePlayer offlinePlayer) {
|
||||
PlayerProfile playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(offlinePlayer);
|
||||
|
||||
return playerProfile.isLoaded();
|
||||
@@ -24,11 +22,10 @@ public class DatabaseAPI {
|
||||
|
||||
/**
|
||||
* Checks if a player exists in the mcMMO Database
|
||||
*
|
||||
* @param uuid target player
|
||||
* @return true if the player exists in the DB, false if they do not
|
||||
*/
|
||||
public static boolean doesPlayerExistInDB(@NotNull UUID uuid) {
|
||||
public boolean doesPlayerExistInDB(@NotNull UUID uuid) {
|
||||
PlayerProfile playerProfile = null;
|
||||
try {
|
||||
playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||
@@ -41,11 +38,10 @@ public class DatabaseAPI {
|
||||
|
||||
/**
|
||||
* Checks if a player exists in the mcMMO Database
|
||||
*
|
||||
* @param playerName target player
|
||||
* @return true if the player exists in the DB, false if they do not
|
||||
*/
|
||||
public static boolean doesPlayerExistInDB(@NotNull String playerName) {
|
||||
public boolean doesPlayerExistInDB(@NotNull String playerName) {
|
||||
PlayerProfile playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName);
|
||||
|
||||
return playerProfile.isLoaded();
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
package com.gmail.nossr50.api;
|
||||
|
||||
import static com.gmail.nossr50.datatypes.experience.XPGainReason.PVE;
|
||||
import static com.gmail.nossr50.datatypes.experience.XPGainSource.CUSTOM;
|
||||
import static com.gmail.nossr50.datatypes.experience.XPGainSource.SELF;
|
||||
|
||||
import com.gmail.nossr50.api.exceptions.InvalidFormulaTypeException;
|
||||
import com.gmail.nossr50.api.exceptions.InvalidPlayerException;
|
||||
import com.gmail.nossr50.api.exceptions.InvalidSkillException;
|
||||
import com.gmail.nossr50.api.exceptions.InvalidXPGainReasonException;
|
||||
import com.gmail.nossr50.api.exceptions.McMMOPlayerNotFoundException;
|
||||
import com.gmail.nossr50.api.exceptions.*;
|
||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainSource;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
@@ -19,21 +12,21 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
import com.gmail.nossr50.util.skills.SkillTools;
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
|
||||
public final class ExperienceAPI {
|
||||
private ExperienceAPI() {
|
||||
}
|
||||
private ExperienceAPI() {}
|
||||
|
||||
/**
|
||||
* Returns whether given string is a valid type of skill suitable for the other API calls in
|
||||
* this class.
|
||||
* Returns whether given string is a valid type of skill suitable for the
|
||||
* other API calls in this class.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -45,40 +38,38 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the task that gives combat XP. Processes combat XP like mcMMO normally would, so mcMMO
|
||||
* will check whether the entity should reward XP when giving out the XP
|
||||
* Start the task that gives combat XP.
|
||||
* Processes combat XP like mcMMO normally would, so mcMMO will check whether the entity should reward XP when giving out the XP
|
||||
*
|
||||
* @param mmoPlayer The attacking player
|
||||
* @param mcMMOPlayer The attacking player
|
||||
* @param target The defending entity
|
||||
* @param primarySkillType The skill being used
|
||||
* @param multiplier final XP result will be multiplied by this
|
||||
* @deprecated Draft API
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addCombatXP(McMMOPlayer mmoPlayer, LivingEntity target,
|
||||
PrimarySkillType primarySkillType,
|
||||
double multiplier) {
|
||||
CombatUtils.processCombatXP(mmoPlayer, target, primarySkillType, multiplier);
|
||||
public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType, double multiplier) {
|
||||
CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType, multiplier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the task that gives combat XP. Processes combat XP like mcMMO normally would, so mcMMO
|
||||
* will check whether the entity should reward XP when giving out the XP
|
||||
* Start the task that gives combat XP.
|
||||
* Processes combat XP like mcMMO normally would, so mcMMO will check whether the entity should reward XP when giving out the XP
|
||||
*
|
||||
* @param mmoPlayer The attacking player
|
||||
* @param mcMMOPlayer The attacking player
|
||||
* @param target The defending entity
|
||||
* @param primarySkillType The skill being used
|
||||
* @deprecated Draft API
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addCombatXP(McMMOPlayer mmoPlayer, LivingEntity target,
|
||||
PrimarySkillType primarySkillType) {
|
||||
CombatUtils.processCombatXP(mmoPlayer, target, primarySkillType);
|
||||
public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType) {
|
||||
CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the given skill type string is both valid and not a child skill. (Child
|
||||
* skills have no XP of their own, and their level is derived from the parent(s).)
|
||||
* Returns whether the given skill type string is both valid and not a
|
||||
* child skill. (Child skills have no XP of their own, and their level is
|
||||
* derived from the parent(s).)
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -86,7 +77,7 @@ public final class ExperienceAPI {
|
||||
* @return true if this is a valid, non-child mcMMO skill
|
||||
*/
|
||||
public static boolean isNonChildSkill(String skillType) {
|
||||
final PrimarySkillType skill = mcMMO.p.getSkillTools().matchSkill(skillType);
|
||||
PrimarySkillType skill = mcMMO.p.getSkillTools().matchSkill(skillType);
|
||||
|
||||
return skill != null && !SkillTools.isChildSkill(skill);
|
||||
}
|
||||
@@ -104,6 +95,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
@Deprecated
|
||||
@@ -120,6 +112,7 @@ public final class ExperienceAPI {
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
@@ -137,19 +130,17 @@ public final class ExperienceAPI {
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
* @param isUnshared true if the XP cannot be shared with party members
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason,
|
||||
boolean isUnshared) {
|
||||
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) {
|
||||
if (isUnshared) {
|
||||
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP,
|
||||
getXPGainReason(xpGainReason), CUSTOM);
|
||||
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
return;
|
||||
}
|
||||
|
||||
getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason),
|
||||
CUSTOM);
|
||||
getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,8 +148,8 @@ public final class ExperienceAPI {
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @deprecated We're using float for our XP values now replaced by
|
||||
* {@link #addRawXPOffline(String playerName, String skillType, float XP)}
|
||||
* @deprecated We're using float for our XP values now
|
||||
* replaced by {@link #addRawXPOffline(String playerName, String skillType, float XP)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addRawXPOffline(String playerName, String skillType, int XP) {
|
||||
@@ -170,13 +161,15 @@ public final class ExperienceAPI {
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @deprecated We're using uuids to get an offline player
|
||||
* replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
|
||||
*
|
||||
* @param playerName The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @deprecated We're using uuids to get an offline player replaced by
|
||||
* {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addRawXPOffline(String playerName, String skillType, float XP) {
|
||||
@@ -191,6 +184,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The UUID of player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@@ -206,6 +200,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
@Deprecated
|
||||
@@ -222,15 +217,12 @@ public final class ExperienceAPI {
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addMultipliedXP(Player player, String skillType, int XP,
|
||||
String xpGainReason) {
|
||||
getPlayer(player).applyXpGain(
|
||||
getSkillType(skillType),
|
||||
(int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()),
|
||||
getXPGainReason(xpGainReason), CUSTOM);
|
||||
public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
|
||||
getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,14 +233,13 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addMultipliedXPOffline(String playerName, String skillType, int XP) {
|
||||
addOfflineXP(
|
||||
playerName, getSkillType(skillType),
|
||||
(int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
||||
addOfflineXP(playerName, getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -259,6 +250,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
@Deprecated
|
||||
@@ -275,6 +267,7 @@ public final class ExperienceAPI {
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
@@ -292,26 +285,20 @@ public final class ExperienceAPI {
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
* @param isUnshared true if the XP cannot be shared with party members
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason,
|
||||
boolean isUnshared) {
|
||||
final PrimarySkillType skill = getSkillType(skillType);
|
||||
public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
|
||||
PrimarySkillType skill = getSkillType(skillType);
|
||||
|
||||
final ExperienceConfig expConf = ExperienceConfig.getInstance();
|
||||
if (isUnshared) {
|
||||
getPlayer(player).beginUnsharedXpGain(
|
||||
skill, (int) (XP / expConf.getFormulaSkillModifier(
|
||||
skill) * expConf.getExperienceGainsGlobalMultiplier()),
|
||||
getXPGainReason(xpGainReason), CUSTOM);
|
||||
getPlayer(player).beginUnsharedXpGain(skill,
|
||||
(int) (XP / ExperienceConfig.getInstance().getFormulaSkillModifier(skill) * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
return;
|
||||
}
|
||||
|
||||
getPlayer(player).applyXpGain(
|
||||
skill, (int) (XP / expConf.getFormulaSkillModifier(
|
||||
skill) * expConf.getExperienceGainsGlobalMultiplier()),
|
||||
getXPGainReason(xpGainReason), CUSTOM);
|
||||
getPlayer(player).applyXpGain(skill, (int) (XP / ExperienceConfig.getInstance().getFormulaSkillModifier(skill) * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -322,29 +309,27 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addModifiedXPOffline(String playerName, String skillType, int XP) {
|
||||
final PrimarySkillType skill = getSkillType(skillType);
|
||||
PrimarySkillType skill = getSkillType(skillType);
|
||||
|
||||
addOfflineXP(
|
||||
playerName, skill,
|
||||
(int) (XP / ExperienceConfig.getInstance().getFormulaSkillModifier(
|
||||
skill) * ExperienceConfig.getInstance()
|
||||
.getExperienceGainsGlobalMultiplier()));
|
||||
addOfflineXP(playerName, skill, (int) (XP / ExperienceConfig.getInstance().getFormulaSkillModifier(skill) * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, and
|
||||
* party sharing.
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills,
|
||||
* and party sharing.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param player The player to add XP to
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
@Deprecated
|
||||
@@ -353,8 +338,8 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, and
|
||||
* party sharing.
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills,
|
||||
* and party sharing.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -362,6 +347,7 @@ public final class ExperienceAPI {
|
||||
* @param skillType The skill to add XP to
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
@@ -370,8 +356,8 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, and
|
||||
* party sharing.
|
||||
* Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills,
|
||||
* and party sharing.
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -380,19 +366,17 @@ public final class ExperienceAPI {
|
||||
* @param XP The amount of XP to add
|
||||
* @param xpGainReason The reason to gain XP
|
||||
* @param isUnshared true if the XP cannot be shared with party members
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addXP(Player player, String skillType, int XP, String xpGainReason,
|
||||
boolean isUnshared) {
|
||||
public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
|
||||
if (isUnshared) {
|
||||
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP,
|
||||
getXPGainReason(xpGainReason), CUSTOM);
|
||||
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
return;
|
||||
}
|
||||
|
||||
getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason),
|
||||
CUSTOM);
|
||||
getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -403,6 +387,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@@ -418,6 +403,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -435,6 +421,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -451,12 +438,12 @@ public final class ExperienceAPI {
|
||||
* @param offlinePlayer The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getOfflineXP(@NotNull OfflinePlayer offlinePlayer, @NotNull String skillType)
|
||||
throws InvalidPlayerException {
|
||||
public static int getOfflineXP(@NotNull OfflinePlayer offlinePlayer, @NotNull String skillType) throws InvalidPlayerException {
|
||||
return getOfflineProfile(offlinePlayer).getSkillXpLevel(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
@@ -468,6 +455,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@@ -483,6 +471,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -500,6 +489,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -516,22 +506,18 @@ public final class ExperienceAPI {
|
||||
* @param offlinePlayer The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP in a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRaw(@NotNull OfflinePlayer offlinePlayer,
|
||||
@NotNull String skillType)
|
||||
throws InvalidPlayerException, UnsupportedOperationException, InvalidSkillException {
|
||||
public static float getOfflineXPRaw(@NotNull OfflinePlayer offlinePlayer, @NotNull String skillType) throws InvalidPlayerException, UnsupportedOperationException, InvalidSkillException {
|
||||
return getOfflineProfile(offlinePlayer).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
public static float getOfflineXPRaw(@NotNull OfflinePlayer offlinePlayer,
|
||||
@NotNull PrimarySkillType skillType)
|
||||
throws InvalidPlayerException, UnsupportedOperationException {
|
||||
if (SkillTools.isChildSkill(skillType)) {
|
||||
public static float getOfflineXPRaw(@NotNull OfflinePlayer offlinePlayer, @NotNull PrimarySkillType skillType) throws InvalidPlayerException, UnsupportedOperationException {
|
||||
if (SkillTools.isChildSkill(skillType))
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
return getOfflineProfile(offlinePlayer).getSkillXpLevelRaw(skillType);
|
||||
}
|
||||
@@ -544,6 +530,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get the XP amount for
|
||||
* @param skillType The skill to get the XP amount for
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@@ -559,6 +546,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -576,6 +564,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -592,13 +581,12 @@ public final class ExperienceAPI {
|
||||
* @param offlinePlayer The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the total amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getOfflineXPToNextLevel(@NotNull OfflinePlayer offlinePlayer,
|
||||
@NotNull String skillType)
|
||||
throws UnsupportedOperationException, InvalidSkillException, InvalidPlayerException {
|
||||
public static int getOfflineXPToNextLevel(@NotNull OfflinePlayer offlinePlayer, @NotNull String skillType) throws UnsupportedOperationException, InvalidSkillException, InvalidPlayerException {
|
||||
return getOfflineProfile(offlinePlayer).getXpToLevel(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
@@ -610,13 +598,14 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get the XP amount for
|
||||
* @param skillType The skill to get the XP amount for
|
||||
* @return the amount of XP remaining until the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static int getXPRemaining(Player player, String skillType) {
|
||||
final PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
|
||||
final PlayerProfile profile = getPlayer(player).getProfile();
|
||||
PlayerProfile profile = getPlayer(player).getProfile();
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||
}
|
||||
@@ -629,14 +618,15 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getOfflineXPRemaining(String playerName, String skillType) {
|
||||
final PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
final PlayerProfile profile = getOfflineProfile(playerName);
|
||||
PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill);
|
||||
}
|
||||
@@ -649,13 +639,14 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRemaining(UUID uuid, String skillType) {
|
||||
final PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
final PlayerProfile profile = getOfflineProfile(uuid);
|
||||
PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(uuid);
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevelRaw(skill);
|
||||
}
|
||||
@@ -668,14 +659,14 @@ public final class ExperienceAPI {
|
||||
* @param offlinePlayer The player to get XP for
|
||||
* @param skillType The skill to get XP for
|
||||
* @return the amount of XP needed to reach the next level
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRemaining(OfflinePlayer offlinePlayer, String skillType)
|
||||
throws InvalidSkillException, InvalidPlayerException, UnsupportedOperationException {
|
||||
final PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
final PlayerProfile profile = getOfflineProfile(offlinePlayer);
|
||||
public static float getOfflineXPRemaining(OfflinePlayer offlinePlayer, String skillType) throws InvalidSkillException, InvalidPlayerException, UnsupportedOperationException {
|
||||
PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(offlinePlayer);
|
||||
|
||||
return profile.getXpToLevel(skill) - profile.getSkillXpLevelRaw(skill);
|
||||
}
|
||||
@@ -688,6 +679,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to add levels to
|
||||
* @param skillType Type of skill to add levels to
|
||||
* @param levels Number of levels to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
public static void addLevel(Player player, String skillType, int levels) {
|
||||
@@ -702,13 +694,14 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to add levels to
|
||||
* @param skillType Type of skill to add levels to
|
||||
* @param levels Number of levels to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addLevelOffline(String playerName, String skillType, int levels) {
|
||||
final PlayerProfile profile = getOfflineProfile(playerName);
|
||||
final PrimarySkillType skill = getSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
PrimarySkillType skill = getSkillType(skillType);
|
||||
|
||||
if (SkillTools.isChildSkill(skill)) {
|
||||
var parentSkills = mcMMO.p.getSkillTools().getChildSkillParents(skill);
|
||||
@@ -733,12 +726,13 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to add levels to
|
||||
* @param skillType Type of skill to add levels to
|
||||
* @param levels Number of levels to add
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
public static void addLevelOffline(UUID uuid, String skillType, int levels) {
|
||||
final PlayerProfile profile = getOfflineProfile(uuid);
|
||||
final PrimarySkillType skill = getSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(uuid);
|
||||
PrimarySkillType skill = getSkillType(skillType);
|
||||
|
||||
if (SkillTools.isChildSkill(skill)) {
|
||||
var parentSkills = mcMMO.p.getSkillTools().getChildSkillParents(skill);
|
||||
@@ -763,6 +757,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get the level for
|
||||
* @param skillType The skill to get the level for
|
||||
* @return the level of a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @deprecated Use getLevel(Player player, PrimarySkillType skillType) instead
|
||||
*/
|
||||
@@ -779,6 +774,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to get the level for
|
||||
* @param skillType The skill to get the level for
|
||||
* @return the level of a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
public static int getLevel(Player player, PrimarySkillType skillType) {
|
||||
@@ -793,6 +789,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to get the level for
|
||||
* @param skillType The skill to get the level for
|
||||
* @return the level of a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@@ -808,6 +805,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to get the level for
|
||||
* @param skillType The skill to get the level for
|
||||
* @return the level of a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@@ -834,12 +832,13 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param playerName The player to get the power level for
|
||||
* @return the power level of the player
|
||||
*
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getPowerLevelOffline(String playerName) {
|
||||
int powerLevel = 0;
|
||||
final PlayerProfile profile = getOfflineProfile(playerName);
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
|
||||
for (PrimarySkillType type : SkillTools.NON_CHILD_SKILLS) {
|
||||
powerLevel += profile.getSkillLevel(type);
|
||||
@@ -855,11 +854,12 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param uuid The player to get the power level for
|
||||
* @return the power level of the player
|
||||
*
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
public static int getPowerLevelOffline(UUID uuid) {
|
||||
int powerLevel = 0;
|
||||
final PlayerProfile profile = getOfflineProfile(uuid);
|
||||
PlayerProfile profile = getOfflineProfile(uuid);
|
||||
|
||||
for (PrimarySkillType type : SkillTools.NON_CHILD_SKILLS) {
|
||||
powerLevel += profile.getSkillLevel(type);
|
||||
@@ -875,6 +875,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param skillType The skill to get the level cap for
|
||||
* @return the level cap of a given skill
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
public static int getLevelCap(String skillType) {
|
||||
@@ -899,16 +900,16 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param playerName The name of the player to check
|
||||
* @param skillType The skill to check
|
||||
* @return the position on the leaderboard
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*
|
||||
* @return the position on the leaderboard
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getPlayerRankSkill(String playerName, String skillType) {
|
||||
return mcMMO.getDatabaseManager()
|
||||
.readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(
|
||||
getNonChildSkillType(skillType));
|
||||
return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -918,15 +919,15 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param uuid The name of the player to check
|
||||
* @param skillType The skill to check
|
||||
* @return the position on the leaderboard
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*
|
||||
* @return the position on the leaderboard
|
||||
*/
|
||||
public static int getPlayerRankSkill(UUID uuid, String skillType) {
|
||||
return mcMMO.getDatabaseManager()
|
||||
.readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(
|
||||
getNonChildSkillType(skillType));
|
||||
return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -935,14 +936,14 @@ public final class ExperienceAPI {
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param playerName The name of the player to check
|
||||
* @return the position on the power level leaderboard
|
||||
*
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*
|
||||
* @return the position on the power level leaderboard
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getPlayerRankOverall(String playerName) {
|
||||
return mcMMO.getDatabaseManager()
|
||||
.readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(
|
||||
null);
|
||||
return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -951,12 +952,13 @@ public final class ExperienceAPI {
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param uuid The name of the player to check
|
||||
* @return the position on the power level leaderboard
|
||||
*
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*
|
||||
* @return the position on the power level leaderboard
|
||||
*/
|
||||
public static int getPlayerRankOverall(UUID uuid) {
|
||||
return mcMMO.getDatabaseManager()
|
||||
.readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(null);
|
||||
return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -967,6 +969,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to set the level of
|
||||
* @param skillType The skill to set the level for
|
||||
* @param skillLevel The value to set the level to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
public static void setLevel(Player player, String skillType, int skillLevel) {
|
||||
@@ -981,6 +984,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to set the level of
|
||||
* @param skillType The skill to set the level for
|
||||
* @param skillLevel The value to set the level to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@@ -997,6 +1001,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to set the level of
|
||||
* @param skillType The skill to set the level for
|
||||
* @param skillLevel The value to set the level to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
@@ -1012,6 +1017,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to set the XP of
|
||||
* @param skillType The skill to set the XP for
|
||||
* @param newValue The value to set the XP to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@@ -1027,6 +1033,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to set the XP of
|
||||
* @param skillType The skill to set the XP for
|
||||
* @param newValue The value to set the XP to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -1044,6 +1051,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to set the XP of
|
||||
* @param skillType The skill to set the XP for
|
||||
* @param newValue The value to set the XP to
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -1060,6 +1068,7 @@ public final class ExperienceAPI {
|
||||
* @param player The player to change the XP of
|
||||
* @param skillType The skill to change the XP for
|
||||
* @param xp The amount of XP to remove
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@@ -1075,6 +1084,7 @@ public final class ExperienceAPI {
|
||||
* @param playerName The player to change the XP of
|
||||
* @param skillType The skill to change the XP for
|
||||
* @param xp The amount of XP to remove
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -1092,6 +1102,7 @@ public final class ExperienceAPI {
|
||||
* @param uuid The player to change the XP of
|
||||
* @param skillType The skill to change the XP for
|
||||
* @param xp The amount of XP to remove
|
||||
*
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
@@ -1106,11 +1117,11 @@ public final class ExperienceAPI {
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @param level The level to get the amount of XP for
|
||||
*
|
||||
* @throws InvalidFormulaTypeException if the given formulaType is not valid
|
||||
*/
|
||||
public static int getXpNeededToLevel(int level) {
|
||||
return mcMMO.getFormulaManager()
|
||||
.getXPtoNextLevel(level, ExperienceConfig.getInstance().getFormulaType());
|
||||
return mcMMO.getFormulaManager().getXPtoNextLevel(level, ExperienceConfig.getInstance().getFormulaType());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1120,6 +1131,7 @@ public final class ExperienceAPI {
|
||||
*
|
||||
* @param level The level to get the amount of XP for
|
||||
* @param formulaType The formula type to get the amount of XP for
|
||||
*
|
||||
* @throws InvalidFormulaTypeException if the given formulaType is not valid
|
||||
*/
|
||||
public static int getXpNeededToLevel(int level, String formulaType) {
|
||||
@@ -1127,102 +1139,76 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the
|
||||
* blocks given
|
||||
*
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the blocks given
|
||||
* @param blockStates the blocks to reward XP for
|
||||
* @param mmoPlayer the target player
|
||||
* @param mcMMOPlayer the target player
|
||||
*/
|
||||
public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mmoPlayer) {
|
||||
for (BlockState bs : blockStates) {
|
||||
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||
public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer) {
|
||||
for(BlockState bs : blockStates) {
|
||||
for(PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||
if (ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) {
|
||||
mmoPlayer.applyXpGain(
|
||||
skillType,
|
||||
ExperienceConfig.getInstance().getXp(skillType, bs.getType()), PVE,
|
||||
SELF);
|
||||
mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the
|
||||
* blocks given if it matches the given skillType
|
||||
*
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType
|
||||
* @param blockStates the blocks to reward XP for
|
||||
* @param mmoPlayer the target player
|
||||
* @param mcMMOPlayer the target player
|
||||
* @param skillType target primary skill
|
||||
*/
|
||||
public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates,
|
||||
McMMOPlayer mmoPlayer,
|
||||
PrimarySkillType skillType) {
|
||||
for (BlockState bs : blockStates) {
|
||||
public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
||||
for(BlockState bs : blockStates) {
|
||||
if (ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) {
|
||||
mmoPlayer.applyXpGain(
|
||||
skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()),
|
||||
PVE,
|
||||
SELF);
|
||||
mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the
|
||||
* blocks given
|
||||
*
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the blocks given
|
||||
* @param blockState The target blockstate
|
||||
* @param mmoPlayer The target player
|
||||
* @param mcMMOPlayer The target player
|
||||
*/
|
||||
public static void addXpFromBlock(BlockState blockState, McMMOPlayer mmoPlayer) {
|
||||
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||
public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) {
|
||||
for(PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||
if (ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) {
|
||||
mmoPlayer.applyXpGain(
|
||||
skillType,
|
||||
ExperienceConfig.getInstance().getXp(skillType, blockState.getType()),
|
||||
PVE, SELF);
|
||||
mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the
|
||||
* blocks given if it matches the given skillType
|
||||
*
|
||||
* Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType
|
||||
* @param blockState The target blockstate
|
||||
* @param mmoPlayer The target player
|
||||
* @param mcMMOPlayer The target player
|
||||
* @param skillType target primary skill
|
||||
*/
|
||||
public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mmoPlayer,
|
||||
PrimarySkillType skillType) {
|
||||
public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
||||
if (ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) {
|
||||
mmoPlayer.applyXpGain(
|
||||
skillType,
|
||||
ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), PVE,
|
||||
SELF);
|
||||
mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||
}
|
||||
}
|
||||
|
||||
// Utility methods follow.
|
||||
private static void addOfflineXP(@NotNull UUID playerUniqueId, @NotNull PrimarySkillType skill,
|
||||
int XP) {
|
||||
final PlayerProfile profile = getOfflineProfile(playerUniqueId);
|
||||
private static void addOfflineXP(@NotNull UUID playerUniqueId, @NotNull PrimarySkillType skill, int XP) {
|
||||
PlayerProfile profile = getOfflineProfile(playerUniqueId);
|
||||
|
||||
profile.addXp(skill, XP);
|
||||
profile.save(true);
|
||||
}
|
||||
|
||||
private static void addOfflineXP(@NotNull String playerName, @NotNull PrimarySkillType skill,
|
||||
int XP) {
|
||||
final PlayerProfile profile = getOfflineProfile(playerName);
|
||||
private static void addOfflineXP(@NotNull String playerName, @NotNull PrimarySkillType skill, int XP) {
|
||||
PlayerProfile profile = getOfflineProfile(playerName);
|
||||
|
||||
profile.addXp(skill, XP);
|
||||
profile.scheduleAsyncSave();
|
||||
}
|
||||
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull UUID uuid)
|
||||
throws InvalidPlayerException {
|
||||
final PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull UUID uuid) throws InvalidPlayerException {
|
||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid);
|
||||
|
||||
if (!profile.isLoaded()) {
|
||||
throw new InvalidPlayerException();
|
||||
@@ -1231,9 +1217,8 @@ public final class ExperienceAPI {
|
||||
return profile;
|
||||
}
|
||||
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull OfflinePlayer offlinePlayer)
|
||||
throws InvalidPlayerException {
|
||||
final PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(offlinePlayer);
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull OfflinePlayer offlinePlayer) throws InvalidPlayerException {
|
||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(offlinePlayer);
|
||||
|
||||
if (!profile.isLoaded()) {
|
||||
throw new InvalidPlayerException();
|
||||
@@ -1242,9 +1227,8 @@ public final class ExperienceAPI {
|
||||
return profile;
|
||||
}
|
||||
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull String playerName)
|
||||
throws InvalidPlayerException {
|
||||
final PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName);
|
||||
private static @NotNull PlayerProfile getOfflineProfile(@NotNull String playerName) throws InvalidPlayerException {
|
||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName);
|
||||
|
||||
if (!profile.isLoaded()) {
|
||||
throw new InvalidPlayerException();
|
||||
@@ -1254,7 +1238,7 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
private static PrimarySkillType getSkillType(String skillType) throws InvalidSkillException {
|
||||
final PrimarySkillType skill = mcMMO.p.getSkillTools().matchSkill(skillType);
|
||||
PrimarySkillType skill = mcMMO.p.getSkillTools().matchSkill(skillType);
|
||||
|
||||
if (skill == null) {
|
||||
throw new InvalidSkillException();
|
||||
@@ -1263,9 +1247,8 @@ public final class ExperienceAPI {
|
||||
return skill;
|
||||
}
|
||||
|
||||
private static PrimarySkillType getNonChildSkillType(String skillType)
|
||||
throws InvalidSkillException, UnsupportedOperationException {
|
||||
final PrimarySkillType skill = getSkillType(skillType);
|
||||
private static PrimarySkillType getNonChildSkillType(String skillType) throws InvalidSkillException, UnsupportedOperationException {
|
||||
PrimarySkillType skill = getSkillType(skillType);
|
||||
|
||||
if (SkillTools.isChildSkill(skill)) {
|
||||
throw new UnsupportedOperationException("Child skills do not have XP");
|
||||
@@ -1285,7 +1268,7 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
private static FormulaType getFormulaType(String formula) throws InvalidFormulaTypeException {
|
||||
final FormulaType formulaType = FormulaType.getFormulaType(formula);
|
||||
FormulaType formulaType = FormulaType.getFormulaType(formula);
|
||||
|
||||
if (formulaType == null) {
|
||||
throw new InvalidFormulaTypeException();
|
||||
@@ -1295,12 +1278,12 @@ public final class ExperienceAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use UserManager::getPlayer(Player player) instead
|
||||
* @param player target player
|
||||
* @return McMMOPlayer for that player if the profile is loaded, otherwise null
|
||||
* @throws McMMOPlayerNotFoundException
|
||||
* @deprecated Use UserManager::getPlayer(Player player) instead
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
@Deprecated
|
||||
private static McMMOPlayer getPlayer(Player player) throws McMMOPlayerNotFoundException {
|
||||
if (!UserManager.hasPlayerDataKey(player)) {
|
||||
throw new McMMOPlayerNotFoundException(player);
|
||||
|
||||
@@ -7,18 +7,14 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.player.NotificationManager;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public final class PartyAPI {
|
||||
private PartyAPI() {
|
||||
}
|
||||
private PartyAPI() {}
|
||||
|
||||
/**
|
||||
* Get the name of the party a player is in.
|
||||
@@ -54,9 +50,8 @@ public final class PartyAPI {
|
||||
* @return true if the player is in a party, false otherwise
|
||||
*/
|
||||
public static boolean inParty(Player player) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null)
|
||||
return false;
|
||||
}
|
||||
|
||||
return UserManager.getPlayer(player).inParty();
|
||||
}
|
||||
@@ -71,9 +66,8 @@ public final class PartyAPI {
|
||||
* @return true if the two players are in the same party, false otherwise
|
||||
*/
|
||||
public static boolean inSameParty(Player playerA, Player playerB) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return false;
|
||||
}
|
||||
|
||||
return mcMMO.p.getPartyManager().inSameParty(playerA, playerB);
|
||||
}
|
||||
@@ -107,9 +101,8 @@ public final class PartyAPI {
|
||||
//Check if player profile is loaded
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if (mmoPlayer == null) {
|
||||
if (mmoPlayer == null)
|
||||
return;
|
||||
}
|
||||
|
||||
Party party = mcMMO.p.getPartyManager().getParty(partyName);
|
||||
|
||||
@@ -117,9 +110,7 @@ public final class PartyAPI {
|
||||
party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
|
||||
} else {
|
||||
if (mcMMO.p.getPartyManager().isPartyFull(player, party)) {
|
||||
NotificationManager.sendPlayerInformation(
|
||||
player, NotificationType.PARTY_MESSAGE,
|
||||
"Commands.Party.PartyFull", party.toString());
|
||||
NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -128,8 +119,8 @@ public final class PartyAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* The max party size of the server 0 or less for no size limit
|
||||
*
|
||||
* The max party size of the server
|
||||
* 0 or less for no size limit
|
||||
* @return the max party size on this server
|
||||
*/
|
||||
public static int getMaxPartySize() {
|
||||
@@ -147,9 +138,8 @@ public final class PartyAPI {
|
||||
*/
|
||||
public static void addToParty(Player player, String partyName, boolean bypassLimit) {
|
||||
//Check if player profile is loaded
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null)
|
||||
return;
|
||||
}
|
||||
|
||||
Party party = mcMMO.p.getPartyManager().getParty(partyName);
|
||||
|
||||
@@ -169,9 +159,8 @@ public final class PartyAPI {
|
||||
*/
|
||||
public static void removeFromParty(Player player) {
|
||||
//Check if player profile is loaded
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null)
|
||||
return;
|
||||
}
|
||||
|
||||
mcMMO.p.getPartyManager().removeFromParty(UserManager.getPlayer(player));
|
||||
}
|
||||
@@ -185,9 +174,8 @@ public final class PartyAPI {
|
||||
* @return the leader of the party
|
||||
*/
|
||||
public static @Nullable String getPartyLeader(String partyName) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return null;
|
||||
}
|
||||
|
||||
return mcMMO.p.getPartyManager().getPartyLeaderName(partyName);
|
||||
}
|
||||
@@ -202,13 +190,10 @@ public final class PartyAPI {
|
||||
*/
|
||||
@Deprecated
|
||||
public static void setPartyLeader(String partyName, String playerName) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return;
|
||||
}
|
||||
|
||||
mcMMO.p.getPartyManager().setPartyLeader(
|
||||
mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(),
|
||||
mcMMO.p.getPartyManager().getParty(partyName));
|
||||
mcMMO.p.getPartyManager().setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), mcMMO.p.getPartyManager().getParty(partyName));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -225,7 +210,7 @@ public final class PartyAPI {
|
||||
return null;
|
||||
}
|
||||
|
||||
final List<OfflinePlayer> members = new ArrayList<>();
|
||||
List<OfflinePlayer> members = new ArrayList<>();
|
||||
for (UUID memberUniqueId : mcMMO.p.getPartyManager().getAllMembers(player).keySet()) {
|
||||
OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
|
||||
members.add(member);
|
||||
@@ -243,9 +228,8 @@ public final class PartyAPI {
|
||||
*/
|
||||
@Deprecated
|
||||
public static LinkedHashSet<String> getMembers(Player player) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return null;
|
||||
}
|
||||
|
||||
return (LinkedHashSet<String>) mcMMO.p.getPartyManager().getAllMembers(player).values();
|
||||
}
|
||||
@@ -259,9 +243,8 @@ public final class PartyAPI {
|
||||
* @return all the player names and uuids in the player's party
|
||||
*/
|
||||
public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return null;
|
||||
}
|
||||
|
||||
return mcMMO.p.getPartyManager().getAllMembers(player);
|
||||
}
|
||||
@@ -275,9 +258,8 @@ public final class PartyAPI {
|
||||
* @return all online players in this party
|
||||
*/
|
||||
public static List<Player> getOnlineMembers(String partyName) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
|
||||
if (!mcMMO.p.getPartyConfig().isPartyEnabled())
|
||||
return null;
|
||||
}
|
||||
|
||||
return mcMMO.p.getPartyManager().getOnlineMembers(partyName);
|
||||
}
|
||||
|
||||
@@ -3,16 +3,17 @@ package com.gmail.nossr50.api;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.skills.SkillTools;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public final class SkillAPI {
|
||||
private SkillAPI() {
|
||||
}
|
||||
private SkillAPI() {}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This includes parent and child skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This includes parent and child skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -23,7 +24,8 @@ public final class SkillAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This only includes parent skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes parent skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -34,7 +36,8 @@ public final class SkillAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This only includes child skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes child skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -45,7 +48,8 @@ public final class SkillAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This only includes combat skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes combat skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -56,7 +60,8 @@ public final class SkillAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This only includes gathering skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes gathering skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
@@ -67,7 +72,8 @@ public final class SkillAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of strings with mcMMO's skills This only includes misc skills
|
||||
* Returns a list of strings with mcMMO's skills
|
||||
* This only includes misc skills
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class IncompleteNamespacedKeyRegister extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -6905157273569301219L;
|
||||
|
||||
public IncompleteNamespacedKeyRegister(@NotNull String message) {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class InvalidFormulaTypeException extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3368670229490121886L;
|
||||
|
||||
public InvalidFormulaTypeException() {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class InvalidPlayerException extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 907213002618581385L;
|
||||
|
||||
public InvalidPlayerException() {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class InvalidSkillException extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 942705284195791157L;
|
||||
|
||||
public InvalidSkillException() {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class InvalidXPGainReasonException extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 4427052841957931157L;
|
||||
|
||||
public InvalidXPGainReasonException() {
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class McMMOPlayerNotFoundException extends RuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 761917904993202836L;
|
||||
|
||||
public McMMOPlayerNotFoundException(@NotNull Player player) {
|
||||
super("McMMOPlayer object was not found for [NOTE: This can mean the profile is not loaded yet! : "
|
||||
+ player.getName() + " " + player.getUniqueId());
|
||||
super("McMMOPlayer object was not found for [NOTE: This can mean the profile is not loaded yet! : " + player.getName() + " " + player.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.gmail.nossr50.api.exceptions;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ValueOutOfBoundsException extends RuntimeException {
|
||||
public ValueOutOfBoundsException(@NotNull String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ public class ChatManager {
|
||||
|
||||
private final @NotNull AdminChatMailer adminChatMailer;
|
||||
private final @NotNull PartyChatMailer partyChatMailer;
|
||||
|
||||
private final @NotNull ConsoleAuthor consoleAuthor;
|
||||
private final @NotNull Audience consoleAudience;
|
||||
|
||||
@@ -33,8 +34,7 @@ public class ChatManager {
|
||||
partyChatMailer = new PartyChatMailer(pluginRef);
|
||||
|
||||
this.consoleAuthor = new ConsoleAuthor(LocaleLoader.getString("Chat.Identity.Console"));
|
||||
this.consoleAudience = mcMMO.getAudiences()
|
||||
.filter((cs) -> cs instanceof ConsoleCommandSender);
|
||||
this.consoleAudience = mcMMO.getAudiences().filter((cs) -> cs instanceof ConsoleCommandSender);
|
||||
this.isChatEnabled = ChatConfig.getInstance().isChatEnabled();
|
||||
}
|
||||
|
||||
@@ -45,8 +45,7 @@ public class ChatManager {
|
||||
* @param rawMessage the raw message from the player as it was typed
|
||||
* @param isAsync whether this is getting processed via async
|
||||
*/
|
||||
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String rawMessage,
|
||||
boolean isAsync) {
|
||||
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String rawMessage, boolean isAsync) {
|
||||
processPlayerMessage(mmoPlayer, mmoPlayer.getChatChannel(), rawMessage, isAsync);
|
||||
}
|
||||
|
||||
@@ -57,8 +56,7 @@ public class ChatManager {
|
||||
* @param args the raw command arguments from the player
|
||||
* @param chatChannel target channel
|
||||
*/
|
||||
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args,
|
||||
@NotNull ChatChannel chatChannel) {
|
||||
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args, @NotNull ChatChannel chatChannel) {
|
||||
String chatMessageWithoutCommand = buildChatMessage(args);
|
||||
|
||||
//Commands are never async
|
||||
@@ -73,20 +71,13 @@ public class ChatManager {
|
||||
* @param rawMessage raw chat message as it was typed
|
||||
* @param isAsync whether this is getting processed via async
|
||||
*/
|
||||
private void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer,
|
||||
@NotNull ChatChannel chatChannel,
|
||||
@NotNull String rawMessage, boolean isAsync) {
|
||||
private void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull ChatChannel chatChannel, @NotNull String rawMessage, boolean isAsync) {
|
||||
switch (chatChannel) {
|
||||
case ADMIN:
|
||||
adminChatMailer.processChatMessage(
|
||||
mmoPlayer.getPlayerAuthor(), rawMessage, isAsync,
|
||||
Permissions.colorChat(mmoPlayer.getPlayer()));
|
||||
adminChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, isAsync, Permissions.colorChat(mmoPlayer.getPlayer()));
|
||||
break;
|
||||
case PARTY:
|
||||
partyChatMailer.processChatMessage(
|
||||
mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(),
|
||||
isAsync, Permissions.colorChat(mmoPlayer.getPlayer()),
|
||||
Misc.isPartyLeader(mmoPlayer));
|
||||
partyChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(), isAsync, Permissions.colorChat(mmoPlayer.getPlayer()), Misc.isPartyLeader(mmoPlayer));
|
||||
break;
|
||||
case PARTY_OFFICER:
|
||||
case NONE:
|
||||
@@ -96,7 +87,6 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Handles console messaging to admins
|
||||
*
|
||||
* @param rawMessage raw message from the console
|
||||
*/
|
||||
public void processConsoleMessage(@NotNull String rawMessage) {
|
||||
@@ -105,7 +95,6 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Handles console messaging to admins
|
||||
*
|
||||
* @param args raw command args from the console
|
||||
*/
|
||||
public void processConsoleMessage(@NotNull String[] args) {
|
||||
@@ -114,18 +103,15 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Handles console messaging to a specific party
|
||||
*
|
||||
* @param rawMessage raw message from the console
|
||||
* @param party target party
|
||||
*/
|
||||
public void processConsoleMessage(@NotNull String rawMessage, @NotNull Party party) {
|
||||
partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true,
|
||||
false);
|
||||
partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a console author
|
||||
*
|
||||
* @return a {@link ConsoleAuthor}
|
||||
*/
|
||||
private @NotNull Author getConsoleAuthor() {
|
||||
@@ -133,38 +119,31 @@ public class ChatManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the chat channel of a {@link McMMOPlayer} Targeting the channel a player is already in
|
||||
* will remove that player from the chat channel
|
||||
*
|
||||
* Change the chat channel of a {@link McMMOPlayer}
|
||||
* Targeting the channel a player is already in will remove that player from the chat channel
|
||||
* @param mmoPlayer target player
|
||||
* @param targetChatChannel target chat channel
|
||||
*/
|
||||
public void setOrToggleChatChannel(@NotNull McMMOPlayer mmoPlayer,
|
||||
@NotNull ChatChannel targetChatChannel) {
|
||||
public void setOrToggleChatChannel(@NotNull McMMOPlayer mmoPlayer, @NotNull ChatChannel targetChatChannel) {
|
||||
if (targetChatChannel == mmoPlayer.getChatChannel()) {
|
||||
//Disabled message
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
|
||||
"Chat.Channel.Off",
|
||||
StringUtils.getCapitalized(targetChatChannel.toString())));
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Chat.Channel.Off", StringUtils.getCapitalized(targetChatChannel.toString())));
|
||||
mmoPlayer.setChatMode(ChatChannel.NONE);
|
||||
} else {
|
||||
mmoPlayer.setChatMode(targetChatChannel);
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
|
||||
"Chat.Channel.On",
|
||||
StringUtils.getCapitalized(targetChatChannel.toString())));
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Chat.Channel.On", StringUtils.getCapitalized(targetChatChannel.toString())));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a chat message from an array of {@link String}
|
||||
*
|
||||
* @param args array of {@link String}
|
||||
* @return a String built from the array
|
||||
*/
|
||||
private @NotNull String buildChatMessage(@NotNull String[] args) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
for(int i = 0; i < args.length; i++) {
|
||||
if (i + 1 >= args.length) {
|
||||
stringBuilder.append(args[i]);
|
||||
} else {
|
||||
@@ -177,7 +156,6 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Whether the player is allowed to send a message to the chat channel they are targeting
|
||||
*
|
||||
* @param mmoPlayer target player
|
||||
* @return true if the player can send messages to that chat channel
|
||||
*/
|
||||
@@ -203,7 +181,6 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Sends just the console a message
|
||||
*
|
||||
* @param author author of the message
|
||||
* @param message message contents in component form
|
||||
*/
|
||||
@@ -213,7 +190,6 @@ public class ChatManager {
|
||||
|
||||
/**
|
||||
* Whether the mcMMO chat system which handles party and admin chat is enabled or disabled
|
||||
*
|
||||
* @return true if mcMMO chat processing (for party/admin chat) is enabled
|
||||
*/
|
||||
public boolean isChatEnabled() {
|
||||
@@ -221,11 +197,11 @@ public class ChatManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a specific chat channel is enabled ChatChannels are enabled/disabled via user config
|
||||
* <p>
|
||||
* If chat is disabled, this always returns false If NONE is passed as a {@link ChatChannel} it
|
||||
* will return true
|
||||
* Whether a specific chat channel is enabled
|
||||
* ChatChannels are enabled/disabled via user config
|
||||
*
|
||||
* If chat is disabled, this always returns false
|
||||
* If NONE is passed as a {@link ChatChannel} it will return true
|
||||
* @param chatChannel target chat channel
|
||||
* @return true if the chat channel is enabled
|
||||
*/
|
||||
@@ -233,11 +209,16 @@ public class ChatManager {
|
||||
if (!isChatEnabled) {
|
||||
return false;
|
||||
} else {
|
||||
return switch (chatChannel) {
|
||||
case ADMIN, PARTY, PARTY_OFFICER ->
|
||||
ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
|
||||
case NONE -> true;
|
||||
};
|
||||
switch(chatChannel) {
|
||||
case ADMIN:
|
||||
case PARTY:
|
||||
case PARTY_OFFICER:
|
||||
return ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
|
||||
case NONE:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,12 @@ package com.gmail.nossr50.chat;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import java.util.function.Predicate;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class SamePartyPredicate<T extends CommandSender> implements Predicate<T> {
|
||||
|
||||
final Party party;
|
||||
@@ -20,14 +21,12 @@ public class SamePartyPredicate<T extends CommandSender> implements Predicate<T>
|
||||
public boolean test(T t) {
|
||||
//Include the console in the audience
|
||||
if (t instanceof ConsoleCommandSender) {
|
||||
//Party audiences are special, we exclude console from them to avoid double
|
||||
// messaging since we send a more verbose version to consoles
|
||||
return false;
|
||||
return false; //Party audiences are special, we exclude console from them to avoid double messaging since we send a more verbose version to consoles
|
||||
} else {
|
||||
if (t instanceof Player player) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
if (mmoPlayer != null) {
|
||||
return mmoPlayer.getParty() == party;
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||
if (mcMMOPlayer != null) {
|
||||
return mcMMOPlayer.getParty() == party;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ package com.gmail.nossr50.chat.author;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatChannel;
|
||||
import com.gmail.nossr50.util.text.TextUtils;
|
||||
import com.google.common.base.Objects;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
public abstract class AbstractPlayerAuthor implements Author {
|
||||
private final @NotNull Player player;
|
||||
private final @NotNull Map<ChatChannel, String> sanitizedNameCache;
|
||||
private @NotNull String lastKnownDisplayName;
|
||||
private final @NotNull HashMap<ChatChannel, String> sanitizedNameCache;
|
||||
|
||||
public AbstractPlayerAuthor(@NotNull Player player) {
|
||||
this.player = player;
|
||||
@@ -31,24 +31,22 @@ public abstract class AbstractPlayerAuthor implements Author {
|
||||
}
|
||||
|
||||
/**
|
||||
* Player display names can change and this method will update the last known display name of
|
||||
* this player
|
||||
* Player display names can change and this method will update the last known display name of this player
|
||||
*/
|
||||
private void updateLastKnownDisplayName() {
|
||||
lastKnownDisplayName = player.getDisplayName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a sanitized name for a channel Sanitized names are names that are friendly to the
|
||||
* {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer} Sanitized names
|
||||
* for authors are cached by channel and are only created as needed Sanitized names will update
|
||||
* if a players display name has updated
|
||||
* Gets a sanitized name for a channel
|
||||
* Sanitized names are names that are friendly to the {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer}
|
||||
* Sanitized names for authors are cached by channel and are only created as needed
|
||||
* Sanitized names will update if a players display name has updated
|
||||
*
|
||||
* @param chatChannel target chat channel
|
||||
* @return the sanitized name for a player
|
||||
*/
|
||||
protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel,
|
||||
boolean useDisplayName) {
|
||||
protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
|
||||
//Already in cache
|
||||
if (sanitizedNameCache.containsKey(chatChannel)) {
|
||||
//Update cache
|
||||
@@ -70,18 +68,16 @@ public abstract class AbstractPlayerAuthor implements Author {
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the sanitized name cache This will add entries if one didn't exit Sanitized names are
|
||||
* associated with a {@link ChatChannel} as different chat channels have different chat name
|
||||
* settings
|
||||
* Update the sanitized name cache
|
||||
* This will add entries if one didn't exit
|
||||
* Sanitized names are associated with a {@link ChatChannel} as different chat channels have different chat name settings
|
||||
*
|
||||
* @param chatChannel target chat channel
|
||||
* @param useDisplayName whether to use this authors display name
|
||||
*/
|
||||
private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel,
|
||||
boolean useDisplayName) {
|
||||
private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
|
||||
if (useDisplayName) {
|
||||
sanitizedNameCache.put(chatChannel,
|
||||
TextUtils.sanitizeForSerializer(player.getDisplayName()));
|
||||
sanitizedNameCache.put(chatChannel, TextUtils.sanitizeForSerializer(player.getDisplayName()));
|
||||
} else {
|
||||
//No need to sanitize a basic String
|
||||
sanitizedNameCache.put(chatChannel, player.getName());
|
||||
@@ -109,17 +105,12 @@ public abstract class AbstractPlayerAuthor implements Author {
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
AbstractPlayerAuthor that = (AbstractPlayerAuthor) o;
|
||||
return Objects.equal(player, that.player) && Objects.equal(
|
||||
lastKnownDisplayName,
|
||||
that.lastKnownDisplayName) && Objects.equal(
|
||||
sanitizedNameCache, that.sanitizedNameCache);
|
||||
return Objects.equal(player, that.player) &&
|
||||
Objects.equal(lastKnownDisplayName, that.lastKnownDisplayName) &&
|
||||
Objects.equal(sanitizedNameCache, that.sanitizedNameCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,9 +7,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
public interface Author extends Identity {
|
||||
|
||||
/**
|
||||
* The name of this author as used in mcMMO chat This is the {@link String} representation of
|
||||
* the users current chat username This can either be the player's display name or the player's
|
||||
* official registered nickname with Mojang it depends on the servers chat settings for mcMMO
|
||||
* The name of this author as used in mcMMO chat
|
||||
* This is the {@link String} representation of the users current chat username
|
||||
* This can either be the player's display name or the player's official registered nickname with Mojang it depends on the servers chat settings for mcMMO
|
||||
*
|
||||
* @param chatChannel which chat channel this is going to
|
||||
* @return The name of this author as used in mcMMO chat
|
||||
@@ -25,7 +25,6 @@ public interface Author extends Identity {
|
||||
|
||||
/**
|
||||
* Whether this author is a {@link org.bukkit.entity.Player}
|
||||
*
|
||||
* @return true if this author is a player
|
||||
*/
|
||||
boolean isPlayer();
|
||||
|
||||
@@ -2,10 +2,11 @@ package com.gmail.nossr50.chat.author;
|
||||
|
||||
import com.gmail.nossr50.datatypes.chat.ChatChannel;
|
||||
import com.gmail.nossr50.util.text.TextUtils;
|
||||
import java.util.UUID;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class ConsoleAuthor implements Author {
|
||||
private final UUID uuid;
|
||||
private final @NotNull String name;
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.gmail.nossr50.events.chat.McMMOChatEvent;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.text.TextUtils;
|
||||
import java.util.function.Predicate;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -19,14 +18,16 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AdminChatMailer extends AbstractChatMailer {
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
|
||||
public class AdminChatMailer extends AbstractChatMailer {
|
||||
|
||||
public AdminChatMailer(Plugin pluginRef) {
|
||||
super(pluginRef);
|
||||
}
|
||||
|
||||
public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
|
||||
|
||||
/**
|
||||
* Constructs an audience of admins
|
||||
*
|
||||
@@ -42,10 +43,9 @@ public class AdminChatMailer extends AbstractChatMailer {
|
||||
* @return admin chat audience predicate
|
||||
*/
|
||||
public @NotNull Predicate<CommandSender> predicate() {
|
||||
return (commandSender) -> commandSender.isOp() || commandSender.hasPermission(
|
||||
MCMMO_CHAT_ADMINCHAT_PERMISSION) || (
|
||||
ChatConfig.getInstance().isConsoleIncludedInAudience(
|
||||
ChatChannel.ADMIN) && commandSender instanceof ConsoleCommandSender);
|
||||
return (commandSender) -> commandSender.isOp()
|
||||
|| commandSender.hasPermission(MCMMO_CHAT_ADMINCHAT_PERMISSION)
|
||||
|| (ChatConfig.getInstance().isConsoleIncludedInAudience(ChatChannel.ADMIN) && commandSender instanceof ConsoleCommandSender);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,16 +56,11 @@ public class AdminChatMailer extends AbstractChatMailer {
|
||||
* @param canColor whether to replace colors codes with colors in the raw message
|
||||
* @return the styled string, based on a locale entry
|
||||
*/
|
||||
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
|
||||
boolean canColor) {
|
||||
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor) {
|
||||
if (canColor) {
|
||||
return LocaleLoader.getTextComponent(
|
||||
"Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN),
|
||||
message);
|
||||
return LocaleLoader.getTextComponent("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message);
|
||||
} else {
|
||||
return TextUtils.ofLegacyTextRaw(
|
||||
LocaleLoader.getString("Chat.Style.Admin",
|
||||
author.getAuthoredName(ChatChannel.ADMIN), message));
|
||||
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,12 +77,8 @@ public class AdminChatMailer extends AbstractChatMailer {
|
||||
* @param isAsync whether this is being processed asynchronously
|
||||
* @param canColor whether the author can use colors in chat
|
||||
*/
|
||||
public void processChatMessage(@NotNull Author author, @NotNull String rawString,
|
||||
boolean isAsync,
|
||||
boolean canColor) {
|
||||
AdminChatMessage chatMessage = new AdminChatMessage(
|
||||
pluginRef, author, constructAudience(), rawString,
|
||||
addStyle(author, rawString, canColor));
|
||||
public void processChatMessage(@NotNull Author author, @NotNull String rawString, boolean isAsync, boolean canColor) {
|
||||
AdminChatMessage chatMessage = new AdminChatMessage(pluginRef, author, constructAudience(), rawString, addStyle(author, rawString, canColor));
|
||||
|
||||
McMMOChatEvent chatEvent = new McMMOAdminChatEvent(pluginRef, chatMessage, isAsync);
|
||||
Bukkit.getPluginManager().callEvent(chatEvent);
|
||||
|
||||
@@ -6,7 +6,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
public interface ChatMailer {
|
||||
/**
|
||||
* Send out a chat message
|
||||
*
|
||||
* @param chatMessage the {@link ChatMessage}
|
||||
*/
|
||||
void sendMail(@NotNull ChatMessage chatMessage);
|
||||
|
||||
@@ -30,12 +30,8 @@ public class PartyChatMailer extends AbstractChatMailer {
|
||||
* @param isAsync whether this is being processed asynchronously
|
||||
* @param canColor whether the author can use colors in chat
|
||||
*/
|
||||
public void processChatMessage(@NotNull Author author, @NotNull String rawString,
|
||||
@NotNull Party party,
|
||||
boolean isAsync, boolean canColor, boolean isLeader) {
|
||||
PartyChatMessage chatMessage = new PartyChatMessage(
|
||||
pluginRef, author, constructPartyAudience(party), rawString,
|
||||
addStyle(author, rawString, canColor, isLeader), party);
|
||||
public void processChatMessage(@NotNull Author author, @NotNull String rawString, @NotNull Party party, boolean isAsync, boolean canColor, boolean isLeader) {
|
||||
PartyChatMessage chatMessage = new PartyChatMessage(pluginRef, author, constructPartyAudience(party), rawString, addStyle(author, rawString, canColor, isLeader), party);
|
||||
|
||||
McMMOChatEvent chatEvent = new McMMOPartyChatEvent(pluginRef, chatMessage, party, isAsync);
|
||||
Bukkit.getPluginManager().callEvent(chatEvent);
|
||||
@@ -63,29 +59,18 @@ public class PartyChatMailer extends AbstractChatMailer {
|
||||
* @param canColor whether to replace colors codes with colors in the raw message
|
||||
* @return the styled string, based on a locale entry
|
||||
*/
|
||||
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
|
||||
boolean canColor,
|
||||
boolean isLeader) {
|
||||
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor, boolean isLeader) {
|
||||
if (canColor) {
|
||||
if (isLeader) {
|
||||
return LocaleLoader.getTextComponent(
|
||||
"Chat.Style.Party.Leader",
|
||||
author.getAuthoredName(ChatChannel.PARTY), message);
|
||||
return LocaleLoader.getTextComponent("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message);
|
||||
} else {
|
||||
return LocaleLoader.getTextComponent(
|
||||
"Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY),
|
||||
message);
|
||||
return LocaleLoader.getTextComponent("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message);
|
||||
}
|
||||
} else {
|
||||
if (isLeader) {
|
||||
return TextUtils.ofLegacyTextRaw(
|
||||
LocaleLoader.getString(
|
||||
"Chat.Style.Party.Leader",
|
||||
author.getAuthoredName(ChatChannel.PARTY), message));
|
||||
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message));
|
||||
} else {
|
||||
return TextUtils.ofLegacyTextRaw(
|
||||
LocaleLoader.getString("Chat.Style.Party",
|
||||
author.getAuthoredName(ChatChannel.PARTY), message));
|
||||
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,9 +15,7 @@ public abstract class AbstractChatMessage implements ChatMessage {
|
||||
protected @NotNull TextComponent componentMessage;
|
||||
protected @NotNull Audience audience;
|
||||
|
||||
public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
|
||||
@NotNull Audience audience,
|
||||
@NotNull String rawMessage, @NotNull TextComponent componentMessage) {
|
||||
public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.author = author;
|
||||
this.audience = audience;
|
||||
@@ -40,11 +38,6 @@ public abstract class AbstractChatMessage implements ChatMessage {
|
||||
return audience;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAudience(@NotNull Audience newAudience) {
|
||||
audience = newAudience;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull TextComponent getChatMessage() {
|
||||
return componentMessage;
|
||||
@@ -55,20 +48,21 @@ public abstract class AbstractChatMessage implements ChatMessage {
|
||||
this.componentMessage = textComponent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAudience(@NotNull Audience newAudience) {
|
||||
audience = newAudience;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
AbstractChatMessage that = (AbstractChatMessage) o;
|
||||
return Objects.equal(pluginRef, that.pluginRef) && Objects.equal(author, that.author)
|
||||
&& Objects.equal(
|
||||
rawMessage, that.rawMessage) && Objects.equal(componentMessage,
|
||||
that.componentMessage) && Objects.equal(
|
||||
audience, that.audience);
|
||||
return Objects.equal(pluginRef, that.pluginRef) &&
|
||||
Objects.equal(author, that.author) &&
|
||||
Objects.equal(rawMessage, that.rawMessage) &&
|
||||
Objects.equal(componentMessage, that.componentMessage) &&
|
||||
Objects.equal(audience, that.audience);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,9 +8,7 @@ import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AdminChatMessage extends AbstractChatMessage {
|
||||
public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
|
||||
@NotNull Audience audience,
|
||||
@NotNull String rawMessage, @NotNull TextComponent componentMessage) {
|
||||
public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
|
||||
super(pluginRef, author, audience, rawMessage, componentMessage);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ChatMessage {
|
||||
/**
|
||||
* The original message from the {@link Author} This is formatted and styled before being sent
|
||||
* out to players by mcMMO
|
||||
* The original message from the {@link Author}
|
||||
* This is formatted and styled before being sent out to players by mcMMO
|
||||
*
|
||||
* @return the original message without any formatting or alterations
|
||||
* @see #getChatMessage()
|
||||
@@ -18,42 +18,33 @@ public interface ChatMessage {
|
||||
/**
|
||||
* The {@link Author} from which this payload originated
|
||||
*
|
||||
* @return the source of the chat message
|
||||
* @see #getChatMessage()
|
||||
* @return the source of the chat message
|
||||
*/
|
||||
@NotNull Author getAuthor();
|
||||
|
||||
/**
|
||||
* The authors display name which is used in the initial creation of the message payload, it is
|
||||
* provided for convenience.
|
||||
* <p>
|
||||
* This is a name generated by mcMMO during the creation of the {@link ChatMessage}
|
||||
* <p>
|
||||
* This is used by mcMMO when generating the message payload
|
||||
* <p>
|
||||
* This method provides the display name for the convenience of plugins constructing their own
|
||||
* {@link TextComponent payloads}
|
||||
* The authors display name which is used in the initial creation of the message payload, it is provided for convenience.
|
||||
*
|
||||
* This is a name generated by mcMMO during the creation of the {@link ChatMessage}
|
||||
*
|
||||
* This is used by mcMMO when generating the message payload
|
||||
*
|
||||
* This method provides the display name for the convenience of plugins constructing their own {@link TextComponent payloads}
|
||||
*
|
||||
* @return the author display name as generated by mcMMO
|
||||
* @see #getChatMessage()
|
||||
* @return the author display name as generated by mcMMO
|
||||
*/
|
||||
@NotNull String getAuthorDisplayName();
|
||||
|
||||
/**
|
||||
* The target audience of this chat message Unless modified, this will include the
|
||||
* {@link Author}
|
||||
* The target audience of this chat message
|
||||
* Unless modified, this will include the {@link Author}
|
||||
*
|
||||
* @return target audience
|
||||
*/
|
||||
@NotNull Audience getAudience();
|
||||
|
||||
/**
|
||||
* Changes the audience
|
||||
*
|
||||
* @param newAudience the replacement audience
|
||||
*/
|
||||
void setAudience(@NotNull Audience newAudience);
|
||||
|
||||
/**
|
||||
* The {@link TextComponent message} being sent to the audience
|
||||
*
|
||||
@@ -68,6 +59,13 @@ public interface ChatMessage {
|
||||
*/
|
||||
void setChatMessage(@NotNull TextComponent textComponent);
|
||||
|
||||
/**
|
||||
* Changes the audience
|
||||
*
|
||||
* @param newAudience the replacement audience
|
||||
*/
|
||||
void setAudience(@NotNull Audience newAudience);
|
||||
|
||||
/**
|
||||
* Deliver the message to the audience
|
||||
*/
|
||||
|
||||
@@ -19,17 +19,13 @@ public class PartyChatMessage extends AbstractChatMessage {
|
||||
|
||||
private final @NotNull Party party;
|
||||
|
||||
public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
|
||||
@NotNull Audience audience,
|
||||
@NotNull String rawMessage, @NotNull TextComponent componentMessage,
|
||||
@NotNull Party party) {
|
||||
public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage, @NotNull Party party) {
|
||||
super(pluginRef, author, audience, rawMessage, componentMessage);
|
||||
this.party = party;
|
||||
}
|
||||
|
||||
/**
|
||||
* The party that this chat message was intended for
|
||||
*
|
||||
* @return the party that this message was intended for
|
||||
*/
|
||||
public @NotNull Party getParty() {
|
||||
@@ -50,33 +46,29 @@ public class PartyChatMessage extends AbstractChatMessage {
|
||||
|
||||
//Sends to everyone but console
|
||||
audience.sendMessage(author, componentMessage);
|
||||
final TextComponent spyMessage = LocaleLoader.getTextComponent(
|
||||
"Chat.Spy.Party",
|
||||
author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
|
||||
TextComponent spyMessage = LocaleLoader.getTextComponent("Chat.Spy.Party", author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
|
||||
|
||||
//Relay to spies
|
||||
messagePartyChatSpies(spyMessage);
|
||||
|
||||
//Console message
|
||||
if (ChatConfig.getInstance().isConsoleIncludedInAudience(ChatChannel.PARTY)) {
|
||||
if (ChatConfig.getInstance().isConsoleIncludedInAudience(ChatChannel.PARTY))
|
||||
mcMMO.p.getChatManager().sendConsoleMessage(author, spyMessage);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Console and Party Chat Spies get a more verbose version of the message Party Chat Spies will
|
||||
* get a copy of the message as well
|
||||
*
|
||||
* Console and Party Chat Spies get a more verbose version of the message
|
||||
* Party Chat Spies will get a copy of the message as well
|
||||
* @param spyMessage the message to copy to spies
|
||||
*/
|
||||
private void messagePartyChatSpies(@NotNull TextComponent spyMessage) {
|
||||
//Find the people with permissions
|
||||
for (McMMOPlayer mmoPlayer : UserManager.getPlayers()) {
|
||||
final Player player = mmoPlayer.getPlayer();
|
||||
for(McMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
|
||||
//Check for toggled players
|
||||
if (mmoPlayer.isPartyChatSpying()) {
|
||||
Party adminParty = mmoPlayer.getParty();
|
||||
if (mcMMOPlayer.isPartyChatSpying()) {
|
||||
Party adminParty = mcMMOPlayer.getParty();
|
||||
|
||||
//Only message admins not part of this party
|
||||
if (adminParty == null || adminParty != getParty()) {
|
||||
@@ -90,16 +82,10 @@ public class PartyChatMessage extends AbstractChatMessage {
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
final PartyChatMessage that = (PartyChatMessage) o;
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
PartyChatMessage that = (PartyChatMessage) o;
|
||||
return Objects.equal(party, that.party);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,8 +60,7 @@ public class CommandManager {
|
||||
if (ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) {
|
||||
bukkitCommandManager.registerCommand(new AdminChatCommand(pluginRef));
|
||||
}
|
||||
if (pluginRef.getPartyConfig().isPartyEnabled() && ChatConfig.getInstance()
|
||||
.isChatChannelEnabled(ChatChannel.PARTY)) {
|
||||
if (pluginRef.getPartyConfig().isPartyEnabled() && ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.PARTY)) {
|
||||
bukkitCommandManager.registerCommand(new PartyChatCommand(pluginRef));
|
||||
}
|
||||
}
|
||||
@@ -73,17 +72,15 @@ public class CommandManager {
|
||||
}
|
||||
|
||||
private void registerSkillConditions() {
|
||||
bukkitCommandManager.getCommandConditions()
|
||||
.addCondition(POWER_LEVEL_CONDITION, (context) -> {
|
||||
BukkitCommandIssuer issuer = context.getIssuer();
|
||||
bukkitCommandManager.getCommandConditions().addCondition(POWER_LEVEL_CONDITION, (context) -> {
|
||||
BukkitCommandIssuer issuer = context.getIssuer();
|
||||
|
||||
if (issuer.getIssuer() instanceof Player) {
|
||||
validateLoadedData(issuer.getPlayer());
|
||||
} else {
|
||||
throw new ConditionFailedException(
|
||||
LocaleLoader.getString("Commands.NoConsole"));
|
||||
}
|
||||
});
|
||||
if (issuer.getIssuer() instanceof Player) {
|
||||
validateLoadedData(issuer.getPlayer());
|
||||
} else {
|
||||
throw new ConditionFailedException(LocaleLoader.getString("Commands.NoConsole"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void registerChatCommandConditions() {
|
||||
@@ -117,8 +114,7 @@ public class CommandManager {
|
||||
});
|
||||
}
|
||||
|
||||
private void validatePermission(@NotNull String permissionNode,
|
||||
@NotNull Permissible permissible) {
|
||||
private void validatePermission(@NotNull String permissionNode, @NotNull Permissible permissible) {
|
||||
if (!permissible.hasPermission(permissionNode)) {
|
||||
throw new ConditionFailedException(LocaleLoader.getString("mcMMO.NoPermission"));
|
||||
}
|
||||
@@ -127,8 +123,7 @@ public class CommandManager {
|
||||
|
||||
public void validateAdmin(@NotNull Player player) {
|
||||
if (!player.isOp() && !Permissions.adminChat(player)) {
|
||||
throw new ConditionFailedException(
|
||||
"You are lacking the correct permissions to use this command.");
|
||||
throw new ConditionFailedException("You are lacking the correct permissions to use this command.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +134,7 @@ public class CommandManager {
|
||||
}
|
||||
|
||||
public void validatePlayerParty(@NotNull Player player) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
|
||||
if (!pluginRef.getPartyConfig().isPartyEnabled() || mmoPlayer.getParty() == null) {
|
||||
throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None"));
|
||||
|
||||
324
src/main/java/com/gmail/nossr50/commands/McImportCommand.java
Normal file
324
src/main/java/com/gmail/nossr50/commands/McImportCommand.java
Normal file
@@ -0,0 +1,324 @@
|
||||
package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.ModConfigType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
||||
public class McImportCommand implements CommandExecutor {
|
||||
int fileAmount;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
importModConfig();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean importModConfig() {
|
||||
String importFilePath = mcMMO.getModDirectory() + File.separator + "import";
|
||||
File importFile = new File(importFilePath, "import.log");
|
||||
mcMMO.p.getLogger().info("Starting import of mod materials...");
|
||||
fileAmount = 0;
|
||||
|
||||
HashMap<ModConfigType, ArrayList<String>> materialNames = new HashMap<>();
|
||||
|
||||
BufferedReader in = null;
|
||||
|
||||
try {
|
||||
// Open the file
|
||||
in = new BufferedReader(new FileReader(importFile));
|
||||
|
||||
String line;
|
||||
String materialName;
|
||||
String modName;
|
||||
|
||||
// While not at the end of the file
|
||||
while ((line = in.readLine()) != null) {
|
||||
String[] split1 = line.split("material ");
|
||||
|
||||
if (split1.length != 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String[] split2 = split1[1].split(" with");
|
||||
|
||||
if (split2.length != 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
materialName = split2[0];
|
||||
|
||||
// Categorise each material under a mod config type
|
||||
ModConfigType type = ModConfigType.getModConfigType(materialName);
|
||||
|
||||
if (!materialNames.containsKey(type)) {
|
||||
materialNames.put(type, new ArrayList<>());
|
||||
}
|
||||
|
||||
materialNames.get(type).add(materialName);
|
||||
}
|
||||
}
|
||||
catch (FileNotFoundException e) {
|
||||
mcMMO.p.getLogger().warning("Could not find " + importFile.getAbsolutePath() + " ! (No such file or directory)");
|
||||
mcMMO.p.getLogger().warning("Copy and paste latest.log to " + importFile.getParentFile().getAbsolutePath() + " and rename it to import.log");
|
||||
return false;
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
tryClose(in);
|
||||
}
|
||||
|
||||
createOutput(materialNames);
|
||||
|
||||
mcMMO.p.getLogger().info("Import finished! Created " + fileAmount + " files!");
|
||||
return true;
|
||||
}
|
||||
|
||||
private void createOutput(HashMap<ModConfigType, ArrayList<String>> materialNames) {
|
||||
for (ModConfigType modConfigType : materialNames.keySet()) {
|
||||
HashMap<String, ArrayList<String>> materialNamesType = new HashMap<>();
|
||||
|
||||
for (String materialName : materialNames.get(modConfigType)) {
|
||||
String modName = Misc.getModName(materialName);
|
||||
|
||||
if (!materialNamesType.containsKey(modName)) {
|
||||
materialNamesType.put(modName, new ArrayList<>());
|
||||
}
|
||||
|
||||
materialNamesType.get(modName).add(materialName);
|
||||
}
|
||||
|
||||
createOutput(modConfigType, materialNamesType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void tryClose(Closeable c) {
|
||||
if (c == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
c.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void createOutput(ModConfigType modConfigType, HashMap<String, ArrayList<String>> materialNames) {
|
||||
File outputFilePath = new File(mcMMO.getModDirectory() + File.separator + "output");
|
||||
if (!outputFilePath.exists() && !outputFilePath.mkdirs()) {
|
||||
mcMMO.p.getLogger().severe("Could not create output directory! " + outputFilePath.getAbsolutePath());
|
||||
}
|
||||
|
||||
FileWriter out = null;
|
||||
String type = modConfigType.name().toLowerCase(Locale.ENGLISH);
|
||||
|
||||
for (String modName : materialNames.keySet()) {
|
||||
File outputFile = new File(outputFilePath, modName + "." + type + ".yml");
|
||||
mcMMO.p.getLogger().info("Creating " + outputFile.getName());
|
||||
try {
|
||||
if (outputFile.exists() && !outputFile.delete()) {
|
||||
mcMMO.p.getLogger().severe("Not able to delete old output file! " + outputFile.getAbsolutePath());
|
||||
}
|
||||
|
||||
if (!outputFile.createNewFile()) {
|
||||
mcMMO.p.getLogger().severe("Could not create output file! " + outputFile.getAbsolutePath());
|
||||
continue;
|
||||
}
|
||||
|
||||
StringBuilder writer = new StringBuilder();
|
||||
HashMap<String, ArrayList<String>> configSections = getConfigSections(modConfigType, modName, materialNames);
|
||||
|
||||
if (configSections == null) {
|
||||
mcMMO.p.getLogger().severe("Something went wrong!! type is " + type);
|
||||
return;
|
||||
}
|
||||
|
||||
// Write the file, go through each skill and write all the materials
|
||||
for (String configSection : configSections.keySet()) {
|
||||
if (configSection.equals("UNIDENTIFIED")) {
|
||||
writer.append("# This isn't a valid config section and all materials in this category need to be").append("\r\n");
|
||||
writer.append("# copy and pasted to a valid section of this config file.").append("\r\n");
|
||||
}
|
||||
writer.append(configSection).append(":").append("\r\n");
|
||||
|
||||
for (String line : configSections.get(configSection)) {
|
||||
writer.append(line).append("\r\n");
|
||||
}
|
||||
|
||||
writer.append("\r\n");
|
||||
}
|
||||
|
||||
out = new FileWriter(outputFile);
|
||||
out.write(writer.toString());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} finally {
|
||||
tryClose(out);
|
||||
fileAmount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSections(ModConfigType type, String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
switch (type) {
|
||||
case BLOCKS:
|
||||
return getConfigSectionsBlocks(modName, materialNames);
|
||||
case TOOLS:
|
||||
return getConfigSectionsTools(modName, materialNames);
|
||||
case ARMOR:
|
||||
return getConfigSectionsArmor(modName, materialNames);
|
||||
case UNKNOWN:
|
||||
return getConfigSectionsUnknown(modName, materialNames);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsBlocks(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<>();
|
||||
|
||||
// Go through all the materials and categorise them under a skill
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String skillName = "UNIDENTIFIED";
|
||||
if (materialName.contains("ORE")) {
|
||||
skillName = "Mining";
|
||||
} else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
|
||||
skillName = "Woodcutting";
|
||||
} else if (materialName.contains("GRASS") || materialName.contains("SHORT_GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
|
||||
skillName = "Herbalism";
|
||||
} else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
|
||||
skillName = "Excavation";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(skillName)) {
|
||||
configSections.put(skillName, new ArrayList<>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(skillName);
|
||||
skillContents.add(" " + materialName + "|0:");
|
||||
skillContents.add(" " + " " + "XP_Gain: 99");
|
||||
skillContents.add(" " + " " + "Double_Drops_Enabled: true");
|
||||
|
||||
if (skillName.equals("Mining")) {
|
||||
skillContents.add(" " + " " + "Smelting_XP_Gain: 9");
|
||||
} else if (skillName.equals("Woodcutting")) {
|
||||
skillContents.add(" " + " " + "Is_Log: " + materialName.contains("LOG"));
|
||||
}
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsTools(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<>();
|
||||
|
||||
// Go through all the materials and categorise them under a tool type
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String toolType = "UNIDENTIFIED";
|
||||
if (materialName.contains("PICKAXE")) {
|
||||
toolType = "Pickaxes";
|
||||
} else if (materialName.contains("AXE")) {
|
||||
toolType = "Axes";
|
||||
} else if (materialName.contains("BOW")) {
|
||||
toolType = "Bows";
|
||||
} else if (materialName.contains("HOE")) {
|
||||
toolType = "Hoes";
|
||||
} else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
|
||||
toolType = "Shovels";
|
||||
} else if (materialName.contains("SWORD")) {
|
||||
toolType = "Swords";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(toolType)) {
|
||||
configSections.put(toolType, new ArrayList<>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(toolType);
|
||||
skillContents.add(" " + materialName + ":");
|
||||
skillContents.add(" " + " " + "XP_Modifier: 1.0");
|
||||
skillContents.add(" " + " " + "Tier: 1");
|
||||
skillContents.add(" " + " " + "Ability_Enabled: true");
|
||||
addRepairableLines(materialName, skillContents);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsArmor(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<>();
|
||||
|
||||
// Go through all the materials and categorise them under an armor type
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String toolType = "UNIDENTIFIED";
|
||||
if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
|
||||
toolType = "Boots";
|
||||
} else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
|
||||
toolType = "Chestplates";
|
||||
} else if (materialName.contains("HELM") || materialName.contains("HAT")) {
|
||||
toolType = "Helmets";
|
||||
} else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
|
||||
toolType = "Leggings";
|
||||
}
|
||||
|
||||
if (!configSections.containsKey(toolType)) {
|
||||
configSections.put(toolType, new ArrayList<>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(toolType);
|
||||
skillContents.add(" " + materialName + ":");
|
||||
addRepairableLines(materialName, skillContents);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
|
||||
private void addRepairableLines(String materialName, ArrayList<String> skillContents) {
|
||||
skillContents.add(" " + " " + "Repairable: true");
|
||||
skillContents.add(" " + " " + "Repair_Material: REPAIR_MATERIAL_NAME");
|
||||
skillContents.add(" " + " " + "Repair_Material_Data_Value: 0");
|
||||
skillContents.add(" " + " " + "Repair_Material_Quantity: 9");
|
||||
skillContents.add(" " + " " + "Repair_Material_Pretty_Name: Repair Item Name");
|
||||
skillContents.add(" " + " " + "Repair_MinimumLevel: 0");
|
||||
skillContents.add(" " + " " + "Repair_XpMultiplier: 1.0");
|
||||
|
||||
Material material = Material.matchMaterial(materialName);
|
||||
short durability = (material == null) ? (short) 9999 : material.getMaxDurability();
|
||||
skillContents.add(" " + " " + "Durability: " + ((durability > 0) ? durability : (short) 9999));
|
||||
}
|
||||
|
||||
private HashMap<String, ArrayList<String>> getConfigSectionsUnknown(String modName, HashMap<String, ArrayList<String>> materialNames) {
|
||||
HashMap<String, ArrayList<String>> configSections = new HashMap<>();
|
||||
|
||||
// Go through all the materials and print them
|
||||
for (String materialName : materialNames.get(modName)) {
|
||||
String configKey = "UNIDENTIFIED";
|
||||
|
||||
if (!configSections.containsKey(configKey)) {
|
||||
configSections.put(configKey, new ArrayList<>());
|
||||
}
|
||||
|
||||
ArrayList<String> skillContents = configSections.get(configKey);
|
||||
skillContents.add(" " + materialName);
|
||||
}
|
||||
|
||||
return configSections;
|
||||
}
|
||||
}
|
||||
@@ -17,10 +17,9 @@ public class McabilityCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
|
||||
"Commands.Ability." + (mmoPlayer.getAbilityUse() ? "Off" : "On")));
|
||||
mmoPlayer.toggleAbilityUse();
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
|
||||
mcMMOPlayer.toggleAbilityUse();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,9 +7,6 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -17,6 +14,10 @@ import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class McconvertCommand implements TabExecutor {
|
||||
private static final List<String> FORMULA_TYPES;
|
||||
private static final List<String> DATABASE_TYPES;
|
||||
@@ -53,13 +54,11 @@ public class McconvertCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
|
||||
return databaseConvertCommand.onCommand(sender, command, label, args);
|
||||
} else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp")
|
||||
|| args[1].equalsIgnoreCase("exp")) {
|
||||
} else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
|
||||
return experienceConvertCommand.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
@@ -69,22 +68,17 @@ public class McconvertCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS,
|
||||
new ArrayList<>(SUBCOMMANDS.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS, new ArrayList<>(SUBCOMMANDS.size()));
|
||||
case 2:
|
||||
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
|
||||
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES,
|
||||
new ArrayList<>(DATABASE_TYPES.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES, new ArrayList<>(DATABASE_TYPES.size()));
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp")
|
||||
|| args[0].equalsIgnoreCase("exp")) {
|
||||
return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES,
|
||||
new ArrayList<>(FORMULA_TYPES.size()));
|
||||
if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[0].equalsIgnoreCase("exp")) {
|
||||
return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES, new ArrayList<>(FORMULA_TYPES.size()));
|
||||
}
|
||||
|
||||
return ImmutableList.of();
|
||||
|
||||
@@ -17,10 +17,9 @@ public class McgodCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
|
||||
"Commands.GodMode." + (mmoPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||
mmoPlayer.toggleGodMode();
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.toggleGodMode();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -12,8 +12,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class McmmoCommand implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (!Permissions.mcmmoDescription(sender)) {
|
||||
@@ -28,22 +27,18 @@ public class McmmoCommand implements CommandExecutor {
|
||||
|
||||
if (mcMMO.p.getGeneralConfig().getDonateMessageEnabled()) {
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||
sender.sendMessage(
|
||||
ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com"
|
||||
+ ChatColor.GOLD + " Paypal");
|
||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||
}
|
||||
|
||||
if (Permissions.showversion(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Version",
|
||||
mcMMO.p.getDescription().getVersion()));
|
||||
sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
|
||||
}
|
||||
|
||||
// mcMMO.getHolidayManager().anniversaryCheck(sender);
|
||||
return true;
|
||||
|
||||
case 1:
|
||||
if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help")
|
||||
|| args[0].equalsIgnoreCase("commands")) {
|
||||
if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("commands")) {
|
||||
if (!Permissions.mcmmoHelp(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
return true;
|
||||
@@ -62,61 +57,59 @@ public class McmmoCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
private void displayGeneralCommands(CommandSender sender) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Stats"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.SkillInfo"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Leaderboards"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
|
||||
|
||||
if (Permissions.inspect(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Inspect"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
|
||||
}
|
||||
|
||||
if (Permissions.mcability(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.ToggleAbility"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
|
||||
}
|
||||
}
|
||||
|
||||
private void displayOtherCommands(CommandSender sender) {
|
||||
//Don't show them this category if they have none of the permissions
|
||||
if (!Permissions.skillreset(sender) && !Permissions.mmoedit(sender)
|
||||
&& !Permissions.adminChat(sender) && !Permissions.mcgod(sender)) {
|
||||
if (!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
|
||||
return;
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
|
||||
|
||||
if (Permissions.skillreset(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Reset"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
|
||||
}
|
||||
|
||||
if (Permissions.mmoedit(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
|
||||
}
|
||||
|
||||
if (Permissions.adminChat(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.AdminToggle"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
|
||||
}
|
||||
|
||||
if (Permissions.mcgod(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcgod"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
|
||||
}
|
||||
}
|
||||
|
||||
private void displayPartyCommands(CommandSender sender) {
|
||||
if (Permissions.party(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party1"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party2"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Quit"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
|
||||
|
||||
if (Permissions.partyChat(sender)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Toggle"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Invite"));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Accept"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
|
||||
|
||||
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Teleport"));
|
||||
sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,41 +5,39 @@ import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class McnotifyCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||
|
||||
//Not Loaded yet
|
||||
if (mmoPlayer == null) {
|
||||
if (mcMMOPlayer == null) {
|
||||
sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
|
||||
return true;
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString(
|
||||
"Commands.Notifications." + (mmoPlayer.useChatNotifications() ? "Off" : "On")));
|
||||
mmoPlayer.toggleChatNotifications();
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));
|
||||
mcMMOPlayer.toggleChatNotifications();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,13 +17,13 @@ public class McrefreshCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
|
||||
mmoPlayer.setRecentlyHurt(0);
|
||||
mmoPlayer.resetCooldowns();
|
||||
mmoPlayer.resetToolPrepMode();
|
||||
mmoPlayer.resetAbilityMode();
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.setRecentlyHurt(0);
|
||||
mcMMOPlayer.resetCooldowns();
|
||||
mcMMOPlayer.resetToolPrepMode();
|
||||
mcMMOPlayer.resetAbilityMode();
|
||||
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,20 +5,20 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class McscoreboardCommand implements TabExecutor {
|
||||
private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
return true;
|
||||
}
|
||||
@@ -42,8 +42,7 @@ public class McscoreboardCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("keep")) {
|
||||
if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard()
|
||||
|| !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
|
||||
if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard() || !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
|
||||
return true;
|
||||
}
|
||||
@@ -81,11 +80,9 @@ public class McscoreboardCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
if (args.length == 1) {
|
||||
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS,
|
||||
new ArrayList<>(FIRST_ARGS.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS, new ArrayList<>(FIRST_ARGS.size()));
|
||||
}
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
@@ -4,18 +4,18 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ToggleCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
if (CommandUtils.noConsoleUsage(sender)) {
|
||||
@@ -41,17 +41,17 @@ public abstract class ToggleCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(playerName);
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
||||
|
||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mmoPlayer)) {
|
||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (CommandUtils.isOffline(sender, mmoPlayer.getPlayer())) {
|
||||
if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
applyCommandAction(mmoPlayer);
|
||||
applyCommandAction(mcMMOPlayer);
|
||||
sendSuccessMessage(sender, playerName);
|
||||
return true;
|
||||
|
||||
@@ -61,21 +61,16 @@ public abstract class ToggleCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
if (args.length == 1) {
|
||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames,
|
||||
new ArrayList<>(playerNames.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
}
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
protected abstract boolean hasOtherPermission(CommandSender sender);
|
||||
|
||||
protected abstract boolean hasSelfPermission(CommandSender sender);
|
||||
|
||||
protected abstract void applyCommandAction(McMMOPlayer mmoPlayer);
|
||||
|
||||
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
|
||||
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
||||
}
|
||||
|
||||
@@ -9,8 +9,6 @@ import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.NotificationManager;
|
||||
import com.gmail.nossr50.util.text.StringUtils;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -18,16 +16,17 @@ import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class XprateCommand implements TabExecutor {
|
||||
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance()
|
||||
.getExperienceGainsGlobalMultiplier();
|
||||
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
|
||||
if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -42,19 +41,16 @@ public class XprateCommand implements TabExecutor {
|
||||
NotificationManager.broadcastTitle(mcMMO.p.getServer(),
|
||||
LocaleLoader.getString("Commands.Event.Stop"),
|
||||
LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
|
||||
10, 10 * 20, 20);
|
||||
10, 10*20, 20);
|
||||
}
|
||||
|
||||
if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
|
||||
mcMMO.p.getServer()
|
||||
.broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
|
||||
mcMMO.p.getServer().broadcastMessage(
|
||||
LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
|
||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
|
||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
NotificationManager.processSensitiveCommandNotification(sender,
|
||||
SensitiveCommandType.XPRATE_END);
|
||||
NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_END);
|
||||
|
||||
mcMMO.p.toggleXpEventEnabled();
|
||||
}
|
||||
@@ -83,8 +79,7 @@ public class XprateCommand implements TabExecutor {
|
||||
int newXpRate = Integer.parseInt(args[0]);
|
||||
|
||||
if (newXpRate < 0) {
|
||||
sender.sendMessage(
|
||||
ChatColor.RED + LocaleLoader.getString("Commands.NegativeNumberWarn"));
|
||||
sender.sendMessage(ChatColor.RED+LocaleLoader.getString("Commands.NegativeNumberWarn"));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -94,19 +89,16 @@ public class XprateCommand implements TabExecutor {
|
||||
NotificationManager.broadcastTitle(mcMMO.p.getServer(),
|
||||
LocaleLoader.getString("Commands.Event.Start"),
|
||||
LocaleLoader.getString("Commands.Event.XP", newXpRate),
|
||||
10, 10 * 20, 20);
|
||||
10, 10*20, 20);
|
||||
}
|
||||
|
||||
if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
|
||||
mcMMO.p.getServer()
|
||||
.broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
|
||||
mcMMO.p.getServer().broadcastMessage(
|
||||
LocaleLoader.getString("Commands.Event.XP", newXpRate));
|
||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
|
||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.XP", newXpRate));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
NotificationManager.processSensitiveCommandNotification(sender,
|
||||
SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
|
||||
NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
|
||||
|
||||
return true;
|
||||
|
||||
@@ -116,19 +108,16 @@ public class XprateCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
if (StringUtils.isInt(args[0])) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS,
|
||||
new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS, new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
|
||||
case 2:
|
||||
return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS,
|
||||
new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
|
||||
return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
|
||||
default:
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ public class CompatibilityCommand implements CommandExecutor {
|
||||
/**
|
||||
* Executes the given command, returning its success.
|
||||
* <br>
|
||||
* If false is returned, then the "usage" plugin.yml entry for this command (if defined) will be
|
||||
* sent to the player.
|
||||
* If false is returned, then the "usage" plugin.yml entry for this command
|
||||
* (if defined) will be sent to the player.
|
||||
*
|
||||
* @param commandSender Source of the command
|
||||
* @param command Command which was executed
|
||||
@@ -21,9 +21,7 @@ public class CompatibilityCommand implements CommandExecutor {
|
||||
* @return true if a valid command, otherwise false
|
||||
*/
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command,
|
||||
@NotNull String s,
|
||||
@NotNull String[] strings) {
|
||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
|
||||
mcMMO.getCompatibilityManager().reportCompatibilityStatus(commandSender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
//package com.gmail.nossr50.commands.admin;
|
||||
//
|
||||
//import com.gmail.nossr50.config.treasure.FishingTreasureConfig;
|
||||
//import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
//import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
//import com.gmail.nossr50.datatypes.treasure.Rarity;
|
||||
//import com.gmail.nossr50.mcMMO;
|
||||
//import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||
//import com.gmail.nossr50.util.player.UserManager;
|
||||
//import org.bukkit.Location;
|
||||
//import org.bukkit.command.Command;
|
||||
//import org.bukkit.command.CommandExecutor;
|
||||
//import org.bukkit.command.CommandSender;
|
||||
//import org.bukkit.entity.Player;
|
||||
//import org.jetbrains.annotations.NotNull;
|
||||
//
|
||||
//public class DropTreasureCommand implements CommandExecutor {
|
||||
// @Override
|
||||
// public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
// if (sender instanceof Player) {
|
||||
// if (!sender.isOp()) {
|
||||
// sender.sendMessage("This command is for Operators only");
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// Player player = (Player) sender;
|
||||
// Location location = player.getLocation();
|
||||
// McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
|
||||
//
|
||||
// if (mmoPlayer == null) {
|
||||
// //TODO: Localize
|
||||
// player.sendMessage("Your player data is not loaded yet");
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// if (args.length == 0) {
|
||||
// mcMMO.p.getLogger().info(player.toString() +" is dropping all mcMMO treasures via admin command at location "+location.toString());
|
||||
// for(Rarity rarity : FishingTreasureConfig.getInstance().fishingRewards.keySet()) {
|
||||
// for(FishingTreasure fishingTreasure : FishingTreasureConfig.getInstance().fishingRewards.get(rarity)) {
|
||||
// FishingManager fishingManager = mmoPlayer.getFishingManager();
|
||||
// }
|
||||
// }
|
||||
// //TODO: impl
|
||||
// } else {
|
||||
// String targetTreasure = args[1];
|
||||
//
|
||||
// //Drop all treasures matching the name
|
||||
// //TODO: impl
|
||||
// }
|
||||
//
|
||||
// return true;
|
||||
// } else {
|
||||
// sender.sendMessage("No console support for this command");
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
@@ -12,9 +12,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
public final class McmmoReloadLocaleCommand implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label,
|
||||
String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
if (!Permissions.reloadlocale(sender)) {
|
||||
sender.sendMessage(command.getPermissionMessage());
|
||||
|
||||
@@ -12,14 +12,11 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class PlayerDebugCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label,
|
||||
String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
|
||||
mmoPlayer.toggleDebugMode(); //Toggle debug mode
|
||||
NotificationManager.sendPlayerInformationChatOnlyPrefixed(mmoPlayer.getPlayer(),
|
||||
"Commands.Mmodebug.Toggle", String.valueOf(mmoPlayer.isDebugMode()));
|
||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
||||
NotificationManager.sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -22,29 +22,24 @@ public class AdminChatCommand extends BaseCommand {
|
||||
this.pluginRef = pluginRef;
|
||||
}
|
||||
|
||||
@Default
|
||||
@Conditions(CommandManager.ADMIN_CONDITION)
|
||||
@Default @Conditions(CommandManager.ADMIN_CONDITION)
|
||||
public void processCommand(String[] args) {
|
||||
final BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
|
||||
BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
|
||||
if (args == null || args.length == 0) {
|
||||
//Process with no arguments
|
||||
if (bukkitCommandIssuer.isPlayer()) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
|
||||
bukkitCommandIssuer.getPlayer());
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
|
||||
pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
|
||||
} else {
|
||||
//Not support for console
|
||||
mcMMO.p.getLogger()
|
||||
.info("You cannot switch chat channels as console, please provide full arguments.");
|
||||
mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
|
||||
}
|
||||
} else {
|
||||
if (bukkitCommandIssuer.isPlayer()) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
|
||||
bukkitCommandIssuer.getPlayer());
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
|
||||
|
||||
if (mmoPlayer == null) {
|
||||
if (mmoPlayer == null)
|
||||
return;
|
||||
}
|
||||
|
||||
//Message contains the original command so it needs to be passed to this method to trim it
|
||||
pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);
|
||||
|
||||
@@ -18,11 +18,9 @@ public class McChatSpy extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
|
||||
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
|
||||
"Commands.AdminChatSpy." + (mmoPlayer.isPartyChatSpying() ? "Disabled"
|
||||
: "Enabled")));
|
||||
mmoPlayer.togglePartyChatSpying();
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.togglePartyChatSpying();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -33,13 +33,11 @@ public class PartyChatCommand extends BaseCommand {
|
||||
if (args == null || args.length == 0) {
|
||||
//Process with no arguments
|
||||
if (bukkitCommandIssuer.isPlayer()) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
|
||||
bukkitCommandIssuer.getPlayer());
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
|
||||
pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY);
|
||||
} else {
|
||||
//Not support for console
|
||||
mcMMO.p.getLogger()
|
||||
.info("You cannot switch chat channels as console, please provide full arguments.");
|
||||
mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
|
||||
}
|
||||
} else {
|
||||
//Here we split the logic, consoles need to target a party name and players do not
|
||||
@@ -48,12 +46,11 @@ public class PartyChatCommand extends BaseCommand {
|
||||
* Player Logic
|
||||
*/
|
||||
if (bukkitCommandIssuer.getIssuer() instanceof Player) {
|
||||
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
|
||||
bukkitCommandIssuer.getPlayer());
|
||||
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
|
||||
processCommandArgsPlayer(mmoPlayer, args);
|
||||
/*
|
||||
* Console Logic
|
||||
*/
|
||||
/*
|
||||
* Console Logic
|
||||
*/
|
||||
} else {
|
||||
processCommandArgsConsole(args);
|
||||
}
|
||||
@@ -62,7 +59,6 @@ public class PartyChatCommand extends BaseCommand {
|
||||
|
||||
/**
|
||||
* Processes the command with arguments for a {@link McMMOPlayer}
|
||||
*
|
||||
* @param mmoPlayer target player
|
||||
* @param args command arguments
|
||||
*/
|
||||
@@ -72,24 +68,19 @@ public class PartyChatCommand extends BaseCommand {
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the command with arguments for a
|
||||
* {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
|
||||
*
|
||||
* Processes the command with arguments for a {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
|
||||
* @param args command arguments
|
||||
*/
|
||||
private void processCommandArgsConsole(@NotNull String[] args) {
|
||||
if (args.length <= 1) {
|
||||
//Only specific a party and not the message
|
||||
mcMMO.p.getLogger()
|
||||
.severe("You need to specify a party name and then write a message afterwards.");
|
||||
mcMMO.p.getLogger().severe("You need to specify a party name and then write a message afterwards.");
|
||||
} else {
|
||||
//Grab party
|
||||
Party targetParty = mcMMO.p.getPartyManager().getParty(args[0]);
|
||||
|
||||
if (targetParty != null) {
|
||||
pluginRef.getChatManager()
|
||||
.processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1),
|
||||
targetParty);
|
||||
pluginRef.getChatManager().processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1), targetParty);
|
||||
} else {
|
||||
mcMMO.p.getLogger().severe("A party with that name doesn't exist!");
|
||||
}
|
||||
|
||||
@@ -17,25 +17,17 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ConvertDatabaseCommand implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label,
|
||||
String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 2) {
|
||||
DatabaseType previousType = DatabaseType.getDatabaseType(args[1]);
|
||||
DatabaseType newType = mcMMO.getDatabaseManager().getDatabaseType();
|
||||
|
||||
if (previousType == newType || (newType == DatabaseType.CUSTOM
|
||||
&& DatabaseManagerFactory.getCustomDatabaseManagerClass()
|
||||
.getSimpleName()
|
||||
.equalsIgnoreCase(args[1]))) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same",
|
||||
newType.toString()));
|
||||
if (previousType == newType || (newType == DatabaseType.CUSTOM && DatabaseManagerFactory.getCustomDatabaseManagerClass().getSimpleName().equalsIgnoreCase(args[1]))) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same", newType.toString()));
|
||||
return true;
|
||||
}
|
||||
|
||||
DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType,
|
||||
mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(),
|
||||
mcMMO.p.getAdvancedConfig().getStartingLevel());
|
||||
DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType, mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(), mcMMO.p.getAdvancedConfig().getStartingLevel());
|
||||
if (oldDatabase == null) {
|
||||
sender.sendMessage("Unable to load the old database! Check your log for errors.");
|
||||
return true;
|
||||
@@ -48,26 +40,19 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
||||
clazz = Class.forName(args[1]);
|
||||
|
||||
if (!DatabaseManager.class.isAssignableFrom(clazz)) {
|
||||
sender.sendMessage(
|
||||
LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
|
||||
args[1]));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
||||
return true;
|
||||
}
|
||||
|
||||
oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager(
|
||||
(Class<? extends DatabaseManager>) clazz);
|
||||
oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
sender.sendMessage(
|
||||
LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
|
||||
args[1]));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start",
|
||||
previousType.toString(),
|
||||
newType.toString()));
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString()));
|
||||
|
||||
UserManager.saveAll();
|
||||
UserManager.clearAll();
|
||||
@@ -79,14 +64,10 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
||||
mcMMO.getDatabaseManager().saveUser(profile);
|
||||
}
|
||||
|
||||
mcMMO.p.getFoliaLib().getScheduler()
|
||||
.runLaterAsync(new PlayerProfileLoadingTask(player),
|
||||
1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
mcMMO.p.getFoliaLib().getImpl().runLaterAsync(new PlayerProfileLoadingTask(player), 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
}
|
||||
|
||||
mcMMO.p.getFoliaLib().getScheduler().runAsync(
|
||||
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(),
|
||||
newType.toString()));
|
||||
mcMMO.p.getFoliaLib().getImpl().runAsync(new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -3,16 +3,16 @@ package com.gmail.nossr50.commands.database;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class McpurgeCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 0) {
|
||||
mcMMO.getDatabaseManager().purgePowerlessUsers();
|
||||
|
||||
@@ -27,8 +27,7 @@ public class McpurgeCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,6 @@ import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -15,15 +12,17 @@ import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class McremoveCommand implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length == 1) {
|
||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
||||
|
||||
if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(
|
||||
sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName))) {
|
||||
if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -36,8 +35,7 @@ public class McremoveCommand implements TabExecutor {
|
||||
if (mcMMO.getDatabaseManager().removeUser(playerName, uuid)) {
|
||||
sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", playerName));
|
||||
} else {
|
||||
sender.sendMessage(playerName
|
||||
+ " could not be removed from the database."); // Pretty sure this should NEVER happen.
|
||||
sender.sendMessage(playerName + " could not be removed from the database."); // Pretty sure this should NEVER happen.
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -46,12 +44,10 @@ public class McremoveCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, String[] args) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
if (args.length == 1) {
|
||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames,
|
||||
new ArrayList<>(playerNames.size()));
|
||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
|
||||
}
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user