mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 17:53:00 +01:00
Compare commits
16 Commits
l10n_maste
...
dev-queue
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b700a99c52 | ||
|
|
7294175d9c | ||
|
|
1b17b90f32 | ||
|
|
d27f668a2e | ||
|
|
69dd5769e4 | ||
|
|
7c9d09a878 | ||
|
|
17c64251db | ||
|
|
d728eba5c4 | ||
|
|
429055bae2 | ||
|
|
3f22a8f479 | ||
|
|
aeae60f968 | ||
|
|
a97b889af5 | ||
|
|
0e9953c25b | ||
|
|
869b30fcaa | ||
|
|
44188396b4 | ||
|
|
a7f146a835 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,7 +2,6 @@
|
|||||||
/.classpath
|
/.classpath
|
||||||
/.project
|
/.project
|
||||||
/.settings
|
/.settings
|
||||||
/dependency-reduced-pom.xml
|
|
||||||
|
|
||||||
# netbeans
|
# netbeans
|
||||||
/nbproject
|
/nbproject
|
||||||
|
|||||||
419
Changelog.txt
419
Changelog.txt
@@ -7,424 +7,10 @@ Key:
|
|||||||
! Change
|
! Change
|
||||||
- Removal
|
- Removal
|
||||||
|
|
||||||
Version 2.1.0
|
Version 1.4.03-dev
|
||||||
+ Added JSON integration to all Skill Commands
|
|
||||||
+ Added config setting to enable or disable classic mcMMO skill scaling
|
|
||||||
+ (Config) Added rank settings for the new Woodcutting skill
|
|
||||||
+ (Config) Added configurable parameters for the new Tree Feller
|
|
||||||
+ (Config) Added classic toggle for Tree Feller
|
|
||||||
+ (Chat) Added ability for admins to spy on party chat (off unless toggled on)
|
|
||||||
+ (Commands) Added toggle command /mcchatspy
|
|
||||||
+ (API) Added many missing SubSkills to SubSkill class
|
|
||||||
+ (Permissions) Added permission node mcmmo.commands.mcchatspy & mcmmo.commands.mcchatspy.others
|
|
||||||
+ (Permissions) Added permission nodes for Harvest Lumber, Splinter, Nature's Bounty, and Bark Surgeon
|
|
||||||
+ (Locale) Added locale strings for new Woodcutting abilities
|
|
||||||
+ (Locale) Added locale strings for mcchatspy command
|
|
||||||
+ (Locale) Added locale strings for JSON integration
|
|
||||||
+ (Locale) Added locale strings for Taming's Pummel SubSkill
|
|
||||||
+ (Locale) Added locale strings for Unarmed's Block Cracker SubSkill
|
|
||||||
- (Locale) Removed localizations with the following codes for being almost empty: id, HR_hr, et_EE, lv, lt, no, pl_PL, pt_PT, tr_TR
|
|
||||||
- (Config) Removed SkillShot's IncreaseLevel & IncreasePercentage (replaced by RankDamageMultiplier)
|
|
||||||
- (Config) Removed AxeMastery's MaxBonus & MaxBonusLevel (replaced by RankDamageMultiplier)
|
|
||||||
! (Skills) Woodcutting's Double Drop subskill is now named Harvest Lumber
|
|
||||||
! (Skills) Archery's Skill Shot now uses a rank system
|
|
||||||
! (Skills) Axe's Axe Mastery now uses a rank system
|
|
||||||
! (Config) Unarmed.IronArm in advanced.yml is now Unarmed.IronArmStyle
|
|
||||||
! (Config) Unarmed.Deflect in advanced.yml is now Unarmed.ArrowDeflect
|
|
||||||
! (Config) Swords.Counter in advanced.yml is now Swords.CounterAttack
|
|
||||||
! (Config) Archery.Retrieve in advanced.yml is now Archery.ArrowRetrieval
|
|
||||||
! (Config) Axes.CriticalHit in advanced.yml is now Axes.CriticalStrikes
|
|
||||||
! (Config) Archery's Skill Shot now uses RankDamageMultiplier for its damage bonus calculations
|
|
||||||
! (Config) Axe's Axe mastery now uses RankDamageMultiplier for its damage bonus calculations
|
|
||||||
! (Permissions) Replaced the old Double Drop permission node for woodcutting with a new Harvest Lumber permission node
|
|
||||||
! (Permissions) Fast Food Service permission node renamed to mcmmo.ability.taming.fastfoodservice
|
|
||||||
! (Permissions) Counter Attack permission node renamed to mcmmo.ability.swords.counterattack
|
|
||||||
! (Permissions) Arrow Deflect permission node renamed to mcmmo.ability.unarmed.arrowdeflect
|
|
||||||
! (Permissions) Iron Arm Style permission node renamed to mcmmo.ability.unarmed.ironarmstyle
|
|
||||||
! (Locale) Removed redundant information from some skill names and descriptions en_US (other locales will need to be updated)
|
|
||||||
! (Locale) SubSkill locale keys are now located at {ParentSkill}.SubSkill.SubSkillName
|
|
||||||
! (Locale) Super Abilities no longer have (ABILITY) in their Skill.Effect strings
|
|
||||||
! (API) mcMMO is now built against Spigot-API instead of Bukkit
|
|
||||||
! (API) SkillType is now PrimarySkill
|
|
||||||
! (API) SecondarySkill is now SubSkill
|
|
||||||
! (API) AbilityType is now SuperAbility
|
|
||||||
! (API) SecondaryAbilityEvent is now SubSkillEvent
|
|
||||||
! (API) SecondarySkill ENUM is being updated to have the parent skill as a prefix and a getter method for grabbing the parent skill
|
|
||||||
! (API) GREEN_THUMB_PLANT & GREEN_THUMB_BLOCK are replaced by GREEN_THUMB
|
|
||||||
! Skill Super Powers (Tree Feller, etc...) will now require level 10+ to use
|
|
||||||
! (Skills) mcMMO skills will now be on a scale from 1-100 instead of 0-1000 (for existing mcMMO installs this is opt-in and off by default)
|
|
||||||
! (Code) Refactored some unreadable code relating to SecondaryAbility activation in SkillUtils
|
|
||||||
|
|
||||||
|
|
||||||
Version 2.0.0
|
|
||||||
= Fixed an interaction between Tree Feller and Stripped Wood
|
|
||||||
! Fireworks no longer fire by default for ability activation/deactivation
|
|
||||||
! Website has been changed and the MOTD string relating to it reflects this
|
|
||||||
! Discord link added to mcMMO command
|
|
||||||
! Updated misc strings relating to mcMMO
|
|
||||||
|
|
||||||
|
|
||||||
Version 1.5.05-SNAPSHOT
|
|
||||||
|
|
||||||
Version 1.5.04
|
|
||||||
+ Added option to config.yml to control mcMMO generated sound volume
|
|
||||||
+ Added option to config.yml to truncate existing player skill levels that exceed the skill level cap
|
|
||||||
+ Falling blocks persist mcMMO natural data
|
|
||||||
= Woodcutting double drops correctly identify acacia and dark oak logs
|
|
||||||
= Skill Reset command now correctly identifies arguments
|
|
||||||
= Hylian Treasure config options are now actually used
|
|
||||||
= Child skills now use parent skills configured skill caps properly
|
|
||||||
= Auto Update config now properly works
|
|
||||||
! Item dropped from blocks now drop from the center
|
|
||||||
! Potions Config updated for 1.9
|
|
||||||
! Flux mining now simulates a block break event for other plugins to act upon
|
|
||||||
! Zombie Pigmen spawned from nether portals are now considered spawner mobs
|
|
||||||
! Flux Pickaxe lore now appends to existing lore as opposed to replacing it
|
|
||||||
! Party chat no longer displays colors when logged in server console
|
|
||||||
- Treefeller no longer lowers exp for big trees
|
|
||||||
- No longer supports 1.8 :(
|
|
||||||
- Removed plugin metrics
|
|
||||||
|
|
||||||
Version 1.5.03
|
|
||||||
= Fixed bug where absorption hearts could be attacked by allied players
|
|
||||||
= Fixed bug where new forms of stone would drop the wrong type when mined with Silk Touch
|
|
||||||
= Fixed bug where blocks would not get tracked correctly when using sticky pistons and slime blocks in certain situations
|
|
||||||
= Fixed bug where config value for Daze damage was ignored
|
|
||||||
= Fixed UUID updater to not lose data on errors
|
|
||||||
= Fixed bug where uuid update could result in large amounts of user data being deleted
|
|
||||||
= Fixed bug where custom potions were missed in potion stage calculation
|
|
||||||
= Fixed piston dupe bugs permanently
|
|
||||||
= Fixed bug involving user name changes
|
|
||||||
= Fixed old user purge to properly calculate months
|
|
||||||
= Fixed bug where Repair would incorrectly check items
|
|
||||||
= Fixed bug where apostrophes in locale files would not read correctly
|
|
||||||
= Fixed bug where treasure data was limited to 255 instead of Short.MAX_VALUE
|
|
||||||
! Moved more user loading calculations to async loading thread to reduce lag on login
|
|
||||||
|
|
||||||
Version 1.5.02
|
|
||||||
+ Added option to config.yml for Chimaera Wings to stop using bed spawn points
|
|
||||||
+ Added option to config.yml to let non-tools in hand count as unarmed
|
|
||||||
+ Added option to experience.yml to control XP gained by killing bred animals
|
|
||||||
+ Added support for 1.8 mobs and features
|
|
||||||
= Fixed bug where no Mining XP was granted when Flux Mining was successful
|
|
||||||
= Fixed bug with UUID conversions in Flatfile
|
|
||||||
= Fixed a couple Dupe bugs that were introduced recently
|
|
||||||
= Fixed bug where MobHealthbarTypes were not saved between server restarts
|
|
||||||
! Changed Flux Mining mechanics. In order to use the ability, you need to infuse a pickaxe with furnace powers first.
|
|
||||||
! Scoreboard tips are only shown a couple of times to the player, instead of once per login session
|
|
||||||
! Changed Archery distance multiplier to be configurable
|
|
||||||
! Archery distance XP bonus cannot exceed indefinitely anymore
|
|
||||||
|
|
||||||
Version 1.5.01
|
|
||||||
+ Added new child skill; Salvage
|
|
||||||
+ Added UUID support!
|
|
||||||
+ Added SQL connection pooling and async loading!
|
|
||||||
+ Added the long awaited Diminished Returns feature
|
|
||||||
+ Added new feature to Herbalism. Instantly-regrown crops are protected from being broken for 1 second
|
|
||||||
+ Added option to config.yml to show the /mcstats scoreboard automatically after logging in
|
|
||||||
+ Added option to config.yml for Alchemy. Skills.Alchemy.Prevent_Hopper_Transfer_Bottles
|
|
||||||
+ Added option to config.yml for Scoreboards, display "Ability" instead of ability names on the scoreboards
|
|
||||||
+ Added options to experience.yml for Dirt and Sand variations
|
|
||||||
+ Added support for `MATERIAL|data` format in treasures.yml
|
|
||||||
+ Added API to experience events to get XP gain reason
|
|
||||||
+ Added API to check if an entity is bleeding
|
|
||||||
+ Added API to ExperienceAPI to get the amount of XP needed for a level
|
|
||||||
+ Added API class SkillAPI used to get a list of valid skill names
|
|
||||||
+ Added API events for hardcore features, McMMOPlayerPreDeathPenaltyEvent, McMMOPlayerStatLossEvent and McMMOPlayerVampirismEvent
|
|
||||||
+ Added API to ExperienceAPI to specify if XP can be shared
|
|
||||||
+ Added options to tools.yml and armor.yml config files to set a pretty repair material name
|
|
||||||
+ Added full support for repairables in tools.yml and armor.yml config files
|
|
||||||
+ Added magical mod config file import command, for Cauldron 1.7+. Check wiki for usage
|
|
||||||
+ Added particle effects and sounds to "Call of the Wild" (Taming)
|
|
||||||
+ Added summon length to "Call of the Wild". Summons will now commit suicide after their lifespan expires
|
|
||||||
+ Added feature which makes tamed wolves attack a target shot by the owner
|
|
||||||
= 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 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
|
|
||||||
= Fixed bug where Alchemy would not fire BrewEvents
|
|
||||||
= Fixed bug with setting custom names and lore in treasures config
|
|
||||||
= Fixed bug which would cause a NullPointerException with getFlowerAndGrassXp()
|
|
||||||
= Fixed bug which could cause and SQLException regarding the connection property 'maxReconnects'.
|
|
||||||
= Fixed bug where falling blocks were incorrectly tracked
|
|
||||||
= Fixed bug where items would get deleted when in Berserk with a full inventory
|
|
||||||
= Fixed bug where the console would not correctly show party chat colors
|
|
||||||
= Fixed bug where party chat was using non thread safe methods
|
|
||||||
= Fixed bug where Blast Mining unlock levels could be to high in certain occasions
|
|
||||||
= Fixed bug where Blast Minings ability "Demolition Expert" would not work
|
|
||||||
= Fixed bug where Repair_Material_Quantity wasn't read in mod config files
|
|
||||||
! Changed SecondaryAbilityEvent to implement Cancellable and it now gets fired for damage related secondary abilities
|
|
||||||
! Changed the way mcMMO handles bonus damage, updated for the new damage event API
|
|
||||||
! Changed player data saving. Save tasks are now asynchronous
|
|
||||||
! Vanished players no longer get hit by AoE effects
|
|
||||||
! Changed Alchemy config option 'Prevent_Hopper_Transfer' renamed to 'Prevent_Hopper_Transfer_Ingredients'
|
|
||||||
! Changed Alchemy XP distribution. XP is granted based on the stage of the potion.
|
|
||||||
! Changed behavior of the Blast Mining ability "Demolition Expert"; now only decreases damage for the ability user
|
|
||||||
! Updated for new getOnlinePlayers() behavior
|
|
||||||
! Updated for new blocks and entities
|
|
||||||
! Changed McMMOPlayerDeathPenaltyEvent to get fired after hardcore penalty calculations, use McMMOPlayerPreDeathPenaltyEvent for old behavior
|
|
||||||
! Moved Refresh_Chunks setting from hidden.yml to config.yml
|
|
||||||
- Removed salvage ability from Repair, salvage has it's own (child) skill now
|
|
||||||
|
|
||||||
Version 1.5.00
|
|
||||||
+ Added Podzol & Red Sand to Excavation
|
|
||||||
+ Added Hardened Clay, Stained Clay, and Packed Ice to Mining blocks
|
|
||||||
+ Added Acacia and Dark Oak to Woodcutting blocks
|
|
||||||
+ Added Salmon, Clownfish, and Pufferfish to Fishing XP
|
|
||||||
+ Added new flowers and grasses to Herbalism XP
|
|
||||||
+ Added option to config.yml which allows players to always catch fish, even when a treasure is found
|
|
||||||
+ Added option to config.yml to override vanilla Minecraft treasures
|
|
||||||
! Fishing XP now depends on the type of fish.
|
|
||||||
! Woodcutting XP in experience.yml and Woodcutting double drops in config.yml now use the tree species names. Oak is now Generic, and Spruce is now Redwood.
|
|
||||||
! Red_Rose was replaced by Poppy, and so the key in experience.yml has been updated accordingly.
|
|
||||||
- Removed deprecated permission nodes
|
|
||||||
- Removed "Treasure found!" message
|
|
||||||
|
|
||||||
Version 1.4.08
|
|
||||||
+ Added a new skill; Alchemy. Special thanks to EasyMFnE for creating this!
|
|
||||||
+ Added SecondaryAbilityType enum, and new SecondaryAbilityWeightedActivationCheckEvent, fired when a secondary ability checkes its activation chances
|
|
||||||
+ Added the possibility to gain experience when using Fishing "Shake"
|
|
||||||
+ Added config options to disable various sound effects
|
|
||||||
+ Smelting now works with custom ores - add smelting XP value to blocks.yml, or it will default to 1/10th of normal XP.
|
|
||||||
+ Added automatic cleanup of backups folder.
|
|
||||||
+ Added bypass permission for finding Fishing traps
|
|
||||||
+ Added level threshold settings to hardcore modes. When a players skill level is below this threshold, they will not lose any stats
|
|
||||||
+ Added party alliances, two parties can now team up. Allies share party chat and cannot harm each other.
|
|
||||||
+ Added new experience bonus perk 'mcmmo.perks.xp.10percentboost.<skillname>' multiplies incoming XP by 1.1
|
|
||||||
+ Added new experience bonus perk 'mcmmo.perks.xp.customboost.<skillname>' multiplies incoming XP by the boost amount defined in the experience config
|
|
||||||
+ Added Ender Dragon, Wither, and Witch to combat experience multipliers - they do not give XP by default
|
|
||||||
+ Added support for multiple mod config files, naming can be done as either armor.<modname>.yml or <modname>.armor.yml
|
|
||||||
+ Added config options to configure the items used in "Call of the Wild"
|
|
||||||
+ Added config option to configure the database command cooldown
|
|
||||||
= Fixed bug where healthbars wouldn't display if skills were disabled
|
|
||||||
= Fixed bug with "Call of the Wild" entities despawning
|
|
||||||
= Fixed bug with updating (very) old user data.
|
|
||||||
= Fixed bug with checking maximum durability of mod items.
|
|
||||||
= Fixed exploit involving Call of The Wild.
|
|
||||||
= Fixed bug where LeafBlower permissions were ignored
|
|
||||||
= Fixed bug with toggle commands not properly displaying the success message.
|
|
||||||
= Fixed IllegalArgumentException caused by an empty Fishing treasure category
|
|
||||||
= Fixed bug with Salvage not reading the config value for the anvil material.
|
|
||||||
= Fixed exploit where you could receive smelting XP for improper items
|
|
||||||
= Fixed bug where the Unbreaking enchantment was ignored when using "Super Breaker" or "Giga Drill Breaker"
|
|
||||||
= Fixed bug which prevented players from gaining Acrobatics XP when the setting 'Prevent_XP_After_Teleport' was set to false
|
|
||||||
= Fixed bug where cooldown donor perks were reducing more than expected
|
|
||||||
= Fixed bug where disabling hardcore mode for specific skills didn't work
|
|
||||||
= Fixed bug which caused the backup cleanup to delete old backups while it should have kept those
|
|
||||||
= Fixed bug where party chat broke if the display name contained special characters
|
|
||||||
= Fixed bug where `/addlevels all` and `/skillreset all` didn't work
|
|
||||||
= Fixed bug which made it possible to gain XP by taming the same horse multiple times, if a player "untamed" that horse
|
|
||||||
= Fixed bug where some horses summoned with "Call of the Wild" were unable to jump
|
|
||||||
= Fixed bug where the /ptp request expiration time was checked wrongly - preventing players from using the command
|
|
||||||
= Fixed bug where Hylian Luck was broken
|
|
||||||
= Fixed bug where Snow would never drop treasures
|
|
||||||
= Fixed issues with commands giving away vanished players.
|
|
||||||
= Fixed bug where the Repair lucky perk would increase the Arcane Forging downgrade chance, instead of decreasing it
|
|
||||||
! Changed party system. Parties now have XP and Levels. Party features such as party teleport and party chat have to be unlocked before they can be used by the party members
|
|
||||||
! Changed appearance of party member list. Gold = party leader, White = online, Gray = offline, Italic = not nearby
|
|
||||||
! Updated localization files
|
|
||||||
! Changed the appearance of /mcmmo commands
|
|
||||||
! Changed AxesCritical to CriticalHit in config file
|
|
||||||
! Changed several secondary ability permissions(deprecated versions still exist)
|
|
||||||
! Changed /ptp config setting, Commands.ptp.Confirm_Required is now Commands.ptp.Accept.Required
|
|
||||||
! Changed config validation for UnlockLevels, they can now also be 0
|
|
||||||
! Changed config validation for Rank_Levels, successive Ranks can now be less than or equal to each other
|
|
||||||
! Changed default amount of XP gained from mining Quartz Ore. From 250 to 100 XP.
|
|
||||||
! Changed Acrobatics config setting, Skills.Acrobatics.Prevent_XP_After_Teleport is now Skills.Acrobatics.XP_After_Teleport_Cooldown
|
|
||||||
- Removed /stats alias for /mcstats
|
|
||||||
|
|
||||||
Version 1.4.07
|
|
||||||
+ Added XP boost to Acrobatics when wearing Boots of Feather Falling
|
|
||||||
+ Added SQL Database can now recover from a dropped connection without losing data. (Thanks Riking!)
|
|
||||||
+ Added more tiers to Fishing, Repair and Smelting!
|
|
||||||
+ Added Carrot on a Stick and Flint & Steel to repair.vanilla.yml
|
|
||||||
+ Added horses to the "Shake" ability
|
|
||||||
+ Added ability to summon horses via "Call of the Wild" using apples
|
|
||||||
+ Added XP gain to Taming for horses
|
|
||||||
+ Added new permission nodes to allow more control over Taming and "Call of the Wild"
|
|
||||||
+ Added new experience.yml config file! Moved all experience related settings from config.yml to experience.yml
|
|
||||||
+ Added support for EXPONENTIAL formula curves to experience.yml
|
|
||||||
+ Added new /mcconvert command to convert players levels and experience from one formula curve to another.
|
|
||||||
+ Added snow to Excavation blocks
|
|
||||||
+ Added new experience curve option. Cumulative curve, calculates experience needed for next level using power level.
|
|
||||||
+ Added extra settings to config.yml for "Call of the Wild" (Taming)
|
|
||||||
+ Added a 5 second cooldown after teleporting before Acrobatics XP can be earned. Plus a config option to disable
|
|
||||||
+ Added new API methods to ExperienceAPI to get a players rank on the leaderboards
|
|
||||||
+ Added new McMMOPlayerDeathPenaltyEvent, fired when a player dies and would lose levels
|
|
||||||
+ Added new McMMOPlayerLevelChangeEvent, fired when a players level changes
|
|
||||||
+ Added new McMMOPlayerLevelDownEvent, fired when a player loses levels
|
|
||||||
+ Added ability to give custom names to items in treasures.yml - use the key "Custom_Name" to set, expects a string.
|
|
||||||
+ Added ability to give lore to items in treasures.yml - use the key "Lore" to set, expects a list of strings.
|
|
||||||
+ Added Quartz and Name Tags to the default Excavation treasures
|
|
||||||
+ Added a warning message if the server is running NoCheatPlus without CompatNoCheatPlus
|
|
||||||
+ Added cooldown to commands with heavy database access to prevent denial of service
|
|
||||||
+ Added /mcscoreboard keep, to keep the scoreboard up forever
|
|
||||||
+ Added Rainbow Mode to scoreboards
|
|
||||||
+ Added new /mccooldowns command to show all ability cooldowns
|
|
||||||
+ Commands may now both print text and display a scoreboard
|
|
||||||
+ Killing a custom entity will automatically add it to the custom entity config file with default values.
|
|
||||||
= Fixed bug which allowed players to bypass fishing's exploit prevention
|
|
||||||
= Fixed bug where FakeEntityDamageByEntityEvent wasn't being fired
|
|
||||||
= Fixed bug with "Skull Splitter" not finding the locale string
|
|
||||||
= Fixed issue where locale strings could cause the scoreboard header to be longer than 16 characters.
|
|
||||||
= Fixed a bug with "Beast Lore" when the entity had no owner but was tamed.
|
|
||||||
= Fixed a bug where AbilityDeactivateEvent would throw an error if the player logged out before his ability ran out.
|
|
||||||
= Fixed a bug where LevelUpEvent would be called for an offline player.
|
|
||||||
= Fixed a bug where teleport location was never reset if warmup was set to 0 for "Chimaera Wing".
|
|
||||||
= Fixed a bug where the "Dodge" DamageModifier wasn't being read from advanced.yml
|
|
||||||
= Fixed a bug where squid were not awarding XP.
|
|
||||||
= Fixed a bug where Combat XP was granted within 5 seconds for respawned players
|
|
||||||
= Fixed a bug where wrong feedback messages were being send when using a command on an offline player
|
|
||||||
= Fixed a bug where players were able to gain Herbalism XP in mine carts, even though Prevent_AFK_Leveling was enabled
|
|
||||||
= Fixed a bug where players would get hit by fireworks if they leveled up while in a boat
|
|
||||||
! Changed Fishing "Treasure Hunter" and "Magic Hunter" drop percentages
|
|
||||||
! Changed format of mod config files. (blocks.yml, tools.yml, armor.yml and entities.yml) **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT**
|
|
||||||
! Changed format of treasures.yml. **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT**
|
|
||||||
! Changed format of repair.vanilla.yml. **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT**
|
|
||||||
! Changed default XP multiplier for repairing shears
|
|
||||||
! Changed "Shake" drops for Witches. They no longer drop water bottles, since they no longer drop them in Vanilla.
|
|
||||||
! Changed fishing exploit prevention, by default it will no longer send global sounds, effects and messages.
|
|
||||||
! Changed Hardcore modes, they will also subtract experience
|
|
||||||
! Changed various values to double in advanced.yml for the sake of consistency.
|
|
||||||
! Nerfed Fishing "Master Angler" (removed skill level based bonus) and also made the modifiers configurable
|
|
||||||
! Nerfed Archery damage to eliminate constant one-hit kills.
|
|
||||||
! Changed the way Repair hands out XP, also added config options to control Repair XP
|
|
||||||
! Changed Swords "Counter Attack" ability from passive to active. Blocking is required to activate.
|
|
||||||
! Hardcore modes can now be toggled for each skill individually
|
|
||||||
! Vampirism can now be enabled without having Skill Death Penalty enabled
|
|
||||||
! Admin and Party chat prefixes are now customizable
|
|
||||||
! Changed the color of party leader names in Party chat
|
|
||||||
! Improved "Tree Feller" algorithm (Thanks Riking!)
|
|
||||||
! Improved AFK Acrobatics prevention mechanism
|
|
||||||
! Improved profile saving
|
|
||||||
! Improved partial name matcher
|
|
||||||
! Improved update checker
|
|
||||||
! Updated localization files
|
|
||||||
! Party item share category states are now saved when the server shuts down.
|
|
||||||
! When using "Super Breaker" or "Giga Driller" abilities extra tool durability is used (again)
|
|
||||||
! Mob healthbars are automatically disabled when the plugin "HealthBar" is found
|
|
||||||
! Massively improved scoreboard handling
|
|
||||||
! Reworked scoreboard configuration (config.yml) - **you will need to update**
|
|
||||||
- The /mmoupdate command has been removed. It is replaced by /mcconvert database
|
|
||||||
- Removed Abilities.Tools.Durability_Loss_Enabled, set Abilities.Tools.Durability_Loss to 0 to disable instead.
|
|
||||||
- Removed Skills.Fishing.Shake_UnlockLevel from advanced.yml, now using Skills.Fishing.Rank_Levels.Rank_1 instead.
|
|
||||||
- Removed SpoutPlugin support
|
|
||||||
|
|
||||||
Version 1.4.06
|
|
||||||
+ Added "Ice Fishing" ability to Fishing
|
|
||||||
+ Added global scoreboards to track skill rankings (display using /mctop)
|
|
||||||
+ Added per-player scoreboard displays for the /inspect, /mcrank, /mcstats, and /<skillname> commands
|
|
||||||
+ Added tab-complete support for all commands
|
|
||||||
+ Added ability to configure drops from Shake in treasures.yml
|
|
||||||
+ Added "Master Angler" ability to Fishing.
|
|
||||||
+ Added health display for mobs during combat.
|
|
||||||
+ Added new API method to McMMOPlayerLevelUpEvent to set levels gained
|
|
||||||
+ Added new permission node for /ptp; mcmmo.commands.ptp.send (enabled by default)
|
|
||||||
+ Added configurable cooldown and warmup times when using /ptp
|
|
||||||
+ Added a new Party item share category "Misc" which contains a list of configurable items. (By default all tools and armor)
|
|
||||||
+ Added fishing exploit prevention
|
|
||||||
+ Added permission node to bypass the fishing exploit prevention
|
|
||||||
+ Added boosts to Fishing chance depending on conditions
|
|
||||||
+ Added McMMOAbilityActivateEvent and McMMOAbilityDeactivateEvent
|
|
||||||
+ Added config option to toggle the size of fireworks
|
|
||||||
+ Added config option to multiply xp gains from mob spawner mobs
|
|
||||||
+ Added multiplier to Archery XP based on bow force
|
|
||||||
+ Added information about /party itemshare and /party expshare to the party help page
|
|
||||||
+ Added option to use scoreboards for power level display instead of Spout.
|
|
||||||
+ Added permission node to prevent inspecting hidden players
|
|
||||||
+ Added SQL to Flatfile database conversion
|
|
||||||
+ Added ability to use custom database managers and convert to/from them
|
|
||||||
= Fixed bug which could cause the server to hang for a minute when checking for updates. (Thanks to Riking)
|
|
||||||
= Fixed bug where spawned arrows could throw ArrayIndexOutOfBoundsException
|
|
||||||
= Fixed bug where custom Spout titles were overwritten by mcMMO.
|
|
||||||
= Fixed bug where Nether Quartz wasn't included in Smelting or item sharing
|
|
||||||
= Fixed bug where players were able to join the same party multiple times
|
|
||||||
= Fixed displaying partial names when trying to use /ptp
|
|
||||||
= Fixed wolves from Call of the Wild only having 8 health
|
|
||||||
= Fixed bug where /party chat was not working
|
|
||||||
= Fixed bug where experience commands were adding levels to all skills when they shouldn't
|
|
||||||
= Fixed mcmmo.commands.ptp.send not being set by default
|
|
||||||
= Fixed NPE when trying to tab-complete /mctop
|
|
||||||
= Fixed Fishing treasures always having the same enchants
|
|
||||||
= Fixed Smelting returning ink sacs instead of Lapis when double-dropping
|
|
||||||
= Fixed bug where players could remain in party chat after leaving or being kicked from a party.
|
|
||||||
= Fixed bug where non-player arrows couldn't be deflected.
|
|
||||||
= Fixed experience being applied even when the permission for a skill was denied
|
|
||||||
= Fixed possible item duplication bug with infinity bows
|
|
||||||
= Fixed bug with removing players from mySQL database
|
|
||||||
= Fixed bug with empty metadata lists and Smelting
|
|
||||||
= Fixed bug where Blast Mining would drop wrong items
|
|
||||||
= Fixed bug with Blast Mining where the Ability refreshed message was being send too early
|
|
||||||
= Fixed bug where the chance of a successful Gracefull Roll was twice as high as displayed
|
|
||||||
= Fixed bug where lucky perks where not working
|
|
||||||
= Fixed bug with Ice Fishing on a single block of ice
|
|
||||||
= Fixed bug with Ice Fishing which allowed players to break ice in protected areas
|
|
||||||
= Fixed a small bug with mob healthbars and bosses, such as EnderDragons and Withers
|
|
||||||
! Changed Spout notification tiers to be stored in SpoutConfig instead of AdvancedConfig
|
|
||||||
! Changed Berserk to add items to inventory rather than denying pickup
|
|
||||||
! Changed Call of the Wild, newly summoned pet's will have a custom name. (added permission node to disable this)
|
|
||||||
! Changed Chimaera Wing's recipe result to use the ingredient Material
|
|
||||||
! Changed Repair to ask a confirmation of the player when he tries to repair an enchanted item
|
|
||||||
! Players will no longer pickup items to their hotbar while using Unarmed
|
|
||||||
! ExperienceAPI methods will now throw InvalidSkillException if the skill name passed in is invalid.
|
|
||||||
! Changed default value for recently-hurt cooldown between teleports, this is also fully configurable now
|
|
||||||
! Changed the amount of info messages in the console when enabling/disabling, enable Verbose_Logging to enable them again
|
|
||||||
! Items dropped by players are now being tracked and are not being shared with party members
|
|
||||||
! Optimized tracking of tool & ability cooldowns.
|
|
||||||
! Updated the localization files
|
|
||||||
|
|
||||||
Version 1.4.05
|
|
||||||
+ Added option to allow refreshing of chunks after block-breaking abilities. (Disabled by default)
|
|
||||||
+ Added fireworks effects when a player levels-up, for every 100 levels (configurable)
|
|
||||||
= Fixed bug where /addxp was setting instead of adding experience
|
|
||||||
= Fixed bug where /addxp was not processessing level-ups for online players
|
|
||||||
= Fixed bug which allowed players to share experience with nearby dead players
|
|
||||||
= Fixed bug with ChimaeraWings not taking Wings from a players inventory properly
|
|
||||||
= Fixed bug which caused a NPE when trying to use /mctop smelting
|
|
||||||
= Fixed Berserk misbehaving when /reload was used
|
|
||||||
= Fixed parties misbehaving when /reload was used
|
|
||||||
= Fixed Berserk getting "stuck" when /mcrefresh was used
|
|
||||||
= Fixed ClassCastException with Taming
|
|
||||||
= Fixed huge mushroom blocks not being properly tracked
|
|
||||||
= Fixed potion buff option not using the appropriate # of ticks
|
|
||||||
= Fixed Chimera Wing spamming console if Metrics was disabled
|
|
||||||
= Fixed Chimera Wing displaying warmup message if warmup was set to 0
|
|
||||||
= Fixed party & admin chat errors when not aysnc
|
|
||||||
! Updated localization files
|
|
||||||
|
|
||||||
Version 1.4.04
|
|
||||||
+ Added functions to ExperienceAPI for use with offline players
|
|
||||||
+ Added Nether Quartz Ore to Mining
|
|
||||||
+ Added Dropper, Hopper, and Trapped Chest to blocks that shouldn't activate abilities
|
|
||||||
+ Added partial name matching
|
|
||||||
= Fixed bug where trying to activate a Chimaera Wing would require one item too much
|
|
||||||
= Fixed bug where Treefeller would try to cut too many leaves and reach the threshold when it shouldn't
|
|
||||||
= Fixed bug where Mining wasn't awarding double drops
|
|
||||||
= Fixed bug where Shake wouldn't damage mobs whose max health was less than 4
|
|
||||||
= Fixed bug where the API would fail if the name of a player's current party is requested when the player isn't in one (Thanks @dualspiral!)
|
|
||||||
= Fixed bug with retrieving a player's party members
|
|
||||||
= Fixed bug which caused a NPE when trying to join the party of a non-existing player or when ptp to a non-existing player
|
|
||||||
= Fixed bug which causes a NPE when trying to use /mcrefresh from the console
|
|
||||||
= Fixed bug where Carrots and Potatoes weren't awarding Herbalism XP.
|
|
||||||
= Fixed bug where some herbalism drops weren't properly shared within parties.
|
|
||||||
= Fixed bug where players wouldn't be able to pick up items if they logged our while Berserk was still active.
|
|
||||||
! Changed config node name for the skill experience modifiers from "Experience.Formula.Multiplier.[Skill]" to "Experience.Formula.Modifier.[Skill]"
|
|
||||||
! Updated localization files
|
|
||||||
! mcMMO abilities can no longer be activated while in Creative mode
|
|
||||||
! Expanded ChatAPI to allow toggling of chat states for users
|
|
||||||
! Updated to EMetrics 0.0.4-SNAPSHOT
|
|
||||||
- Removed deprecated functions from API classes.
|
|
||||||
- Removed functions for getting the PlayerProfile - using API classes is preferred, but if not the McMMOPlayer should be used instead
|
|
||||||
- Removed Ender Dragon, Wither, and Witch from granting combat experience and related configuration options
|
|
||||||
|
|
||||||
Version 1.4.03
|
|
||||||
+ Added option to advanced.yml to determine the # of enchant levels used when buffing Super Breaker & Giga Drill Breaker
|
+ Added option to advanced.yml to determine the # of enchant levels used when buffing Super Breaker & Giga Drill Breaker
|
||||||
+ Improved stats display for child skills
|
+ Improved stats display for child skills
|
||||||
+ Added cooldown between using Chimaera Wings
|
+ Added cooldown between using Chimaera Wings
|
||||||
= Fixed bug with '/party chat (on|off)' and '/partychat (on|off)' not working
|
|
||||||
= Fixed bug with Repair not decreasing enchanting levels properly
|
= Fixed bug with Repair not decreasing enchanting levels properly
|
||||||
= Fixed bug with Smelting not properly tracking furnaces
|
= Fixed bug with Smelting not properly tracking furnaces
|
||||||
= Fixed bug with Blast Mining not dropping blocks correctly
|
= Fixed bug with Blast Mining not dropping blocks correctly
|
||||||
@@ -442,10 +28,9 @@ Version 1.4.03
|
|||||||
= Fixed bug where the 'mcmmo.commands.ptp.world.all' was registered twice
|
= Fixed bug where the 'mcmmo.commands.ptp.world.all' was registered twice
|
||||||
= Fixed bug where Beast Lore wouldn't work on friendly pets
|
= Fixed bug where Beast Lore wouldn't work on friendly pets
|
||||||
= Fixed bug where Deflect was calculated based on the attacker, not the defender. (We really did this time!)
|
= Fixed bug where Deflect was calculated based on the attacker, not the defender. (We really did this time!)
|
||||||
= Fixed bug where Treefeller would not deal durability damage when the axe "splinters into dozens of pieces"
|
|
||||||
! Moved the Salvage unlock level from config.yml to advanced.yml
|
! Moved the Salvage unlock level from config.yml to advanced.yml
|
||||||
! Changed how Chimaera Wings are acquired, you need to craft them now. (By default, use 5 feathers in a shapeless recipe)
|
! Changed how Chimaera Wings are acquired, you need to craft them now. (By default, use 5 feathers in a shapeless recipe)
|
||||||
! Changed how Chimaera Wings teleport players to the spawnpoint, will now check if the location is safe
|
! Queue mctop and mcrank commands when using mySQL
|
||||||
- Removed option to disable Salvage via the config file. This should be handled via permissions instead.
|
- Removed option to disable Salvage via the config file. This should be handled via permissions instead.
|
||||||
- Removed the option to use Woodcutting without an axe from the config file.
|
- Removed the option to use Woodcutting without an axe from the config file.
|
||||||
|
|
||||||
|
|||||||
61
README.md
61
README.md
@@ -1,50 +1,47 @@
|
|||||||
# mcMMO
|
# mcMMO
|
||||||
## The RPG lovers mod
|
## The RPG lovers mod
|
||||||
|
|
||||||
## Website
|
### Dev builds
|
||||||
I'm working on a brand new website for mcMMO
|
Our latest development builds are available [here](http://ci.mcmmo.info).
|
||||||
|
|
||||||
You can check it out here http://www.mcmmo.org
|
|
||||||
|
|
||||||
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
|
|
||||||
|
|
||||||
|
|
||||||
### Builds
|
|
||||||
Currently, you can obtain our builds via the Spigot resource page: https://www.spigotmc.org/resources/official-mcmmo.63489/
|
|
||||||
|
|
||||||
### Brief Description
|
### Brief Description
|
||||||
The goal of mcMMO is to take core Minecraft game mechanics and expand them into add an extensive and quality RPG experience. Everything in mcMMO has been carefully thought out and is constantly being improved upon. Currently, mcMMO adds fourteen unique skills to train and level in. Each of these skills is highly customizable through our configuration files, allowing server admins to tweak mcMMO to best suit the needs of his or her server. Know that the mcMMO team is dedicated to providing an ever-evolving experience, and that we carefully read all feedback and bug reports in order to evaluate and balance the mechanics of mcMMO in every update.
|
mcMMO takes core Minecraft game mechanics and expands them to add an extensive RPG experience, the goal of the project has always been a quality RPG experience. Everything in mcMMO is carefully thought out and is constantly improving. mcMMO adds eleven skills to train in and level in, while also offering a high level of customization for server admins. There are countless features, including custom sounds, graphical elements, and more added when running mcMMO in conjunction with Spout. I carefully read feedback and evaluate the mechanics of mcMMO in every update to provide an ever-evolving experience.
|
||||||
|
|
||||||
|
If you want an original RPG experience like no other mod out there, mcMMO is for you.
|
||||||
|
|
||||||
## About the Team
|
## About the Team
|
||||||
|
|
||||||
mcMMO is currently developed by a team of individuals from all over the world.
|
mcMMO is currently developed by a team of individuals from all over the world.
|
||||||
|
### Glorious Leader
|
||||||
### Project Lead & Founder
|
[]
|
||||||
[](https://github.com/nossr50)
|
(https://github.com/gmcferrin)
|
||||||
|
|
||||||
### Former Lead
|
|
||||||
[](https://github.com/gmcferrin)
|
|
||||||
|
|
||||||
### Developers
|
### Developers
|
||||||
[](https://github.com/bm01)
|
[]
|
||||||
[](https://github.com/Glitchfinder)
|
(https://github.com/bm01)
|
||||||
[](https://github.com/NuclearW)
|
[]
|
||||||
[](https://github.com/shatteredbeam)
|
(https://github.com/Glitchfinder)
|
||||||
[](https://github.com/TfT-02)
|
[]
|
||||||
[](https://github.com/t00thpick1)
|
(https://github.com/nossr50)
|
||||||
[](https://github.com/riking)
|
[]
|
||||||
|
(https://github.com/NuclearW)
|
||||||
### Special thanks
|
[]
|
||||||
[](https://github.com/EasyMFnE)
|
(https://github.com/shatteredbeam)
|
||||||
Added the Alchemy skill
|
[]
|
||||||
|
(https://github.com/TfT-02)
|
||||||
|
[]
|
||||||
|
(https://github.com/t00thpick1)
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
mcMMO uses Maven 3 to manage dependancies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
|
||||||
|
|
||||||
The typical command used to build mcMMO is: `mvn clean package install`
|
The typical command used to build mcMMO is: mvn clean package install
|
||||||
|
|
||||||
Required Libraries:
|
Required Libraries:
|
||||||
* Bukkit
|
* Spout API
|
||||||
* JUnit
|
* JUnit
|
||||||
|
* Metrics
|
||||||
|
* Bukkit
|
||||||
|
|
||||||
https://www.spigotmc.org/resources/official-mcmmo.63489/ for more up to date information.
|
http://dev.bukkit.org/server-mods/mcmmo for more up to date information.
|
||||||
|
|||||||
@@ -1,439 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,211 +0,0 @@
|
|||||||
# 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:
|
|
||||||
@@ -1,700 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
# 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
|
|
||||||
X2209|1:
|
|
||||||
XP_Gain: 80
|
|
||||||
Double_Drops_Enabled: true
|
|
||||||
Is_Log: true
|
|
||||||
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
|
|
||||||
X2209|2:
|
|
||||||
XP_Gain: 70
|
|
||||||
Double_Drops_Enabled: true
|
|
||||||
Is_Log: true
|
|
||||||
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
|
|
||||||
X2209|1:
|
|
||||||
XP_Gain: 80
|
|
||||||
Double_Drops_Enabled: true
|
|
||||||
Is_Log: true
|
|
||||||
# Cypress
|
|
||||||
X2209|2:
|
|
||||||
XP_Gain: 90
|
|
||||||
Double_Drops_Enabled: true
|
|
||||||
Is_Log: true
|
|
||||||
# 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
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
# 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
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,185 +0,0 @@
|
|||||||
# 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
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,272 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,543 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
# 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
|
|
||||||
X28035:
|
|
||||||
Repairable: true
|
|
||||||
Repair_Material: X28032
|
|
||||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
|
||||||
Repair_Material_Data_Value: 0
|
|
||||||
Repair_Material_Quantity: 8
|
|
||||||
Durability: 320
|
|
||||||
# Phantom
|
|
||||||
X28035:
|
|
||||||
Repairable: false
|
|
||||||
Durability: 480
|
|
||||||
|
|
||||||
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
|
|
||||||
X28034:
|
|
||||||
Repairable: true
|
|
||||||
Repair_Material: X28032
|
|
||||||
Repair_Material_Pretty_Name: "Knightmetal Ingot"
|
|
||||||
Repair_Material_Data_Value: 0
|
|
||||||
Repair_Material_Quantity: 5
|
|
||||||
Durability: 220
|
|
||||||
# Phantom
|
|
||||||
X28034:
|
|
||||||
Repairable: false
|
|
||||||
Durability: 330
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,152 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,184 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
#
|
#
|
||||||
# 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
|
# 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"
|
# 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.
|
# Afterwards, all sub-items are considered a Repairable to be loaded
|
||||||
# The bare minimum of a Repairable is that it have a RepairMaterial and a MaximumDurability
|
# The bare minimum of a Repairable is that it have an ItemId, a RepairMaterialId, and a MaximumDurability
|
||||||
|
#
|
||||||
|
# ItemId: This is the id of the item to be repairable.
|
||||||
|
## This is required to be set.
|
||||||
#
|
#
|
||||||
# ItemType: This is the type of item to be repaired, this is only important to permissions.
|
# ItemType: This is the type of item to be repaired, this is only important to permissions.
|
||||||
## Valid values are ARMOR, TOOL, and OTHER.
|
## Valid values are ARMOR, TOOL, and OTHER.
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
## Valid values are STRING, LEATHER, WOOD, STONE, IRON, GOLD, DIAMOND, and OTHER
|
## Valid values are STRING, LEATHER, WOOD, STONE, IRON, GOLD, DIAMOND, and OTHER
|
||||||
## This defaults to OTHER.
|
## This defaults to OTHER.
|
||||||
#
|
#
|
||||||
# RepairMaterial: This is the material name of the item used to repair this repairable.
|
# RepairMaterialId: This is the id of the item used to repair this repairable.
|
||||||
## This is required to be set.
|
## This is required to be set.
|
||||||
#
|
#
|
||||||
# RepairMaterialMetadata: This is the metadata of the item used to repair this repairable.
|
# RepairMaterialMetadata: This is the metadata of the item used to repair this repairable.
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
## This is required to be set.
|
## This is required to be set.
|
||||||
#
|
#
|
||||||
# MinimumLevel: This is the minimum repair level needed to repair this item.
|
# MinimumLevel: This is the minimum repair level needed to repair this item.
|
||||||
## Valid values are => 0
|
## Valid values are > 0
|
||||||
## This defaults to 0
|
## This defaults to 0
|
||||||
#
|
#
|
||||||
# MinimumQuantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
|
# MinimumQuantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
|
||||||
@@ -42,19 +42,32 @@
|
|||||||
#
|
#
|
||||||
###
|
###
|
||||||
Repairables:
|
Repairables:
|
||||||
#
|
ChainHelmet:
|
||||||
# Chainmail repairables
|
ItemId: 302
|
||||||
###
|
ItemType: ARMOR
|
||||||
# Armor
|
RepairMaterialId: 51
|
||||||
CHAINMAIL_HELMET:
|
MaximumDurability: 165
|
||||||
RepairMaterial: FIRE
|
MinimumQuantity: 5
|
||||||
XpMultiplier: 2
|
XpMultiplier: 2
|
||||||
CHAINMAIL_CHESTPLATE:
|
ChainChest:
|
||||||
RepairMaterial: FIRE
|
ItemId: 303
|
||||||
|
ItemType: ARMOR
|
||||||
|
RepairMaterialId: 51
|
||||||
|
MaximumDurability: 240
|
||||||
|
MinimumQuantity: 8
|
||||||
XpMultiplier: 2
|
XpMultiplier: 2
|
||||||
CHAINMAIL_LEGGINGS:
|
ChainLegs:
|
||||||
RepairMaterial: FIRE
|
ItemId: 304
|
||||||
|
ItemType: ARMOR
|
||||||
|
RepairMaterialId: 51
|
||||||
|
MaximumDurability: 225
|
||||||
|
MinimumQuantity: 7
|
||||||
XpMultiplier: 2
|
XpMultiplier: 2
|
||||||
CHAINMAIL_BOOTS:
|
ChainBoots:
|
||||||
RepairMaterial: FIRE
|
ItemId: 305
|
||||||
|
ItemType: ARMOR
|
||||||
|
RepairMaterialId: 51
|
||||||
|
RepairMaterialMetadata: -1
|
||||||
|
MaximumDurability: 195
|
||||||
|
MinimumQuantity: 4
|
||||||
XpMultiplier: 2
|
XpMultiplier: 2
|
||||||
|
|||||||
116
pom.xml
116
pom.xml
@@ -2,16 +2,15 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>2.1.0-SNAPSHOT</version>
|
<version>1.4.03-dev1</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||||
<issueManagement>
|
<issueManagement>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO/issues</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO/issues</url>
|
||||||
<system>GitHub</system>
|
<system>GitHub</system>
|
||||||
</issueManagement>
|
</issueManagement>
|
||||||
<packaging>jar</packaging>
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>mcMMO</finalName>
|
||||||
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
|
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
@@ -23,6 +22,38 @@
|
|||||||
<include>.jenkins</include>
|
<include>.jenkins</include>
|
||||||
</includes>
|
</includes>
|
||||||
</resource>
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<targetPath>resources</targetPath>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<directory>${basedir}/src/main/resources/xpbar/</directory>
|
||||||
|
<includes>
|
||||||
|
<include>xpbar*.png</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<targetPath>resources</targetPath>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<directory>${basedir}/src/main/resources/healthbar/</directory>
|
||||||
|
<includes>
|
||||||
|
<include>health*.png</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<targetPath>resources</targetPath>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<directory>${basedir}/src/main/resources/skillicon/</directory>
|
||||||
|
<includes>
|
||||||
|
<include>*.png</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<targetPath>resources</targetPath>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<directory>${basedir}/src/main/resources/sound/</directory>
|
||||||
|
<includes>
|
||||||
|
<include>*.wav</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
<resource>
|
<resource>
|
||||||
<targetPath>com/gmail/nossr50/locale</targetPath>
|
<targetPath>com/gmail/nossr50/locale</targetPath>
|
||||||
<filtering>true</filtering>
|
<filtering>true</filtering>
|
||||||
@@ -31,22 +62,6 @@
|
|||||||
<include>locale*.properties</include>
|
<include>locale*.properties</include>
|
||||||
</includes>
|
</includes>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
|
||||||
<targetPath>mods</targetPath>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
<directory>${basedir}/src/main/resources/mods</directory>
|
|
||||||
<includes>
|
|
||||||
<include>*.yml</include>
|
|
||||||
</includes>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<targetPath>.</targetPath>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
<directory>${basedir}</directory>
|
|
||||||
<includes>
|
|
||||||
<include>LICENSE</include>
|
|
||||||
</includes>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -54,8 +69,8 @@
|
|||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>2.3.2</version>
|
<version>2.3.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>1.6</source>
|
||||||
<target>1.8</target>
|
<target>1.6</target>
|
||||||
<excludes>
|
<excludes>
|
||||||
</excludes>
|
</excludes>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -80,27 +95,17 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
<version>3.1.1</version>
|
<version>1.5</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<artifactSet>
|
<artifactSet>
|
||||||
<includes>
|
<includes>
|
||||||
<include>commons-logging:commons-logging</include>
|
<include>com.turt2live.metrics:MetricsExtension</include>
|
||||||
<include>org.apache.tomcat:tomcat-jdbc</include>
|
|
||||||
<include>org.apache.tomcat:tomcat-juli</include>
|
|
||||||
</includes>
|
</includes>
|
||||||
</artifactSet>
|
</artifactSet>
|
||||||
<relocations>
|
<relocations>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>org.apache.commons.logging</pattern>
|
<pattern>com.turt2live.metrics</pattern>
|
||||||
<shadedPattern>com.gmail.nossr50.commons.logging</shadedPattern>
|
<shadedPattern>com.gmail.nossr50.metrics.mcstats</shadedPattern>
|
||||||
</relocation>
|
|
||||||
<relocation>
|
|
||||||
<pattern>org.apache.juli</pattern>
|
|
||||||
<shadedPattern>com.gmail.nossr50.database.tomcat.juli</shadedPattern>
|
|
||||||
</relocation>
|
|
||||||
<relocation>
|
|
||||||
<pattern>org.apache.tomcat</pattern>
|
|
||||||
<shadedPattern>com.gmail.nossr50.database.tomcat</shadedPattern>
|
|
||||||
</relocation>
|
</relocation>
|
||||||
</relocations>
|
</relocations>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -124,16 +129,32 @@
|
|||||||
</build>
|
</build>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>spigot-repo</id>
|
<id>bukkit-repo</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
<url>http://repo.bukkit.org/content/groups/public/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>spout-repo</id>
|
||||||
|
<url>http://nexus.spout.org/content/groups/public/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>Plugin MetricsExtension</id>
|
||||||
|
<url>http://repo.turt2live.com</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>1.13.2-R0.1-SNAPSHOT</version>
|
<version>LATEST</version>
|
||||||
<scope>provided</scope>
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.getspout</groupId>
|
||||||
|
<artifactId>spoutplugin</artifactId>
|
||||||
|
<version>LATEST</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
@@ -142,12 +163,19 @@
|
|||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.tomcat</groupId>
|
<groupId>com.turt2live.metrics</groupId>
|
||||||
<artifactId>tomcat-jdbc</artifactId>
|
<artifactId>MetricsExtension</artifactId>
|
||||||
<version>7.0.52</version>
|
<version>0.0.2-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>mcmmo-repo</id>
|
||||||
|
<url>file:///var/lib/jenkins/repo</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: com.gmail.nossr50.mcMMO
|
|
||||||
|
|
||||||
@@ -1,48 +1,46 @@
|
|||||||
package com.gmail.nossr50.api;
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SuperAbility;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public final class AbilityAPI {
|
public final class AbilityAPI {
|
||||||
private AbilityAPI() {}
|
private AbilityAPI() {}
|
||||||
|
|
||||||
public static boolean berserkEnabled(Player player) {
|
public static boolean berserkEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.BERSERK);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.BERSERK);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean gigaDrillBreakerEnabled(Player player) {
|
public static boolean gigaDrillBreakerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.GIGA_DRILL_BREAKER);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GIGA_DRILL_BREAKER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean greenTerraEnabled(Player player) {
|
public static boolean greenTerraEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.GREEN_TERRA);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.GREEN_TERRA);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean serratedStrikesEnabled(Player player) {
|
public static boolean serratedStrikesEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SERRATED_STRIKES);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SERRATED_STRIKES);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean skullSplitterEnabled(Player player) {
|
public static boolean skullSplitterEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SKULL_SPLITTER);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SKULL_SPLITTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean superBreakerEnabled(Player player) {
|
public static boolean superBreakerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.SUPER_BREAKER);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.SUPER_BREAKER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean treeFellerEnabled(Player player) {
|
public static boolean treeFellerEnabled(Player player) {
|
||||||
return UserManager.getPlayer(player).getAbilityMode(SuperAbility.TREE_FELLER);
|
return UserManager.getPlayer(player).getAbilityMode(AbilityType.TREE_FELLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAnyAbilityEnabled(Player player) {
|
public static boolean isAnyAbilityEnabled(Player player) {
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
|
||||||
for (SuperAbility ability : SuperAbility.values()) {
|
for (AbilityType ability : AbilityType.values()) {
|
||||||
if (mcMMOPlayer.getAbilityMode(ability)) {
|
if (mcMMOPlayer.getAbilityMode(ability)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -50,40 +48,4 @@ public final class AbilityAPI {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void resetCooldowns(Player player) {
|
|
||||||
UserManager.getPlayer(player).resetCooldowns();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setBerserkCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.BERSERK, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setGigaDrillBreakerCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.GIGA_DRILL_BREAKER, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setGreenTerraCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.GREEN_TERRA, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setSerratedStrikesCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SERRATED_STRIKES, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setSkullSplitterCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SKULL_SPLITTER, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setSuperBreakerCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.SUPER_BREAKER, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setTreeFellerCooldown(Player player, long cooldown) {
|
|
||||||
UserManager.getPlayer(player).setAbilityDATS(SuperAbility.TREE_FELLER, cooldown);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isBleeding(LivingEntity entity) {
|
|
||||||
return BleedTimerTask.isBleeding(entity);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.gmail.nossr50.chat.ChatManager;
|
import com.gmail.nossr50.chat.ChatManager;
|
||||||
import com.gmail.nossr50.chat.ChatManagerFactory;
|
|
||||||
import com.gmail.nossr50.chat.PartyChatManager;
|
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -25,7 +22,7 @@ public final class ChatAPI {
|
|||||||
* @param message The message to send
|
* @param message The message to send
|
||||||
*/
|
*/
|
||||||
public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
|
public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
|
||||||
getPartyChatManager(plugin, party).handleChat(sender, displayName, message);
|
ChatManager.handlePartyChat(plugin, PartyManager.getParty(party), sender, displayName, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,7 +36,23 @@ public final class ChatAPI {
|
|||||||
* @param message The message to send
|
* @param message The message to send
|
||||||
*/
|
*/
|
||||||
public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
|
public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
|
||||||
getPartyChatManager(plugin, party).handleChat(sender, message);
|
ChatManager.handlePartyChat(plugin, PartyManager.getParty(party), sender, sender, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to all members of a party
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @deprecated Replaced by sendPartyChat(Plugin, String, String, String)
|
||||||
|
*
|
||||||
|
* @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
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static void sendPartyChat(String sender, String party, String message) {
|
||||||
|
sendPartyChat(null, party, sender, sender, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,7 +66,7 @@ public final class ChatAPI {
|
|||||||
* @param message The message to send
|
* @param message The message to send
|
||||||
*/
|
*/
|
||||||
public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
|
public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
|
||||||
ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN).handleChat(sender, displayName, message);
|
ChatManager.handleAdminChat(plugin, sender, displayName, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,7 +79,22 @@ public final class ChatAPI {
|
|||||||
* @param message The message to send
|
* @param message The message to send
|
||||||
*/
|
*/
|
||||||
public static void sendAdminChat(Plugin plugin, String sender, String message) {
|
public static void sendAdminChat(Plugin plugin, String sender, String message) {
|
||||||
ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN).handleChat(sender, message);
|
ChatManager.handleAdminChat(plugin, sender, sender, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to administrators
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @deprecated Replaced by sendAdminChat(Plugin, String, String)
|
||||||
|
*
|
||||||
|
* @param sender The name of the sender to display in the chat
|
||||||
|
* @param message The message to send
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static void sendAdminChat(String sender, String message) {
|
||||||
|
sendAdminChat(null, sender, sender, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -76,7 +104,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using party chat, false otherwise
|
* @return true if the player is using party chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingPartyChat(Player player) {
|
public static boolean isUsingPartyChat(Player player) {
|
||||||
return UserManager.getPlayer(player).isChatEnabled(ChatMode.PARTY);
|
return UserManager.getPlayer(player).getPartyChatMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,7 +114,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using party chat, false otherwise
|
* @return true if the player is using party chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingPartyChat(String playerName) {
|
public static boolean isUsingPartyChat(String playerName) {
|
||||||
return UserManager.getPlayer(playerName).isChatEnabled(ChatMode.PARTY);
|
return UserManager.getPlayer(playerName).getPartyChatMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,7 +124,7 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using admin chat, false otherwise
|
* @return true if the player is using admin chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingAdminChat(Player player) {
|
public static boolean isUsingAdminChat(Player player) {
|
||||||
return UserManager.getPlayer(player).isChatEnabled(ChatMode.ADMIN);
|
return UserManager.getPlayer(player).getAdminChatMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -106,49 +134,6 @@ public final class ChatAPI {
|
|||||||
* @return true if the player is using admin chat, false otherwise
|
* @return true if the player is using admin chat, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isUsingAdminChat(String playerName) {
|
public static boolean isUsingAdminChat(String playerName) {
|
||||||
return UserManager.getPlayer(playerName).isChatEnabled(ChatMode.ADMIN);
|
return UserManager.getPlayer(playerName).getAdminChatMode();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the party chat mode of a player.
|
|
||||||
*
|
|
||||||
* @param player The player to toggle party chat on.
|
|
||||||
*/
|
|
||||||
public static void togglePartyChat(Player player) {
|
|
||||||
UserManager.getPlayer(player).toggleChat(ChatMode.PARTY);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the party chat mode of a player.
|
|
||||||
*
|
|
||||||
* @param playerName The name of the player to toggle party chat on.
|
|
||||||
*/
|
|
||||||
public static void togglePartyChat(String playerName) {
|
|
||||||
UserManager.getPlayer(playerName).toggleChat(ChatMode.PARTY);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the admin chat mode of a player.
|
|
||||||
*
|
|
||||||
* @param player The player to toggle admin chat on.
|
|
||||||
*/
|
|
||||||
public static void toggleAdminChat(Player player) {
|
|
||||||
UserManager.getPlayer(player).toggleChat(ChatMode.ADMIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle the admin chat mode of a player.
|
|
||||||
*
|
|
||||||
* @param playerName The name of the player to toggle party chat on.
|
|
||||||
*/
|
|
||||||
public static void toggleAdminChat(String playerName) {
|
|
||||||
UserManager.getPlayer(playerName).toggleChat(ChatMode.ADMIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static ChatManager getPartyChatManager(Plugin plugin, String party) {
|
|
||||||
ChatManager chatManager = ChatManagerFactory.getChatManager(plugin, ChatMode.PARTY);
|
|
||||||
((PartyChatManager) chatManager).setParty(PartyManager.getParty(party));
|
|
||||||
|
|
||||||
return chatManager;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,12 @@
|
|||||||
package com.gmail.nossr50.api;
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyLeader;
|
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
@@ -24,13 +19,9 @@ public final class PartyAPI {
|
|||||||
* This function is designed for API usage.
|
* This function is designed for API usage.
|
||||||
*
|
*
|
||||||
* @param player The player to check the party name of
|
* @param player The player to check the party name of
|
||||||
* @return the name of the player's party, or null if not in a party
|
* @return the name of the player's party
|
||||||
*/
|
*/
|
||||||
public static String getPartyName(Player player) {
|
public static String getPartyName(Player player) {
|
||||||
if (!inParty(player)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UserManager.getPlayer(player).getParty().getName();
|
return UserManager.getPlayer(player).getParty().getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,10 +73,12 @@ public final class PartyAPI {
|
|||||||
Party party = PartyManager.getParty(partyName);
|
Party party = PartyManager.getParty(partyName);
|
||||||
|
|
||||||
if (party == null) {
|
if (party == null) {
|
||||||
party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
|
party = new Party();
|
||||||
|
party.setName(partyName);
|
||||||
|
party.setLeader(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
PartyManager.addToParty(UserManager.getPlayer(player), party);
|
PartyManager.addToParty(player, UserManager.getPlayer(player), party);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,7 +89,7 @@ public final class PartyAPI {
|
|||||||
* @param player The player to remove
|
* @param player The player to remove
|
||||||
*/
|
*/
|
||||||
public static void removeFromParty(Player player) {
|
public static void removeFromParty(Player player) {
|
||||||
PartyManager.removeFromParty(UserManager.getPlayer(player));
|
PartyManager.removeFromParty(player, UserManager.getPlayer(player).getParty());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -108,7 +101,7 @@ public final class PartyAPI {
|
|||||||
* @return the leader of the party
|
* @return the leader of the party
|
||||||
*/
|
*/
|
||||||
public static String getPartyLeader(String partyName) {
|
public static String getPartyLeader(String partyName) {
|
||||||
return PartyManager.getPartyLeaderName(partyName);
|
return PartyManager.getPartyLeader(partyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,11 +110,30 @@ public final class PartyAPI {
|
|||||||
* This function is designed for API usage.
|
* This function is designed for API usage.
|
||||||
*
|
*
|
||||||
* @param partyName The name of the party to set the leader of
|
* @param partyName The name of the party to set the leader of
|
||||||
* @param playerName The playerName to set as leader
|
* @param player The player to set as leader
|
||||||
|
*/
|
||||||
|
public static void setPartyLeader(String partyName, String player) {
|
||||||
|
PartyManager.setPartyLeader(player, PartyManager.getParty(partyName));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of all players in this player's party.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param player The player to check
|
||||||
|
* @return all the players in the player's party
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static void setPartyLeader(String partyName, String playerName) {
|
public static List<String> getAllMembers(Player player) {
|
||||||
PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName));
|
List<String> memberNames = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (OfflinePlayer member : PartyManager.getAllMembers(player)) {
|
||||||
|
memberNames.add(member.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return memberNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -132,39 +144,7 @@ public final class PartyAPI {
|
|||||||
* @param player The player to check
|
* @param player The player to check
|
||||||
* @return all the players in the player's party
|
* @return all the players in the player's party
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
|
||||||
public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
|
public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
|
||||||
List<OfflinePlayer> members = new ArrayList<OfflinePlayer>();
|
|
||||||
|
|
||||||
for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) {
|
|
||||||
OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
|
|
||||||
members.add(member);
|
|
||||||
}
|
|
||||||
return members;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of all player names in this player's party.
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @param player The player to check
|
|
||||||
* @return all the player names in the player's party
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static LinkedHashSet<String> getMembers(Player player) {
|
|
||||||
return (LinkedHashSet<String>) PartyManager.getAllMembers(player).values();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of all player names and uuids in this player's party.
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @param player The player to check
|
|
||||||
* @return all the player names and uuids in the player's party
|
|
||||||
*/
|
|
||||||
public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
|
|
||||||
return PartyManager.getAllMembers(player);
|
return PartyManager.getAllMembers(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,17 +171,4 @@ public final class PartyAPI {
|
|||||||
public static List<Player> getOnlineMembers(Player player) {
|
public static List<Player> getOnlineMembers(Player player) {
|
||||||
return PartyManager.getOnlineMembers(player);
|
return PartyManager.getOnlineMembers(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean hasAlly(String partyName) {
|
|
||||||
return getAllyName(partyName) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getAllyName(String partyName) {
|
|
||||||
Party ally = PartyManager.getParty(partyName).getAlly();
|
|
||||||
if (ally != null) {
|
|
||||||
return ally.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
package com.gmail.nossr50.api;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
|
||||||
|
|
||||||
public final class SkillAPI {
|
|
||||||
private SkillAPI() {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This includes parent and child skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getSkills() {
|
|
||||||
return getListFromEnum(Arrays.asList(PrimarySkill.values()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This only includes parent skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getNonChildSkills() {
|
|
||||||
return getListFromEnum(PrimarySkill.NON_CHILD_SKILLS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This only includes child skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getChildSkills() {
|
|
||||||
return getListFromEnum(PrimarySkill.CHILD_SKILLS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This only includes combat skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getCombatSkills() {
|
|
||||||
return getListFromEnum(PrimarySkill.COMBAT_SKILLS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This only includes gathering skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getGatheringSkills() {
|
|
||||||
return getListFromEnum(PrimarySkill.GATHERING_SKILLS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of strings with mcMMO's skills
|
|
||||||
* This only includes misc skills
|
|
||||||
* </br>
|
|
||||||
* This function is designed for API usage.
|
|
||||||
*
|
|
||||||
* @return a list of strings with valid skill names
|
|
||||||
*/
|
|
||||||
public static List<String> getMiscSkills() {
|
|
||||||
return getListFromEnum(PrimarySkill.MISC_SKILLS);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<String> getListFromEnum(List<PrimarySkill> skillsTypes) {
|
|
||||||
List<String> skills = new ArrayList<String>();
|
|
||||||
|
|
||||||
for (PrimarySkill primarySkill : skillsTypes) {
|
|
||||||
skills.add(primarySkill.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
return skills;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
29
src/main/java/com/gmail/nossr50/api/SpoutHudAPI.java
Normal file
29
src/main/java/com/gmail/nossr50/api/SpoutHudAPI.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.spout.SpoutConfig;
|
||||||
|
import com.gmail.nossr50.datatypes.spout.huds.HudType;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
|
public class SpoutHudAPI {
|
||||||
|
private SpoutHudAPI() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the mcMMO XP bar for a player.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*/
|
||||||
|
public static void disableXpBar(Player player) {
|
||||||
|
UserManager.getPlayer(player).getProfile().setHudType(HudType.DISABLED);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the mcMMO XP bar for the server.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*/
|
||||||
|
public static void disableXpBar() {
|
||||||
|
SpoutConfig.getInstance().setXPBarEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
53
src/main/java/com/gmail/nossr50/api/SpoutToolsAPI.java
Normal file
53
src/main/java/com/gmail/nossr50/api/SpoutToolsAPI.java
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package com.gmail.nossr50.api;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.ToolType;
|
||||||
|
|
||||||
|
public final class SpoutToolsAPI {
|
||||||
|
public static final List<ItemStack> spoutSwords = new ArrayList<ItemStack>();
|
||||||
|
public static final List<ItemStack> spoutAxes = new ArrayList<ItemStack>();
|
||||||
|
public static final List<ItemStack> spoutPickaxes = new ArrayList<ItemStack>();
|
||||||
|
public static final List<ItemStack> spoutHoes = new ArrayList<ItemStack>();
|
||||||
|
public static final List<ItemStack> spoutShovels = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
|
private SpoutToolsAPI() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a custom Spout tool to mcMMO for XP gain & ability use.
|
||||||
|
* </br>
|
||||||
|
* This function is designed for API usage.
|
||||||
|
*
|
||||||
|
* @param spoutTool The tool to add
|
||||||
|
* @param type The type of tool to add
|
||||||
|
*/
|
||||||
|
public static void addCustomTool(ItemStack spoutTool, ToolType type) {
|
||||||
|
switch (type) {
|
||||||
|
case AXE:
|
||||||
|
spoutAxes.add(spoutTool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HOE:
|
||||||
|
spoutHoes.add(spoutTool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PICKAXE:
|
||||||
|
spoutPickaxes.add(spoutTool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOVEL:
|
||||||
|
spoutShovels.add(spoutTool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SWORD:
|
||||||
|
spoutSwords.add(spoutTool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.gmail.nossr50.api.exceptions;
|
|
||||||
|
|
||||||
public class InvalidFormulaTypeException extends RuntimeException {
|
|
||||||
private static final long serialVersionUID = 3368670229490121886L;
|
|
||||||
|
|
||||||
public InvalidFormulaTypeException() {
|
|
||||||
super("That is not a valid FormulaType.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.gmail.nossr50.api.exceptions;
|
|
||||||
|
|
||||||
public class InvalidPlayerException extends RuntimeException {
|
|
||||||
private static final long serialVersionUID = 907213002618581385L;
|
|
||||||
|
|
||||||
public InvalidPlayerException() {
|
|
||||||
super("That player does not exist in the database.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.gmail.nossr50.api.exceptions;
|
|
||||||
|
|
||||||
public class InvalidSkillException extends RuntimeException {
|
|
||||||
private static final long serialVersionUID = 942705284195791157L;
|
|
||||||
|
|
||||||
public InvalidSkillException() {
|
|
||||||
super("That is not a valid skill.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.gmail.nossr50.api.exceptions;
|
|
||||||
|
|
||||||
public class InvalidXPGainReasonException extends RuntimeException {
|
|
||||||
private static final long serialVersionUID = 4427052841957931157L;
|
|
||||||
|
|
||||||
public InvalidXPGainReasonException() {
|
|
||||||
super("That is not a valid XPGainReason.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package com.gmail.nossr50.api.exceptions;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class McMMOPlayerNotFoundException extends RuntimeException {
|
|
||||||
private static final long serialVersionUID = 761917904993202836L;
|
|
||||||
|
|
||||||
public McMMOPlayerNotFoundException(Player player) {
|
|
||||||
super("McMMOPlayer object was not found for: " + player.getName() + " " + player.getUniqueId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
package com.gmail.nossr50.chat;
|
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
|
||||||
|
|
||||||
public class AdminChatManager extends ChatManager {
|
|
||||||
protected AdminChatManager(Plugin plugin) {
|
|
||||||
super(plugin, Config.getInstance().getAdminDisplayNames(), Config.getInstance().getAdminChatPrefix());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleChat(String senderName, String displayName, String message, boolean isAsync) {
|
|
||||||
handleChat(new McMMOAdminChatEvent(plugin, senderName, displayName, message, isAsync));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void sendMessage() {
|
|
||||||
plugin.getServer().broadcast(message, "mcmmo.chat.adminchat");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,87 +1,78 @@
|
|||||||
package com.gmail.nossr50.chat;
|
package com.gmail.nossr50.chat;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
|
||||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.gmail.nossr50.events.chat.McMMOChatEvent;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
|
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
||||||
|
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
|
||||||
public abstract class ChatManager {
|
public final class ChatManager {
|
||||||
protected Plugin plugin;
|
public ChatManager () {}
|
||||||
protected boolean useDisplayNames;
|
|
||||||
protected String chatPrefix;
|
|
||||||
|
|
||||||
protected String senderName;
|
public static void handleAdminChat(Plugin plugin, String playerName, String displayName, String message, boolean isAsync) {
|
||||||
protected String displayName;
|
McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(plugin, playerName, displayName, message, isAsync);
|
||||||
protected String message;
|
mcMMO.p.getServer().getPluginManager().callEvent(chatEvent);
|
||||||
|
|
||||||
protected ChatManager(Plugin plugin, boolean useDisplayNames, String chatPrefix) {
|
if (chatEvent.isCancelled()) {
|
||||||
this.plugin = plugin;
|
|
||||||
this.useDisplayNames = useDisplayNames;
|
|
||||||
this.chatPrefix = chatPrefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void handleChat(McMMOChatEvent event) {
|
|
||||||
plugin.getServer().getPluginManager().callEvent(event);
|
|
||||||
|
|
||||||
if (event.isCancelled()) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
senderName = event.getSender();
|
if (Config.getInstance().getAdminDisplayNames()) {
|
||||||
displayName = useDisplayNames ? event.getDisplayName() : senderName;
|
displayName = chatEvent.getDisplayName();
|
||||||
message = LocaleLoader.formatString(chatPrefix, displayName) + " " + event.getMessage();
|
|
||||||
|
|
||||||
sendMessage();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Party Chat Spying
|
|
||||||
* Party messages will be copied to people with the mcmmo.admin.chatspy permission node
|
|
||||||
*/
|
|
||||||
if(event instanceof McMMOPartyChatEvent)
|
|
||||||
{
|
|
||||||
//We need to grab the party chat name
|
|
||||||
McMMOPartyChatEvent partyChatEvent = (McMMOPartyChatEvent) event;
|
|
||||||
|
|
||||||
//Find the people with permissions
|
|
||||||
for(Player player : event.getPlugin().getServer().getOnlinePlayers())
|
|
||||||
{
|
|
||||||
//Check for toggled players
|
|
||||||
if(UserManager.getPlayer(player).isPartyChatSpying())
|
|
||||||
{
|
|
||||||
Party adminParty = UserManager.getPlayer(player).getParty();
|
|
||||||
|
|
||||||
//Only message admins not part of this party
|
|
||||||
if(adminParty != null)
|
|
||||||
{
|
|
||||||
//TODO: Incorporate JSON
|
|
||||||
if(!adminParty.getName().equalsIgnoreCase(partyChatEvent.getParty()))
|
|
||||||
player.sendMessage(ChatColor.GOLD+"[SPY: "+ChatColor.GREEN+partyChatEvent.getParty()+ChatColor.GOLD+"] "+message);
|
|
||||||
} else {
|
|
||||||
player.sendMessage(ChatColor.GOLD+"[SPY: "+ChatColor.GREEN+partyChatEvent.getParty()+ChatColor.GOLD+"] "+message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
displayName = chatEvent.getSender();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleChat(String senderName, String message) {
|
String adminMessage = chatEvent.getMessage();
|
||||||
handleChat(senderName, senderName, message, false);
|
|
||||||
|
mcMMO.p.getServer().broadcast(LocaleLoader.getString("Commands.AdminChat.Prefix", displayName) + adminMessage, "mcmmo.chat.adminchat");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleChat(Player player, String message, boolean isAsync) {
|
public static void handleAdminChat(Plugin plugin, String senderName, String message) {
|
||||||
handleChat(player.getName(), player.getDisplayName(), message, isAsync);
|
handleAdminChat(plugin, senderName, senderName, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleChat(String senderName, String displayName, String message) {
|
public static void handleAdminChat(Plugin plugin, String playerName, String displayName, String message) {
|
||||||
handleChat(senderName, displayName, message, false);
|
handleAdminChat(plugin, playerName, displayName, message, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void handleChat(String senderName, String displayName, String message, boolean isAsync);
|
public static void handlePartyChat(Plugin plugin, Party party, String playerName, String displayName, String message, boolean isAsync) {
|
||||||
|
String partyName = party.getName();
|
||||||
|
|
||||||
protected abstract void sendMessage();
|
McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(plugin, playerName, displayName, partyName, message, isAsync);
|
||||||
|
mcMMO.p.getServer().getPluginManager().callEvent(chatEvent);
|
||||||
|
|
||||||
|
if (chatEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.getInstance().getPartyDisplayNames()) {
|
||||||
|
displayName = chatEvent.getDisplayName();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
displayName = chatEvent.getSender();
|
||||||
|
}
|
||||||
|
|
||||||
|
String partyMessage = chatEvent.getMessage();
|
||||||
|
|
||||||
|
for (Player member : party.getOnlineMembers()) {
|
||||||
|
member.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Prefix", displayName) + partyMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMO.p.getLogger().info("[P](" + partyName + ")" + "<" + ChatColor.stripColor(displayName) + "> " + partyMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handlePartyChat(Plugin plugin, Party party, String senderName, String message) {
|
||||||
|
handlePartyChat(plugin, party, senderName, senderName, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handlePartyChat(Plugin plugin, Party party, String playerName, String displayName, String message) {
|
||||||
|
handlePartyChat(plugin, party, playerName, displayName, message, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
package com.gmail.nossr50.chat;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
|
||||||
|
|
||||||
public class ChatManagerFactory {
|
|
||||||
private static final HashMap<Plugin, AdminChatManager> adminChatManagers = new HashMap<Plugin, AdminChatManager>();
|
|
||||||
private static final HashMap<Plugin, PartyChatManager> partyChatManagers = new HashMap<Plugin, PartyChatManager>();
|
|
||||||
|
|
||||||
public static ChatManager getChatManager(Plugin plugin, ChatMode mode) {
|
|
||||||
switch (mode) {
|
|
||||||
case ADMIN:
|
|
||||||
if (!adminChatManagers.containsKey(plugin)) {
|
|
||||||
adminChatManagers.put(plugin, new AdminChatManager(plugin));
|
|
||||||
}
|
|
||||||
|
|
||||||
return adminChatManagers.get(plugin);
|
|
||||||
case PARTY:
|
|
||||||
if (!partyChatManagers.containsKey(plugin)) {
|
|
||||||
partyChatManagers.put(plugin, new PartyChatManager(plugin));
|
|
||||||
}
|
|
||||||
|
|
||||||
return partyChatManagers.get(plugin);
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
70
src/main/java/com/gmail/nossr50/chat/ChatMode.java
Normal file
70
src/main/java/com/gmail/nossr50/chat/ChatMode.java
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
package com.gmail.nossr50.chat;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
|
||||||
|
public enum ChatMode {
|
||||||
|
ADMIN(LocaleLoader.getString("Commands.AdminChat.On"), LocaleLoader.getString("Commands.AdminChat.Off")),
|
||||||
|
PARTY(LocaleLoader.getString("Commands.Party.Chat.On"), LocaleLoader.getString("Commands.Party.Chat.Off"));
|
||||||
|
|
||||||
|
private String enabledMessage;
|
||||||
|
private String disabledMessage;
|
||||||
|
|
||||||
|
private ChatMode(String enabledMessage, String disabledMessage) {
|
||||||
|
this.enabledMessage = enabledMessage;
|
||||||
|
this.disabledMessage = disabledMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled(McMMOPlayer mcMMOPlayer) {
|
||||||
|
switch (this) {
|
||||||
|
case ADMIN:
|
||||||
|
return mcMMOPlayer.getAdminChatMode();
|
||||||
|
|
||||||
|
case PARTY:
|
||||||
|
return mcMMOPlayer.getPartyChatMode();
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disable(McMMOPlayer mcMMOPlayer) {
|
||||||
|
switch (this) {
|
||||||
|
case ADMIN:
|
||||||
|
mcMMOPlayer.setAdminChat(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
case PARTY:
|
||||||
|
mcMMOPlayer.setPartyChat(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enable(McMMOPlayer mcMMOPlayer) {
|
||||||
|
switch (this) {
|
||||||
|
case ADMIN:
|
||||||
|
mcMMOPlayer.setAdminChat(true);
|
||||||
|
mcMMOPlayer.setPartyChat(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
case PARTY:
|
||||||
|
mcMMOPlayer.setPartyChat(true);
|
||||||
|
mcMMOPlayer.setAdminChat(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnabledMessage() {
|
||||||
|
return enabledMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisabledMessage() {
|
||||||
|
return disabledMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
package com.gmail.nossr50.chat;
|
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
|
||||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
|
||||||
import com.gmail.nossr50.runnables.party.PartyChatTask;
|
|
||||||
|
|
||||||
public class PartyChatManager extends ChatManager {
|
|
||||||
private Party party;
|
|
||||||
|
|
||||||
protected PartyChatManager(Plugin plugin) {
|
|
||||||
super(plugin, Config.getInstance().getPartyDisplayNames(), Config.getInstance().getPartyChatPrefix());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParty(Party party) {
|
|
||||||
this.party = party;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleChat(String senderName, String displayName, String message, boolean isAsync) {
|
|
||||||
handleChat(new McMMOPartyChatEvent(plugin, senderName, displayName, party.getName(), message, isAsync));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void sendMessage() {
|
|
||||||
new PartyChatTask(plugin, party, senderName, displayName, message).runTask(plugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
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 com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public class KrakenCommand implements TabExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 0:
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Permissions.kraken(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
UserManager.getPlayer(sender.getName()).getFishingManager().unleashTheKraken();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
if (!Permissions.krakenOthers(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
mcMMOPlayer.getFishingManager().unleashTheKraken();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.database.FlatfileDatabaseManager;
|
|
||||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public class MHDCommand implements TabExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
if (mcMMO.getDatabaseManager() instanceof SQLDatabaseManager) {
|
|
||||||
SQLDatabaseManager m = (SQLDatabaseManager) mcMMO.getDatabaseManager();
|
|
||||||
m.resetMobHealthSettings();
|
|
||||||
for (McMMOPlayer player : UserManager.getPlayers()) {
|
|
||||||
player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault());
|
|
||||||
}
|
|
||||||
sender.sendMessage("Mob health reset");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (mcMMO.getDatabaseManager() instanceof FlatfileDatabaseManager) {
|
|
||||||
FlatfileDatabaseManager m = (FlatfileDatabaseManager) mcMMO.getDatabaseManager();
|
|
||||||
m.resetMobHealthSettings();
|
|
||||||
for (McMMOPlayer player : UserManager.getPlayers()) {
|
|
||||||
player.getProfile().setMobHealthbarType(Config.getInstance().getMobHealthbarDefault());
|
|
||||||
}
|
|
||||||
sender.sendMessage("Mob health reset");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,351 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.Closeable;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.ModConfigType;
|
|
||||||
import com.gmail.nossr50.util.Misc;
|
|
||||||
|
|
||||||
public class McImportCommand implements CommandExecutor {
|
|
||||||
int fileAmount;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 0:
|
|
||||||
importModConfig();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
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<ModConfigType, ArrayList<String>>();
|
|
||||||
|
|
||||||
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<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
materialNames.get(type).add(materialName);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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<String, ArrayList<String>>();
|
|
||||||
|
|
||||||
for (String materialName : materialNames.get(modConfigType)) {
|
|
||||||
String modName = Misc.getModName(materialName);
|
|
||||||
|
|
||||||
if (!materialNamesType.containsKey(modName)) {
|
|
||||||
materialNamesType.put(modName, new ArrayList<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
|
||||||
|
|
||||||
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 (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
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<String, ArrayList<String>>();
|
|
||||||
|
|
||||||
// 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("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<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
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<String, ArrayList<String>>();
|
|
||||||
|
|
||||||
// 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<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
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<String, ArrayList<String>>();
|
|
||||||
|
|
||||||
// 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<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
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<String, ArrayList<String>>();
|
|
||||||
|
|
||||||
// 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<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
ArrayList<String> skillContents = configSections.get(configKey);
|
|
||||||
skillContents.add(" " + materialName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return configSections;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,30 +1,79 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class McabilityCommand extends ToggleCommand {
|
public class McabilityCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean hasOtherPermission(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.mcabilityOthers(sender);
|
McMMOPlayer mcMMOPlayer;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
if (!Permissions.mcability(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||||
protected boolean hasSelfPermission(CommandSender sender) {
|
|
||||||
return Permissions.mcability(sender);
|
if (mcMMOPlayer.getAbilityUse()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Ability.Off"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Ability.On"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
|
||||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
|
|
||||||
mcMMOPlayer.toggleAbilityUse();
|
mcMMOPlayer.toggleAbilityUse();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
if (!Permissions.mcabilityOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Ability.Toggle", playerName));
|
if (mcMMOPlayer == null) {
|
||||||
|
PlayerProfile playerProfile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!playerProfile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = mcMMOPlayer.getPlayer();
|
||||||
|
|
||||||
|
if (!player.isOnline()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mcMMOPlayer.getAbilityUse()) {
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.Ability.Off"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.Ability.On"));
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.toggleAbilityUse();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
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;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.commands.database.ConvertDatabaseCommand;
|
|
||||||
import com.gmail.nossr50.commands.experience.ConvertExperienceCommand;
|
|
||||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
|
||||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
|
||||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public class McconvertCommand implements TabExecutor {
|
|
||||||
private static final List<String> FORMULA_TYPES;
|
|
||||||
private static final List<String> DATABASE_TYPES;
|
|
||||||
private static final List<String> SUBCOMMANDS = ImmutableList.of("database", "experience");
|
|
||||||
|
|
||||||
private CommandExecutor databaseConvertCommand = new ConvertDatabaseCommand();
|
|
||||||
private CommandExecutor experienceConvertCommand = new ConvertExperienceCommand();
|
|
||||||
|
|
||||||
static {
|
|
||||||
ArrayList<String> formulaTypes = new ArrayList<String>();
|
|
||||||
ArrayList<String> databaseTypes = new ArrayList<String>();
|
|
||||||
|
|
||||||
for (FormulaType type : FormulaType.values()) {
|
|
||||||
formulaTypes.add(type.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (DatabaseType type : DatabaseType.values()) {
|
|
||||||
databaseTypes.add(type.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom stuff
|
|
||||||
databaseTypes.remove(DatabaseType.CUSTOM.toString());
|
|
||||||
|
|
||||||
if (mcMMO.getDatabaseManager().getDatabaseType() == DatabaseType.CUSTOM) {
|
|
||||||
databaseTypes.add(DatabaseManagerFactory.getCustomDatabaseManagerClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Collections.sort(formulaTypes);
|
|
||||||
Collections.sort(databaseTypes);
|
|
||||||
|
|
||||||
FORMULA_TYPES = ImmutableList.copyOf(formulaTypes);
|
|
||||||
DATABASE_TYPES = ImmutableList.copyOf(databaseTypes);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 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")) {
|
|
||||||
return experienceConvertCommand.onCommand(sender, command, label, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS, new ArrayList<String>(SUBCOMMANDS.size()));
|
|
||||||
case 2:
|
|
||||||
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
|
|
||||||
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES, new ArrayList<String>(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<String>(FORMULA_TYPES.size()));
|
|
||||||
}
|
|
||||||
|
|
||||||
return ImmutableList.of();
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,30 +1,88 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class McgodCommand extends ToggleCommand {
|
public class McgodCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean hasOtherPermission(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.mcgodOthers(sender);
|
McMMOPlayer mcMMOPlayer;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
if (!Permissions.mcgod(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (!(sender instanceof Player)) {
|
||||||
protected boolean hasSelfPermission(CommandSender sender) {
|
return false;
|
||||||
return Permissions.mcgod(sender);
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||||
|
|
||||||
|
if (mcMMOPlayer == null) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mcMMOPlayer.getGodMode()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Disabled"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Enabled"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
|
||||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
|
||||||
mcMMOPlayer.toggleGodMode();
|
mcMMOPlayer.toggleGodMode();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
if (!Permissions.mcgodOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.GodMode.Toggle", playerName));
|
if (mcMMOPlayer == null) {
|
||||||
|
PlayerProfile playerProfile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!playerProfile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = mcMMOPlayer.getPlayer();
|
||||||
|
|
||||||
|
if (!player.isOnline()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mcMMOPlayer.getGodMode()) {
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.GodMode.Disabled"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.GodMode.Enabled"));
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.toggleGodMode();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.getspout.spoutapi.player.SpoutPlayer;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
import com.gmail.nossr50.commands.party.PartySubcommandType;
|
||||||
@@ -26,15 +28,16 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
sender.sendMessage(mcSplit);
|
sender.sendMessage(mcSplit);
|
||||||
|
|
||||||
if (Config.getInstance().getDonateMessageEnabled()) {
|
if (Config.getInstance().getDonateMessageEnabled()) {
|
||||||
|
if (mcMMO.spoutEnabled && sender instanceof SpoutPlayer) {
|
||||||
|
SpoutPlayer spoutPlayer = (SpoutPlayer) sender;
|
||||||
|
spoutPlayer.sendNotification(LocaleLoader.getString("Spout.Donate"), ChatColor.GREEN + "gjmcferrin@gmail.com", Material.DIAMOND);
|
||||||
|
}
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
|
||||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "gjmcferrin@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;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -45,9 +48,9 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcc.Header"));
|
sender.sendMessage(LocaleLoader.getString("Commands.mcc.Header"));
|
||||||
displayGeneralCommands(sender);
|
|
||||||
displayOtherCommands(sender);
|
|
||||||
displayPartyCommands(sender);
|
displayPartyCommands(sender);
|
||||||
|
displayOtherCommands(sender);
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -56,57 +59,55 @@ public class McmmoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayGeneralCommands(CommandSender sender) {
|
private void displayPartyCommands(CommandSender sender) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
|
if (Permissions.party(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
|
sender.sendMessage("/party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
|
||||||
|
sender.sendMessage("/party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
|
||||||
|
sender.sendMessage("/party quit " + LocaleLoader.getString("Commands.Party.Quit"));
|
||||||
|
|
||||||
if (Permissions.inspect(sender)) {
|
if (Permissions.partyChat(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
|
sender.sendMessage("/party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.mcability(sender)) {
|
sender.sendMessage("/party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
|
sender.sendMessage("/party accept " + LocaleLoader.getString("Commands.Party.Accept"));
|
||||||
|
|
||||||
|
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
|
||||||
|
sender.sendMessage("/party teleport " + LocaleLoader.getString("Commands.Party.Teleport"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayOtherCommands(CommandSender sender) {
|
private void displayOtherCommands(CommandSender sender) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
|
||||||
|
sender.sendMessage("/mcstats " + LocaleLoader.getString("Commands.Stats"));
|
||||||
|
sender.sendMessage("/mctop " + LocaleLoader.getString("Commands.Leaderboards"));
|
||||||
|
|
||||||
if (Permissions.skillreset(sender)) {
|
if (Permissions.skillreset(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
|
sender.sendMessage("/skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.mmoedit(sender)) {
|
if (Permissions.mcability(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
|
sender.sendMessage("/mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.adminChat(sender)) {
|
if (Permissions.adminChat(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
|
sender.sendMessage("/adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Permissions.inspect(sender)) {
|
||||||
|
sender.sendMessage("/inspect " + LocaleLoader.getString("Commands.Inspect"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Permissions.mmoedit(sender)) {
|
||||||
|
sender.sendMessage("/mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.mcgod(sender)) {
|
if (Permissions.mcgod(sender)) {
|
||||||
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
|
sender.sendMessage("/mcgod " + LocaleLoader.getString("Commands.mcgod"));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayPartyCommands(CommandSender sender) {
|
sender.sendMessage(LocaleLoader.getString("Commands.SkillInfo"));
|
||||||
if (Permissions.party(sender)) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
|
|
||||||
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(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
|
|
||||||
}
|
|
||||||
|
|
||||||
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(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,28 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
public class McnotifyCommand implements CommandExecutor {
|
||||||
|
|
||||||
public class McnotifyCommand implements TabExecutor {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));
|
if (mcMMOPlayer.useChatNotifications()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Notifications.Off"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Notifications.On"));
|
||||||
|
}
|
||||||
|
|
||||||
mcMMOPlayer.toggleChatNotifications();
|
mcMMOPlayer.toggleChatNotifications();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -28,9 +30,4 @@ public class McnotifyCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +1,80 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
public class McrefreshCommand extends ToggleCommand {
|
public class McrefreshCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean hasOtherPermission(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.mcrefreshOthers(sender);
|
McMMOPlayer mcMMOPlayer;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
if (!Permissions.mcrefresh(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (!(sender instanceof Player)) {
|
||||||
protected boolean hasSelfPermission(CommandSender sender) {
|
return false;
|
||||||
return Permissions.mcrefresh(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
mcMMOPlayer = UserManager.getPlayer(sender.getName());
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
|
||||||
mcMMOPlayer.setRecentlyHurt(0);
|
mcMMOPlayer.setRecentlyHurt(0);
|
||||||
mcMMOPlayer.resetCooldowns();
|
mcMMOPlayer.getProfile().resetCooldowns();
|
||||||
mcMMOPlayer.resetToolPrepMode();
|
mcMMOPlayer.resetToolPrepMode();
|
||||||
mcMMOPlayer.resetAbilityMode();
|
mcMMOPlayer.resetAbilityMode();
|
||||||
|
|
||||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
sender.sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
if (!Permissions.mcrefreshOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", playerName));
|
if (mcMMOPlayer == null) {
|
||||||
|
PlayerProfile playerProfile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!playerProfile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = mcMMOPlayer.getPlayer();
|
||||||
|
|
||||||
|
if (!player.isOnline()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Offline"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.setRecentlyHurt(0);
|
||||||
|
mcMMOPlayer.getProfile().resetCooldowns();
|
||||||
|
mcMMOPlayer.resetToolPrepMode();
|
||||||
|
mcMMOPlayer.resetAbilityMode();
|
||||||
|
|
||||||
|
player.sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", args[0]));
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
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 com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
|
||||||
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public class McscoreboardCommand implements TabExecutor {
|
|
||||||
private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
if (args[0].equalsIgnoreCase("clear") || args[0].equalsIgnoreCase("reset")) {
|
|
||||||
ScoreboardManager.clearBoard(sender.getName());
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Clear"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("keep")) {
|
|
||||||
if (!Config.getInstance().getAllowKeepBoard()) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ScoreboardManager.isBoardShown(sender.getName())) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.NoBoard"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ScoreboardManager.keepBoard(sender.getName());
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Keep"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return help(sender);
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
if (args[0].equalsIgnoreCase("time") || args[0].equalsIgnoreCase("timer")) {
|
|
||||||
if (CommandUtils.isInvalidInteger(sender, args[1])) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int time = Math.abs(Integer.parseInt(args[1]));
|
|
||||||
|
|
||||||
ScoreboardManager.setRevertTimer(sender.getName(), time);
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Timer", time));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return help(sender);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return help(sender);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS, new ArrayList<String>(FIRST_ARGS.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean help(CommandSender sender) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Help.0"));
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Help.1"));
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Help.2"));
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Help.3"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
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.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
|
||||||
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;
|
|
||||||
|
|
||||||
public class MobhealthCommand implements TabExecutor {
|
|
||||||
private static final List<String> MOB_HEALTHBAR_TYPES;
|
|
||||||
|
|
||||||
static {
|
|
||||||
ArrayList<String> types = new ArrayList<String>();
|
|
||||||
|
|
||||||
for (MobHealthbarType type : MobHealthbarType.values()) {
|
|
||||||
types.add(type.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
Collections.sort(types);
|
|
||||||
MOB_HEALTHBAR_TYPES = ImmutableList.copyOf(types);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
try {
|
|
||||||
MobHealthbarType type = MobHealthbarType.valueOf(args[0].toUpperCase().trim());
|
|
||||||
UserManager.getPlayer((Player) sender).getProfile().setMobHealthbarType(type);
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Healthbars.Changed." + type.name()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (IllegalArgumentException ex) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Healthbars.Invalid"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
return StringUtil.copyPartialMatches(args[0], MOB_HEALTHBAR_TYPES, new ArrayList<String>(MOB_HEALTHBAR_TYPES.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands;
|
|
||||||
|
|
||||||
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 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;
|
|
||||||
|
|
||||||
public abstract class ToggleCommand implements TabExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 0:
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!hasSelfPermission(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
applyCommandAction(UserManager.getPlayer(sender.getName()));
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
if (!hasOtherPermission(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
|
|
||||||
|
|
||||||
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
applyCommandAction(mcMMOPlayer);
|
|
||||||
sendSuccessMessage(sender, playerName);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract boolean hasOtherPermission(CommandSender sender);
|
|
||||||
protected abstract boolean hasSelfPermission(CommandSender sender);
|
|
||||||
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
|
|
||||||
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
|
||||||
}
|
|
||||||
@@ -1,24 +1,17 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
public class XprateCommand implements CommandExecutor {
|
||||||
|
private static double originalRate = Config.getInstance().getExperienceGainsGlobalMultiplier();
|
||||||
public class XprateCommand implements TabExecutor {
|
|
||||||
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
@@ -38,12 +31,12 @@ public class XprateCommand implements TabExecutor {
|
|||||||
mcMMO.p.toggleXpEventEnabled();
|
mcMMO.p.toggleXpEventEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(ORIGINAL_XP_RATE);
|
Config.getInstance().setExperienceGainsGlobalMultiplier(originalRate);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (CommandUtils.isInvalidInteger(sender, args[0])) {
|
if (!StringUtils.isInt(args[0])) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Permissions.xprateSet(sender)) {
|
if (!Permissions.xprateSet(sender)) {
|
||||||
@@ -51,18 +44,13 @@ public class XprateCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CommandUtils.shouldDisableToggle(args[1])) {
|
if (!args[1].equalsIgnoreCase("true") && !args[1].equalsIgnoreCase("false")) {
|
||||||
mcMMO.p.setXPEventEnabled(false);
|
|
||||||
}
|
|
||||||
else if (CommandUtils.shouldEnableToggle(args[1])) {
|
|
||||||
mcMMO.p.setXPEventEnabled(true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mcMMO.p.setXPEventEnabled(Boolean.valueOf(args[1]));
|
||||||
int newXpRate = Integer.parseInt(args[0]);
|
int newXpRate = Integer.parseInt(args[0]);
|
||||||
ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
|
Config.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
|
||||||
|
|
||||||
if (mcMMO.p.isXPEventEnabled()) {
|
if (mcMMO.p.isXPEventEnabled()) {
|
||||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.xprate.started.0"));
|
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.xprate.started.0"));
|
||||||
@@ -78,20 +66,4 @@ public class XprateCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, 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<String>(CommandUtils.RESET_OPTIONS.size()));
|
|
||||||
case 2:
|
|
||||||
return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<String>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package com.gmail.nossr50.commands.chat;
|
package com.gmail.nossr50.commands.chat;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.chat.ChatManager;
|
||||||
|
import com.gmail.nossr50.chat.ChatMode;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
|
||||||
public class AdminChatCommand extends ChatCommand {
|
public class AdminChatCommand extends ChatCommand {
|
||||||
public AdminChatCommand() {
|
public AdminChatCommand() {
|
||||||
@@ -11,6 +15,12 @@ public class AdminChatCommand extends ChatCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleChatSending(CommandSender sender, String[] args) {
|
protected void handleChatSending(CommandSender sender, String[] args) {
|
||||||
chatManager.handleChat(sender.getName(), getDisplayName(sender), buildChatMessage(args, 0));
|
if (sender instanceof Player) {
|
||||||
|
Player player = (Player) sender;
|
||||||
|
ChatManager.handleAdminChat(mcMMO.p, player.getName(), player.getDisplayName(), buildChatMessage(args, 0));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ChatManager.handleAdminChat(mcMMO.p, LocaleLoader.getString("Commands.Chat.Console"), buildChatMessage(args, 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,81 +1,57 @@
|
|||||||
package com.gmail.nossr50.commands.chat;
|
package com.gmail.nossr50.commands.chat;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.chat.ChatMode;
|
||||||
import com.gmail.nossr50.chat.ChatManager;
|
|
||||||
import com.gmail.nossr50.chat.ChatManagerFactory;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
public abstract class ChatCommand implements CommandExecutor {
|
||||||
|
protected McMMOPlayer mcMMOPlayer;
|
||||||
public abstract class ChatCommand implements TabExecutor {
|
protected ChatMode chatMode;
|
||||||
private ChatMode chatMode;
|
|
||||||
protected ChatManager chatManager;
|
|
||||||
|
|
||||||
public ChatCommand(ChatMode chatMode) {
|
public ChatCommand(ChatMode chatMode) {
|
||||||
this.chatMode = chatMode;
|
this.chatMode = chatMode;
|
||||||
this.chatManager = ChatManagerFactory.getChatManager(mcMMO.p, chatMode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
McMMOPlayer mcMMOPlayer;
|
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (!(sender instanceof Player)) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
mcMMOPlayer = UserManager.getPlayer(sender.getName());
|
if (chatMode.isEnabled(mcMMOPlayer)) {
|
||||||
|
disableChatMode(sender);
|
||||||
if (mcMMOPlayer.isChatEnabled(chatMode)) {
|
|
||||||
disableChatMode(mcMMOPlayer, sender);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
enableChatMode(mcMMOPlayer, sender);
|
enableChatMode(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (!CommandUtils.hasPlayerDataKey(sender)) {
|
if (args[0].equalsIgnoreCase("on")) {
|
||||||
|
if (!(sender instanceof Player)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
enableChatMode(sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CommandUtils.shouldEnableToggle(args[0])) {
|
if (args[0].equalsIgnoreCase("off")) {
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (!(sender instanceof Player)) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
enableChatMode(UserManager.getPlayer(sender.getName()), sender);
|
disableChatMode(sender);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CommandUtils.shouldDisableToggle(args[0])) {
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
disableChatMode(UserManager.getPlayer(sender.getName()), sender);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,16 +63,6 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
return StringUtil.copyPartialMatches(args[0], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<String>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String buildChatMessage(String[] args, int index) {
|
protected String buildChatMessage(String[] args, int index) {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append(args[index]);
|
builder.append(args[index]);
|
||||||
@@ -109,34 +75,15 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getDisplayName(CommandSender sender) {
|
|
||||||
return (sender instanceof Player) ? ((Player) sender).getDisplayName() : LocaleLoader.getString("Commands.Chat.Console");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
||||||
|
|
||||||
private void enableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
private void enableChatMode(CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
chatMode.enable(mcMMOPlayer);
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chatMode == ChatMode.PARTY && (mcMMOPlayer.getParty().getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.CHAT))) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.1"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mcMMOPlayer.enableChat(chatMode);
|
|
||||||
sender.sendMessage(chatMode.getEnabledMessage());
|
sender.sendMessage(chatMode.getEnabledMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
private void disableChatMode(CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
chatMode.disable(mcMMOPlayer);
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mcMMOPlayer.disableChat(chatMode);
|
|
||||||
sender.sendMessage(chatMode.getDisabledMessage());
|
sender.sendMessage(chatMode.getDisabledMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.chat;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.commands.ToggleCommand;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class McChatSpy extends ToggleCommand {
|
|
||||||
@Override
|
|
||||||
protected boolean hasOtherPermission(CommandSender sender) {
|
|
||||||
return Permissions.adminChatSpyOthers(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean hasSelfPermission(CommandSender sender) {
|
|
||||||
return Permissions.adminChatSpy(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
|
||||||
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
|
||||||
mcMMOPlayer.togglePartyChatSpying();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void sendSuccessMessage(CommandSender sender, String playerName) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Toggle", playerName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,11 +3,10 @@ package com.gmail.nossr50.commands.chat;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.chat.PartyChatManager;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.chat.ChatManager;
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
import com.gmail.nossr50.chat.ChatMode;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.party.PartyManager;
|
import com.gmail.nossr50.party.PartyManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
@@ -19,23 +18,16 @@ public class PartyChatCommand extends ChatCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleChatSending(CommandSender sender, String[] args) {
|
protected void handleChatSending(CommandSender sender, String[] args) {
|
||||||
Party party;
|
|
||||||
String message;
|
|
||||||
|
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
party = UserManager.getPlayer((Player) sender).getParty();
|
Player player = (Player) sender;
|
||||||
|
Party party = UserManager.getPlayer(player).getParty();
|
||||||
|
|
||||||
if (party == null) {
|
if (party == null) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
sender.sendMessage(LocaleLoader.getString("Commands.Party.None"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(PartyFeature.CHAT)) {
|
ChatManager.handlePartyChat(mcMMO.p, party, player.getName(), player.getDisplayName(), buildChatMessage(args, 0));
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.Feature.Disabled.1"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
message = buildChatMessage(args, 0);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
@@ -43,17 +35,14 @@ public class PartyChatCommand extends ChatCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
party = PartyManager.getParty(args[0]);
|
Party party = PartyManager.getParty(args[0]);
|
||||||
|
|
||||||
if (party == null) {
|
if (party == null) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Party.InvalidName"));
|
sender.sendMessage(LocaleLoader.getString("Party.InvalidName"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
message = buildChatMessage(args, 1);
|
ChatManager.handlePartyChat(mcMMO.p, party, LocaleLoader.getString("Commands.Chat.Console"), buildChatMessage(args, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
((PartyChatManager) chatManager).setParty(party);
|
|
||||||
chatManager.handleChat(sender.getName(), getDisplayName(sender), message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,75 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.database;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.database.DatabaseManager;
|
|
||||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
|
||||||
import com.gmail.nossr50.datatypes.database.DatabaseType;
|
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
public class ConvertDatabaseCommand implements CommandExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 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()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType);
|
|
||||||
|
|
||||||
if (previousType == DatabaseType.CUSTOM) {
|
|
||||||
Class<?> clazz;
|
|
||||||
|
|
||||||
try {
|
|
||||||
clazz = Class.forName(args[1]);
|
|
||||||
|
|
||||||
if (!DatabaseManager.class.isAssignableFrom(clazz)) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
|
|
||||||
}
|
|
||||||
catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString()));
|
|
||||||
|
|
||||||
UserManager.saveAll();
|
|
||||||
UserManager.clearAll();
|
|
||||||
|
|
||||||
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
|
||||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
|
||||||
|
|
||||||
if (profile.isLoaded()) {
|
|
||||||
mcMMO.getDatabaseManager().saveUser(profile);
|
|
||||||
}
|
|
||||||
|
|
||||||
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
|
||||||
}
|
|
||||||
|
|
||||||
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(mcMMO.p);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +1,38 @@
|
|||||||
package com.gmail.nossr50.commands.database;
|
package com.gmail.nossr50.commands.database;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.database.DatabaseManager;
|
||||||
|
import com.gmail.nossr50.database.LeaderboardManager;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
public class McpurgeCommand implements CommandExecutor {
|
||||||
|
|
||||||
public class McpurgeCommand implements TabExecutor {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!Permissions.mcpurge(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
mcMMO.getDatabaseManager().purgePowerlessUsers();
|
if (Config.getInstance().getUseMySQL()) {
|
||||||
|
DatabaseManager.purgePowerlessSQL();
|
||||||
|
|
||||||
if (Config.getInstance().getOldUsersCutoff() != -1) {
|
if (Config.getInstance().getOldUsersCutoff() != -1) {
|
||||||
mcMMO.getDatabaseManager().purgeOldUsers();
|
DatabaseManager.purgeOldSQL();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LeaderboardManager.purgePowerlessFlatfile();
|
||||||
|
|
||||||
|
if (Config.getInstance().getOldUsersCutoff() != -1) {
|
||||||
|
LeaderboardManager.purgeOldFlatfile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcpurge.Success"));
|
sender.sendMessage(LocaleLoader.getString("Commands.mcpurge.Success"));
|
||||||
@@ -30,9 +42,4 @@ public class McpurgeCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +1,45 @@
|
|||||||
package com.gmail.nossr50.commands.database;
|
package com.gmail.nossr50.commands.database;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.database.DatabaseManager;
|
||||||
|
import com.gmail.nossr50.database.LeaderboardManager;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
public class McremoveCommand implements CommandExecutor {
|
||||||
|
|
||||||
public class McremoveCommand implements TabExecutor {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
switch (args.length) {
|
if (!Permissions.mcremove(sender)) {
|
||||||
case 1:
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
|
||||||
|
|
||||||
if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false))) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mcMMO.getDatabaseManager().removeUser(playerName)) {
|
switch (args.length) {
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", playerName));
|
case 1:
|
||||||
|
/* MySQL */
|
||||||
|
if (Config.getInstance().getUseMySQL()) {
|
||||||
|
String tablePrefix = Config.getInstance().getMySQLTablePrefix();
|
||||||
|
|
||||||
|
if (DatabaseManager.update("DELETE FROM " + tablePrefix + "users WHERE " + tablePrefix + "users.user = '" + args[0] + "'") != 0) {
|
||||||
|
DatabaseManager.profileCleanup(args[0]);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", args[0]));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sender.sendMessage(playerName + " could not be removed from the database."); // Pretty sure this should NEVER happen.
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (LeaderboardManager.removeFlatFileUser(args[0])) {
|
||||||
|
DatabaseManager.profileCleanup(args[0]);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", args[0]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -39,15 +48,4 @@ public class McremoveCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.database;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
|
||||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
|
|
||||||
public class MmoshowdbCommand implements TabExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 0:
|
|
||||||
Class<?> clazz = DatabaseManagerFactory.getCustomDatabaseManagerClass();
|
|
||||||
|
|
||||||
if (clazz != null) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb", clazz.getName()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb", (Config.getInstance().getUseMySQL() ? "sql" : "flatfile")));
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.gmail.nossr50.commands.database;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
|
import com.gmail.nossr50.runnables.database.SQLConversionTask;
|
||||||
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
|
||||||
|
public class MmoupdateCommand implements CommandExecutor {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!Permissions.mmoupdate(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoupdate.Start"));
|
||||||
|
UserManager.clearAll();
|
||||||
|
convertToMySQL();
|
||||||
|
|
||||||
|
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
||||||
|
UserManager.addUser(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoupdate.Finish"));
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert FlatFile data to MySQL data.
|
||||||
|
*/
|
||||||
|
private void convertToMySQL() {
|
||||||
|
if (!Config.getInstance().getUseMySQL()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMO.p.getServer().getScheduler().runTaskLaterAsynchronously(mcMMO.p, new SQLConversionTask(), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,46 +1,154 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
|
||||||
public class AddlevelsCommand extends ExperienceCommand {
|
public class AddlevelsCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.addlevels(sender);
|
PlayerProfile profile;
|
||||||
|
int levels;
|
||||||
|
boolean allSkills = false;
|
||||||
|
SkillType skill = null;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 2:
|
||||||
|
if (!Permissions.addlevels(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (!(sender instanceof Player)) {
|
||||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
return false;
|
||||||
return Permissions.addlevelsOthers(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (args[0].equalsIgnoreCase("all")) {
|
||||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
allSkills = true;
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
}
|
||||||
profile.addLevels(skill, value);
|
else if (!SkillUtils.isSkill(args[0])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
if (player == null) {
|
return true;
|
||||||
profile.scheduleAsyncSave();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
|
if (!StringUtils.isInt(args[1])) {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
levels = Integer.parseInt(args[1]);
|
||||||
protected void handlePlayerMessageAll(Player player, int value) {
|
profile = UserManager.getPlayer((Player) sender).getProfile();
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
profile.addLevels(skillType, levels);
|
||||||
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
}
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName()));
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[0]);
|
||||||
|
profile.addLevels(skill, levels);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", levels));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", levels, SkillUtils.getSkillName(skill)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
if (!Permissions.addlevelsOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
|
allSkills = true;
|
||||||
|
}
|
||||||
|
else if (!SkillUtils.isSkill(args[1])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isInt(args[2])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
|
levels = Integer.parseInt(args[2]);
|
||||||
|
|
||||||
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
|
if (mcMMOPlayer == null) {
|
||||||
|
profile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!profile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.addLevels(skillType, levels);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
profile.addLevels(skill, levels);
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.save(); // Since this is a temporary profile, we save it here.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
profile = mcMMOPlayer.getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.addLevels(skillType, levels);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", levels));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
profile.addLevels(skill, levels);
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", levels, SkillUtils.getSkillName(skill)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", args[0]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", SkillUtils.getSkillName(skill), args[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,44 +1,152 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
|
||||||
public class AddxpCommand extends ExperienceCommand {
|
public class AddxpCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.addxp(sender);
|
int xp;
|
||||||
|
McMMOPlayer mcMMOPlayer;
|
||||||
|
PlayerProfile profile;
|
||||||
|
boolean allSkills = false;
|
||||||
|
SkillType skill = null;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 2:
|
||||||
|
if (!Permissions.addxp(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (!(sender instanceof Player)) {
|
||||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
return false;
|
||||||
return Permissions.addxpOthers(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (args[0].equalsIgnoreCase("all")) {
|
||||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
allSkills = true;
|
||||||
if (player != null) {
|
}
|
||||||
UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND);
|
else if (!SkillUtils.isSkill(args[0])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isInt(args[1])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
xp = Integer.parseInt(args[1]);
|
||||||
|
mcMMOPlayer = UserManager.getPlayer((Player) sender);
|
||||||
|
profile = mcMMOPlayer.getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.applyXpGain(skillType, xp);
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addxp.AwardAll", xp));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
profile.addXp(skill, value);
|
skill = SkillType.getSkill(args[0]);
|
||||||
profile.scheduleAsyncSave();
|
|
||||||
|
mcMMOPlayer.applyXpGain(skill, xp);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", xp, SkillUtils.getSkillName(skill)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
if (!Permissions.addxpOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
|
allSkills = true;
|
||||||
|
}
|
||||||
|
else if (!SkillUtils.isSkill(args[1])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isInt(args[2])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
|
xp = Integer.parseInt(args[2]);
|
||||||
|
|
||||||
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
|
if (mcMMOPlayer == null) {
|
||||||
|
profile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!profile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Currently the offline player doesn't level up automatically
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.setSkillXpLevel(skillType, xp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
profile.setSkillXpLevel(skill, xp);
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.save(); // Since this is a temporary profile, we save it here.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.applyXpGain(skillType, xp);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.addxp.AwardAll", xp));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
mcMMOPlayer.applyXpGain(skill, xp);
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", xp, SkillUtils.getSkillName(skill)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (allSkills) {
|
||||||
protected void handlePlayerMessageAll(Player player, int value) {
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", args[0]));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardAll", value));
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", SkillUtils.getSkillName(skill), args[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
return true;
|
||||||
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getName()));
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
|
||||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
|
||||||
|
|
||||||
public class ConvertExperienceCommand implements CommandExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 2:
|
|
||||||
FormulaType previousType = mcMMO.getFormulaManager().getPreviousFormulaType();
|
|
||||||
FormulaType newType = FormulaType.getFormulaType(args[1].toUpperCase());
|
|
||||||
|
|
||||||
if (newType == FormulaType.UNKNOWN) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Experience.Invalid"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (previousType == newType) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Experience.Same", newType.toString()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Experience.Start", previousType.toString(), newType.toString()));
|
|
||||||
|
|
||||||
UserManager.saveAll();
|
|
||||||
UserManager.clearAll();
|
|
||||||
|
|
||||||
new FormulaConversionTask(sender, newType).runTaskLater(mcMMO.p, 1);
|
|
||||||
|
|
||||||
for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
|
|
||||||
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|
||||||
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;
|
|
||||||
|
|
||||||
public abstract class ExperienceCommand implements TabExecutor {
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
PrimarySkill skill;
|
|
||||||
|
|
||||||
switch (args.length) {
|
|
||||||
case 2:
|
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!permissionsCheckSelf(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!validateArguments(sender, args[0], args[1])) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
skill = PrimarySkill.getSkill(args[0]);
|
|
||||||
|
|
||||||
if (args[1].equalsIgnoreCase("all")) {
|
|
||||||
skill = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (skill != null && skill.isChildSkill())
|
|
||||||
{
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), skill, Integer.parseInt(args[1]));
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
if (!permissionsCheckOthers(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!validateArguments(sender, args[1], args[2])) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
skill = PrimarySkill.getSkill(args[1]);
|
|
||||||
|
|
||||||
if (args[1].equalsIgnoreCase("all")) {
|
|
||||||
skill = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (skill != null && skill.isChildSkill())
|
|
||||||
{
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int value = Integer.parseInt(args[2]);
|
|
||||||
|
|
||||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getOfflinePlayer(playerName);
|
|
||||||
|
|
||||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
|
||||||
if (mcMMOPlayer == null) {
|
|
||||||
UUID uuid = null;
|
|
||||||
OfflinePlayer player = mcMMO.p.getServer().getOfflinePlayer(playerName);
|
|
||||||
if (player != null) {
|
|
||||||
uuid = player.getUniqueId();
|
|
||||||
}
|
|
||||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
|
||||||
|
|
||||||
if (CommandUtils.unloadedProfile(sender, profile)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
editValues(null, profile, skill, value);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName, skill);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
|
||||||
case 2:
|
|
||||||
return StringUtil.copyPartialMatches(args[1], PrimarySkill.SKILL_NAMES, new ArrayList<String>(PrimarySkill.SKILL_NAMES.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract boolean permissionsCheckSelf(CommandSender sender);
|
|
||||||
protected abstract boolean permissionsCheckOthers(CommandSender sender);
|
|
||||||
protected abstract void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value);
|
|
||||||
protected abstract void handlePlayerMessageAll(Player player, int value);
|
|
||||||
protected abstract void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill);
|
|
||||||
|
|
||||||
private boolean validateArguments(CommandSender sender, String skillName, String value) {
|
|
||||||
return !(CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName)));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkill skill) {
|
|
||||||
if (skill == null) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void editValues(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
|
||||||
if (skill == null) {
|
|
||||||
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
|
||||||
handleCommand(player, profile, primarySkill, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) {
|
|
||||||
handlePlayerMessageAll(player, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
handleCommand(player, profile, skill, value);
|
|
||||||
|
|
||||||
if (player != null) {
|
|
||||||
handlePlayerMessageSkill(player, value, skill);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,52 +1,150 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
|
||||||
public class MmoeditCommand extends ExperienceCommand {
|
public class MmoeditCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.mmoedit(sender);
|
PlayerProfile profile;
|
||||||
|
int newValue;
|
||||||
|
boolean allSkills = false;
|
||||||
|
SkillType skill = null;
|
||||||
|
|
||||||
|
switch (args.length) {
|
||||||
|
case 2:
|
||||||
|
if (!Permissions.mmoedit(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (!(sender instanceof Player)) {
|
||||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
return false;
|
||||||
return Permissions.mmoeditOthers(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (args[0].equalsIgnoreCase("all")) {
|
||||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill, int value) {
|
allSkills = true;
|
||||||
int skillLevel = profile.getSkillLevel(skill);
|
}
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
else if (!SkillUtils.isSkill(args[0])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
profile.modifySkill(skill, value);
|
return true;
|
||||||
|
|
||||||
if (player == null) {
|
|
||||||
profile.scheduleAsyncSave();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value == skillLevel) {
|
if (!StringUtils.isInt(args[1])) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, value, xpRemoved, value > skillLevel, XPGainReason.COMMAND);
|
newValue = Integer.parseInt(args[1]);
|
||||||
|
profile = UserManager.getPlayer((Player) sender).getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
profile.modifySkill(skillType, newValue);
|
||||||
protected void handlePlayerMessageAll(Player player, int value) {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.AllSkills.1", value));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit.AllSkills.1", newValue));
|
||||||
protected void handlePlayerMessageSkill(Player player, int value, PrimarySkill skill) {
|
}
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getName(), value));
|
else {
|
||||||
|
skill = SkillType.getSkill(args[0]);
|
||||||
|
profile.modifySkill(skill, newValue);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", SkillUtils.getSkillName(skill), newValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
if (!Permissions.mmoeditOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
|
allSkills = true;
|
||||||
|
}
|
||||||
|
else if (!SkillUtils.isSkill(args[1])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isInt(args[2])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
newValue = Integer.parseInt(args[2]);
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
|
|
||||||
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
|
if (mcMMOPlayer == null) {
|
||||||
|
profile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!profile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.modifySkill(skillType, newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
profile.modifySkill(skill, newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.save(); // Since this is a temporary profile, we save it here.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
profile = mcMMOPlayer.getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.modifySkill(skillType, newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.mmoedit.AllSkills.1", newValue));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
profile.modifySkill(skill, newValue);
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", SkillUtils.getSkillName(skill), newValue));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", args[0]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.2", SkillUtils.getSkillName(skill), args[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,180 +1,169 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.StringUtil;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.XPGainReason;
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.commands.CommandUtils;
|
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||||
|
|
||||||
/**
|
public class SkillresetCommand implements CommandExecutor {
|
||||||
* This class mirrors the structure of ExperienceCommand, except the
|
|
||||||
* value/quantity argument is removed.
|
|
||||||
*/
|
|
||||||
public class SkillresetCommand implements TabExecutor {
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
PrimarySkill skill;
|
PlayerProfile profile;
|
||||||
|
boolean allSkills = false;
|
||||||
|
SkillType skill = null;
|
||||||
|
String skillName = "";
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
if (CommandUtils.noConsoleUsage(sender)) {
|
if (!Permissions.skillreset(sender)) {
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!permissionsCheckSelf(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validateArguments(sender, args[0])) {
|
if (!(sender instanceof Player)) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("all")) {
|
if (args[0].equalsIgnoreCase("all")) {
|
||||||
skill = null;
|
allSkills = true;
|
||||||
|
}
|
||||||
|
else if (!SkillUtils.isSkill(args[0])) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile = UserManager.getPlayer((Player) sender).getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Permissions.skillreset(sender, skillType)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.modifySkill(skillType, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
skill = PrimarySkill.getSkill(args[1]);
|
skill = SkillType.getSkill(args[0]);
|
||||||
}
|
skillName = SkillUtils.getSkillName(skill);
|
||||||
|
|
||||||
editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), skill);
|
if (!Permissions.skillreset(sender, skill)) {
|
||||||
return true;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
if (!permissionsCheckOthers(sender)) {
|
|
||||||
sender.sendMessage(command.getPermissionMessage());
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validateArguments(sender, args[1])) {
|
profile.modifySkill(skill, 0);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skillName));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
if (!Permissions.skillresetOthers(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[1].equalsIgnoreCase("all")) {
|
if (args[1].equalsIgnoreCase("all")) {
|
||||||
skill = null;
|
allSkills = true;
|
||||||
}
|
}
|
||||||
else {
|
else if (!SkillUtils.isSkill(args[1])) {
|
||||||
skill = PrimarySkill.getSkill(args[1]);
|
sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
|
||||||
}
|
|
||||||
|
|
||||||
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
|
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getOfflinePlayer(playerName);
|
|
||||||
|
|
||||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
|
||||||
if (mcMMOPlayer == null) {
|
|
||||||
UUID uuid = null;
|
|
||||||
OfflinePlayer player = mcMMO.p.getServer().getOfflinePlayer(playerName);
|
|
||||||
if (player != null) {
|
|
||||||
uuid = player.getUniqueId();
|
|
||||||
}
|
|
||||||
PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(playerName, uuid, false);
|
|
||||||
|
|
||||||
if (CommandUtils.unloadedProfile(sender, profile)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
editValues(null, profile, skill);
|
if (!allSkills) {
|
||||||
|
skill = SkillType.getSkill(args[1]);
|
||||||
|
skillName = SkillUtils.getSkillName(skill);
|
||||||
|
|
||||||
|
if (!Permissions.skillresetOthers(sender, skill)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName, skill);
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(args[0]);
|
||||||
|
|
||||||
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
|
if (mcMMOPlayer == null) {
|
||||||
|
profile = new PlayerProfile(args[0], false);
|
||||||
|
|
||||||
|
if (!profile.isLoaded()) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Permissions.skillresetOthers(sender, skill)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.modifySkill(skillType, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
profile.modifySkill(skill, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.save(); // Since this is a temporary profile, we save it here.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
profile = mcMMOPlayer.getProfile();
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
for (SkillType skillType : SkillType.values()) {
|
||||||
|
if (skillType.isChildSkill()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Permissions.skillresetOthers(sender, skillType)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.modifySkill(skillType, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Reset.All"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
profile.modifySkill(skill, 0);
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Reset.Single", skillName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSkills) {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", args[0]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.2", skillName, args[0]));
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
|
|
||||||
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<String>(playerNames.size()));
|
|
||||||
case 2:
|
|
||||||
return StringUtil.copyPartialMatches(args[1], PrimarySkill.SKILL_NAMES, new ArrayList<String>(PrimarySkill.SKILL_NAMES.size()));
|
|
||||||
default:
|
|
||||||
return ImmutableList.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkill skill) {
|
|
||||||
int levelsRemoved = profile.getSkillLevel(skill);
|
|
||||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
|
||||||
|
|
||||||
profile.modifySkill(skill, 0);
|
|
||||||
|
|
||||||
if (player == null) {
|
|
||||||
profile.scheduleAsyncSave();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EventUtils.handleLevelChangeEvent(player, skill, levelsRemoved, xpRemoved, false, XPGainReason.COMMAND);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean permissionsCheckSelf(CommandSender sender) {
|
|
||||||
return Permissions.skillreset(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean permissionsCheckOthers(CommandSender sender) {
|
|
||||||
return Permissions.skillresetOthers(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void handlePlayerMessageAll(Player player) {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void handlePlayerMessageSkill(Player player, PrimarySkill skill) {
|
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skill.getName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean validateArguments(CommandSender sender, String skillName) {
|
|
||||||
return skillName.equalsIgnoreCase("all") || !CommandUtils.isInvalidSkill(sender, skillName);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkill skill) {
|
|
||||||
if (skill == null) {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void editValues(Player player, PlayerProfile profile, PrimarySkill skill) {
|
|
||||||
if (skill == null) {
|
|
||||||
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
|
||||||
handleCommand(player, profile, primarySkill);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null) {
|
|
||||||
handlePlayerMessageAll(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
handleCommand(player, profile, skill);
|
|
||||||
|
|
||||||
if (player != null) {
|
|
||||||
handlePlayerMessageSkill(player, skill);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +1,85 @@
|
|||||||
package com.gmail.nossr50.commands.hardcore;
|
package com.gmail.nossr50.commands.hardcore;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkill;
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
|
||||||
public class HardcoreCommand extends HardcoreModeCommand {
|
public class HardcoreCommand implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkTogglePermissions(CommandSender sender) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
return Permissions.hardcoreToggle(sender);
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
if (!Permissions.hardcoreToggle(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
if (Config.getInstance().getHardcoreEnabled()) {
|
||||||
protected boolean checkModifyPermissions(CommandSender sender) {
|
disableHardcore();
|
||||||
return Permissions.hardcoreModify(sender);
|
}
|
||||||
|
else {
|
||||||
|
enableHardcore();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
return true;
|
||||||
protected boolean checkEnabled(PrimarySkill skill) {
|
|
||||||
if (skill == null) {
|
case 1:
|
||||||
for (PrimarySkill primarySkill : PrimarySkill.values()) {
|
if (args[0].equalsIgnoreCase("on") || args[0].equalsIgnoreCase("true") || args[0].equalsIgnoreCase("enabled")) {
|
||||||
if (!primarySkill.getHardcoreStatLossEnabled()) {
|
if (!Permissions.hardcoreToggle(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
enableHardcore();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equalsIgnoreCase("off") || args[0].equalsIgnoreCase("false") || args[0].equalsIgnoreCase("disabled")) {
|
||||||
|
if (!Permissions.hardcoreToggle(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
disableHardcore();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isDouble(args[0])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Permissions.hardcoreModify(sender)) {
|
||||||
|
sender.sendMessage(command.getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
DecimalFormat percent = new DecimalFormat("##0.00%");
|
||||||
|
double newPercent = Double.parseDouble(args[0]);
|
||||||
|
|
||||||
|
Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercent);
|
||||||
|
sender.sendMessage(LocaleLoader.getString("Hardcore.PercentageChanged", percent.format(newPercent / 100D)));
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
private void disableHardcore() {
|
||||||
|
Config.getInstance().setHardcoreEnabled(false);
|
||||||
|
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Disabled"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return skill.getHardcoreStatLossEnabled();
|
private void enableHardcore() {
|
||||||
}
|
Config.getInstance().setHardcoreEnabled(true);
|
||||||
|
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Enabled"));
|
||||||
@Override
|
|
||||||
protected void enable(PrimarySkill skill) {
|
|
||||||
toggle(true, skill);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void disable(PrimarySkill skill) {
|
|
||||||
toggle(false, skill);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void modify(CommandSender sender, double newPercentage) {
|
|
||||||
Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercentage);
|
|
||||||
sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercentage / 100.0D)));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void toggle(boolean enable, PrimarySkill skill) {
|
|
||||||
if (skill == null) {
|
|
||||||
for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
|
|
||||||
primarySkill.setHardcoreStatLossEnabled(enable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
skill.setHardcoreStatLossEnabled(enable);
|
|
||||||
}
|
|
||||||
|
|
||||||
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (skill == null ? "all skills" : skill.getName())));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user