1
0
mirror of https://github.com/mcMMO-Dev/mcMMO.git synced 2026-02-20 10:43:12 +01:00

Compare commits

..

129 Commits

Author SHA1 Message Date
nossr50
3d38dcb26b Comment out deprecated API (for now...) 2021-04-20 14:43:08 -07:00
nossr50
256dbc14e2 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-04-20 14:35:31 -07:00
nossr50
f643010f4b Tweaks to API 2021-04-20 14:09:15 -07:00
nossr50
70b1c23f50 Tweak pom 2021-04-20 13:59:49 -07:00
nossr50
29ee91ddfc Merge branches 'tridentsxbows' and 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-04-07 16:21:02 -07:00
nossr50
bf1426502d Merge remote-tracking branch 'origin/tridentsxbows' into tridentsxbows 2021-03-31 14:06:44 -07:00
nossr50
d21368f3e6 Merge branch 'master' of https://github.com/mcMMO-Dev/mcMMO into tridentsxbows 2021-03-31 14:01:32 -07:00
nossr50
34d4b6f944 Pretty sure this is never thrown here 2021-03-30 11:57:31 -07:00
nossr50
05bc20a007 Add some notes 2021-03-30 11:52:35 -07:00
nossr50
6e0750b5fc Lets start over on PersistentPartyData 2021-03-30 11:51:14 -07:00
nossr50
ed807342cc Tweaks to exception throwing/catching for PlayerData 2021-03-30 11:48:34 -07:00
nossr50
1de9c2610b Readability 2021-03-30 11:39:10 -07:00
nossr50
788e7e433b Add equals and hashCode to PlayerData 2021-03-30 11:38:33 -07:00
nossr50
ac4bad5194 On third thought, Dirty types are pointless 2021-03-30 11:36:20 -07:00
nossr50
b57458a08a More work on reducing compiler errors 2021-03-19 14:36:52 -07:00
nossr50
062665ded4 Add back some missing commands 2021-03-19 13:40:38 -07:00
nossr50
9b856f456c Move save operation handling to its own class 2021-03-19 13:31:18 -07:00
nossr50
d33c214266 Rollback UserManager to being static again 2021-03-19 12:44:03 -07:00
nossr50
3bda73de2e Merge branches 'tridentsxbows' and 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-03-19 12:35:34 -07:00
nossr50
cc5fe92143 Fix compiler errors on FlatFileDatabase 2021-03-18 12:57:37 -07:00
nossr50
ef06546721 More work on gutting out the new skill system & reducing compiler errors 2021-03-17 14:35:24 -07:00
nossr50
b20beed836 Roll back FormulaConversionTask to master 2021-03-16 16:17:30 -07:00
nossr50
3d6b9ba539 Discard more unfinished API, eliminate more errors 2021-03-16 16:16:00 -07:00
nossr50
1c63e34dbb Comment out old API, will use as a reference when writing new API 2021-03-16 16:13:08 -07:00
nossr50
86ba265064 Rollback UserManager to match master 2021-03-16 15:47:49 -07:00
nossr50
f837be8e90 Rollback api classes to match master 2021-03-16 15:40:46 -07:00
nossr50
e958baf720 Rollback command classes to master versions 2021-03-16 15:37:23 -07:00
nossr50
8e1b223288 Gutting new skill system part 2 2021-03-16 14:59:08 -07:00
nossr50
a6276bded8 Gutting out new Skill API and putting it on hold 2021-03-16 14:43:31 -07:00
nossr50
31904ef181 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-03-16 14:18:09 -07:00
nossr50
a379b90c46 Return type McMMOPlayer from UserManager 2021-03-04 14:53:21 -08:00
nossr50
7c270feacb Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-03-03 16:36:24 -08:00
nossr50
2bad0a67a6 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-02-05 15:51:51 -08:00
nossr50
602d47698a Start to migrate Party API -> mcMMO-API 2021-01-06 15:31:02 -08:00
nossr50
d044de5350 more work on api + remove mcimport command 2021-01-06 12:12:14 -08:00
nossr50
85b88e568a Merge branch 'master' of https://github.com/mcMMO-Dev/mcMMO into tridentsxbows 2021-01-06 10:29:37 -08:00
nossr50
fc10243d6f Merge branch 'master' of https://github.com/mcMMO-Dev/mcMMO into tridentsxbows 2021-01-06 10:17:27 -08:00
nossr50
8a91791d2d Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-01-04 14:15:02 -08:00
nossr50
4e8262d818 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2021-01-02 16:07:17 -08:00
nossr50
5b898049a3 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-12-30 15:49:16 -08:00
nossr50
6f88c282cf minor cleanup on skill register impl 2020-12-24 16:43:27 -08:00
nossr50
21ac44ee61 More work on skill API impl/migration 2020-12-24 16:41:09 -08:00
nossr50
9b9ffbb982 More work on migrating commands to new API 2020-12-23 15:29:39 -08:00
nossr50
537b120ffc Updating command classes to new API 2020-12-23 14:58:32 -08:00
nossr50
25f7dd223d More API migration on the DB impl 2020-12-23 12:00:05 -08:00
nossr50
843e3ace99 API migration on DBs 2020-12-23 11:08:57 -08:00
nossr50
8a507de8d6 brain getting tired, time for break, more api migration included 2020-12-22 19:28:47 -08:00
nossr50
7e756c4438 More API migration 2020-12-22 19:23:03 -08:00
nossr50
4199ea0095 More API migration, feels like a mountain of work left lol 2020-12-22 17:27:25 -08:00
nossr50
73bc12841a Add Override annotations, remove redundant javadocs 2020-12-22 14:28:23 -08:00
nossr50
35be5bc17d Generify the maps 2020-12-22 14:24:37 -08:00
nossr50
b7f713a50f Use OnlineMMOPlayer over McMMOPlayer 2020-12-22 13:43:12 -08:00
nossr50
573d9d014e More work on Skill API migration 2020-12-17 16:22:22 -08:00
nossr50
abcf6413f5 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-12-17 15:10:53 -08:00
nossr50
9e931f880e updated changelog 2020-12-16 15:54:22 -08:00
nossr50
306b8cfac4 more work on migrating the API 2020-12-15 16:24:11 -08:00
nossr50
407b6fb343 more API migration 2020-12-15 09:31:51 -08:00
nossr50
d8f8d541fc more work on migrating API 2020-12-14 15:20:01 -08:00
nossr50
64e1d1a9d7 more refactoring/rewrites for player data loading stuff 2020-12-10 17:15:14 -08:00
nossr50
0e22583df4 fix skill commands 2020-12-10 16:15:47 -08:00
nossr50
1c132ddb12 slow refactoring over skill commands 2020-12-09 18:42:48 -08:00
nossr50
81d184c19e slowly refactoring stuff 2020-12-09 18:33:16 -08:00
nossr50
8491d0f4e5 annotate messaging classes + update more things to use mmoPlayer 2020-12-09 18:09:04 -08:00
nossr50
a2a41e77ea Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-12-09 17:37:30 -08:00
nossr50
8e17090cc7 these javadocs are straight up wrong 2020-12-08 15:36:24 -08:00
nossr50
3cb63202a3 more work on parties and user data 2020-12-08 15:34:16 -08:00
nossr50
0bb65e66e8 add rank edit on forced party leader 2020-12-08 14:32:45 -08:00
nossr50
17268ca4ad forced promotion on a random player in a party if party leader is ever null 2020-12-08 14:31:54 -08:00
nossr50
29fffbcc2a don't forget to init partyLeaderRef 2020-12-08 14:20:36 -08:00
nossr50
a8257f3d6e more work towards party stuff 2020-12-08 14:18:46 -08:00
nossr50
85ad0ddd17 More work on parties 2020-12-07 16:40:24 -08:00
nossr50
4e81d4ddb6 some work on experience rewrites 2020-12-04 15:36:22 -08:00
nossr50
704e24d58b SkillIdentity will be used to ID skills, establish relationships, and avoid name conflicts
Will probably move this into the mcMMO API which I might just get started on depending on my motivation
2020-12-03 13:57:46 -08:00
nossr50
450d09e9e4 wip expmanager/party/mcmmo player rewrites 2020-11-16 13:43:47 -08:00
nossr50
5dc95b1fca Merge branches 'tridentsxbows' and 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-11-13 13:53:12 -08:00
nossr50
148647709a Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-11-11 16:42:53 -08:00
nossr50
cf245b02a5 WIP of reworking classes involved in querying data, also some work done to the party code rewrite 2020-10-15 16:19:47 -07:00
nossr50
9e450adb0b reworking party code 2020-09-30 13:04:35 -07:00
nossr50
e057dfc482 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-09-30 11:35:03 -07:00
nossr50
790ac99aa4 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-09-30 11:33:00 -07:00
nossr50
934ba24b17 Applying the new design to DirtySet (formerly DirtyDataSet) as well 2020-09-17 18:46:30 -07:00
nossr50
0bfb3b23b6 DirtyMap (renamed from DirtyDataMap) treated as the map instead of a container 2020-09-17 18:26:46 -07:00
nossr50
5aaa749907 DirtyDataMap implements Map 2020-09-17 18:06:18 -07:00
nossr50
6f6f76532e Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-09-17 17:13:30 -07:00
nossr50
86fdafef08 More work on parties 2020-09-17 17:12:34 -07:00
nossr50
11c29c8299 silly git stash requirements 2020-09-10 15:56:50 -07:00
nossr50
d7099a69d8 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-09-10 15:13:07 -07:00
nossr50
4d8a57d119 upstream changes 2020-09-08 19:19:36 -07:00
nossr50
9e5c9ec567 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-09-01 13:40:01 -07:00
nossr50
17137f3a08 Update SQL Queries + SQL DB Schema 2020-08-20 21:24:48 -07:00
nossr50
642a351bb5 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-20 17:30:21 -07:00
nossr50
daada1a643 Refactoring a bunch of stuff, more refactoring to come 2020-08-17 21:15:27 -07:00
nossr50
0e9e1f5133 A lot of spaghetti relating to player state has been moved into new managers 2020-08-17 21:12:16 -07:00
nossr50
3b0b3d7eb0 DirtyData type automatically marks data as dirty when modified 2020-08-17 21:10:29 -07:00
nossr50
2ae70dddaa Immutable Player Data involved in saving moved into its own class 2020-08-17 21:09:11 -07:00
nossr50
6d5e38bec2 Updating FlatFile schema for the new data 2020-08-17 21:07:30 -07:00
nossr50
9a0c9f36a8 Moved all persistent player data into its own class 2020-08-17 21:03:07 -07:00
nossr50
58432ce80e McMMOPlayer & PlayerProfile redesigned
This is part 1 of a huge refactor, I'm going to be separating this refactor into a few commits for a cleaner history.
2020-08-17 20:40:31 -07:00
nossr50
1d950be7e4 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-11 20:44:13 -07:00
nossr50
8ca6ef5782 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-08 22:11:19 -07:00
nossr50
9038abac8f Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-08 19:37:04 -07:00
nossr50
0f1bfc4141 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-07 11:52:39 -07:00
nossr50
ae5ee8957c Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-08-06 19:02:18 -07:00
nossr50
d80c275abb Part 1 of reworking ability tools 2020-08-01 14:42:38 -07:00
nossr50
916a747f88 More work on new super abilities 2020-07-31 19:41:28 -07:00
nossr50
ea2e2bdc9a More cleanup on ability activation handling 2020-07-31 17:41:43 -07:00
nossr50
03f1733387 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-30 19:24:20 -07:00
nossr50
df7c9e0b1c SuperAbilityManager will handle super ability stuff 2020-07-30 19:23:10 -07:00
nossr50
2020fdd4ea Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-30 13:18:20 -07:00
nossr50
2c64eadafa command tweaks for xbow 2020-07-29 10:42:38 -07:00
nossr50
93eba8da2b more work on new skill commands 2020-07-29 10:25:16 -07:00
nossr50
a82b899eb6 Add some missing things for new skill commands 2020-07-29 10:22:18 -07:00
nossr50
8112973dbe Renamed Cone of Death to Super Shotgun 2020-07-29 10:05:12 -07:00
nossr50
f390e6a78a Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-29 08:20:08 -07:00
nossr50
3ca06f2518 More work on xbows 2020-07-28 18:17:57 -07:00
nossr50
515d58f04f Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-27 21:53:12 -07:00
nossr50
9eade9abc7 placeholder xbow code 2020-07-27 21:11:07 -07:00
nossr50
e0cf66c421 Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-26 05:08:49 -07:00
nossr50
49a1a8916b Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows 2020-07-13 07:49:59 -07:00
nossr50
c46f2534b8 Some work on craftable tridents 2020-07-13 07:23:28 -07:00
nossr50
5ed415e453 Further separate crossbows from bows 2020-07-10 20:17:37 -07:00
nossr50
7543d8be12 Initial work on crossbows 2020-07-07 15:00:56 -07:00
nossr50
cf6af4630d proper InventoryClickEvent array index fix 2020-07-07 13:52:20 -07:00
nossr50
bb167b00eb Array out of index fix 2020-07-07 08:56:33 -07:00
nossr50
d578b7322a Smelting makes use of bonus drops for Second Smelt now
Co-authored-by: t00thpick1 <t00thpick1dirko@gmail.com>
2020-07-07 08:52:31 -07:00
nossr50
86ee5944bc update changelog 2020-07-07 08:42:47 -07:00
nossr50
ae82571c56 sub-skill instead of ability 2020-07-07 08:41:54 -07:00
nossr50
5cd1419b21 some work on limit break for tridents/xbows 2020-07-07 08:34:59 -07:00
nossr50
ea448dfa47 tridents/xbows WIP part 1 2020-07-06 20:44:10 -07:00
670 changed files with 43675 additions and 47536 deletions

View File

@@ -29,19 +29,18 @@ jobs:
# 1. Check out the current working tree
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v2
# 2. Setup Java 17 JDK (Adopt)
- name: Java 17 setup
uses: actions/setup-java@v4
# 2. Setup Java 1.8 JDK
- name: Java 1.8 setup
uses: actions/setup-java@v1.4.3
with:
distribution: 'adopt'
java-package: jdk
java-version: '17'
java-version: 1.8
# 3. Setup local Maven package cache to speed up building
- name: Cache Maven packages
uses: actions/cache@v4
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -49,4 +48,4 @@ jobs:
# 4. Build via Maven
- name: Build via Maven
run: mvn verify -B --file pom.xml -DdisableXmlReport=true
run: mvn verify -B --file pom.xml

1
.gitignore vendored
View File

@@ -55,4 +55,3 @@
# Atlassian Stuff
/atlassian-ide-plugin.xml
/nulllocale_override.properties

File diff suppressed because it is too large Load Diff

View File

@@ -1,52 +1,40 @@
# mcMMO
The #1 RPG Mod for Minecraft
## The #1 RPG Mod for Minecraft
## Useful URLs
Website: http://www.mcmmo.org
## Website
I'm working on a brand new website for mcMMO
You can check it out here http://www.mcmmo.org
Spigot Resource: https://spigot.mcmmo.org
Polymart Resource: https://polymart.org/product/727/mcmmo
I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
Wiki: https://wiki.mcmmo.org/
## API
If you are using maven, you can add mcMMO API to your plugin by adding it to pom.xml like so...
```
<repository>
<id>neetgames</id>
<url>https://nexus.neetgames.com/repository/maven-releases/</url>
</repository>
```
```
<dependency>
<groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId>
<version>2.2.004</version>
</dependency>
```
### Builds
Currently, you can obtain our builds via Spigot or Polymart:
http://spigot.mcmmo.org
https://polymart.org/resource/mcmmo.727
Currently, you can obtain our builds via the Spigot resource page: http://spigot.mcmmo.org
### Brief Description
The goal of mcMMO is to take core Minecraft game mechanics and expand them into 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.
## About the Team
In December 2018, the original author and creator of mcMMO (nossr50) returned and took over the role of project lead once again, to develop and improve mcMMO.
#### Current mcMMO Devs
#### Project Lead & Founder
[![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
### Former team members
[![gmcferrin](http://www.gravatar.com/avatar/b64c52daf25d206b27650788b5813b7b.png)](https://github.com/gmcferrin)
#### mcMMO Devs
[![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
[![kashike](https://secure.gravatar.com/avatar/b5e86d6d443b957fd5cdee55501f3799.png)](https://github.com/kashike)
[![electronicboy](https://secure.gravatar.com/avatar/44759c38d311ce09596de6a2d5b88036.png)](https://github.com/electronicboy)
#### Classic Maintainer
[![t00thpick1](http://www.gravatar.com/avatar/ee23c7794a0c40120c3474287c7bce06.png)](https://github.com/t00thpick1)
## Former Team Members
### Former Lead & Awesome guy
[![gmcferrin](http://www.gravatar.com/avatar/b64c52daf25d206b27650788b5813b7b.png)](https://github.com/gmcferrin)
### Former team members
[![bm01](http://www.gravatar.com/avatar/ec8146f5358177f12e9a252271bbc391.png)](https://github.com/bm01)
[![Glitchfinder](http://www.gravatar.com/avatar/5aa4cce22f72ae9c002ecec30f061d00.png)](https://github.com/Glitchfinder)
[![NuclearW](http://www.gravatar.com/avatar/90926bdcf1c8a75918df5ea5fa801ce6.png)](https://github.com/NuclearW)
@@ -55,22 +43,20 @@ In December 2018, the original author and creator of mcMMO (nossr50) returned an
[![riking](https://1.gravatar.com/avatar/aca9f37e569ac3a63929920035a91ba4.png)](https://github.com/riking)
[![TheYeti](https://i.imgur.com/tzFrxdo.png)](https://github.com/TheYeti)
#### Folia Contributors
[<img src="https://github.com/HSGamer.png" width=80 alt="HSGamer">](https://github.com/HSGamer)
[<img src="https://github.com/TechnicallyCoded.png" width=80 alt="TechnicallyCoded">](https://github.com/TechnicallyCoded)
[<img src="https://github.com/Yomamaeatstoes.png" width=80 alt="Yomamaeatstoes">](https://github.com/Yomamaeatstoes)
[<img src="https://github.com/Rockyers.png" width=80 alt="Rockyers">](https://github.com/Rockyers)
## Compiling
mcMMO uses Maven to manage dependencies, packaging, and shading of necessary classes; Maven is required to compile mcMMO. It is recommended to always use the latest version of maven.
mcMMO uses Maven 3 to manage dependencies, packaging, and shading of necessary classes; Maven 3 is required to compile mcMMO.
The typical command used to build mcMMO is: `mvn clean install`
The typical command used to build mcMMO is: `mvn clean package install`
Required Libraries:
* Spigot
* JUnit
* WorldGuard 7
* bStats Bukkit
https://spigot.mcmmo.org for more up to date information.
## Downloads
Resource Page
https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
https://polymart.org/resource/mcmmo.727
https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/

439
extras/mods/1.6.x/LOTR.armor.yml Executable file
View File

@@ -0,0 +1,439 @@
# Lord of the Rings mod config by Dragyn
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
#
#
# Settings for Boots
###
Boots:
# Bronze
X12015:
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Orc
X12035:
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Gondorian
X12060:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Mithril
X12064:
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Elven
X12088:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Warg
X12098:
Repairable: true
Repair_Material: X12094
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dwarven
X12129:
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Galven
X12134:
Repairable: true
Repair_Material: X12130
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Uruk
X12161:
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Wood Elf
X12176:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Ancient
X12180:
Repairable: true
Repair_Material: X12179
Repair_Material_Data_Value: 3
Repair_Material_Quantity: 2
Durability: 500
# Rohirric
X12187:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Rangers
X12206:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dunlending
X12210:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Morgul
X12222:
Repairable: true
Repair_Material: X12217
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Chestplates
###
Chestplates:
# Bronze
X12013:
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Orc
X12033:
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Gondorian
X12058:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Mithril
X12062:
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Elven
X12086:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Warg
X12096:
Repairable: true
Repair_Material: X12094
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dwarven
X12127:
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Galven
X12132:
Repairable: true
Repair_Material: X12130
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Uruk
X12159:
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Wood Elf
X12174:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Ancient
X12178:
Repairable: true
Repair_Material: X12179
Repair_Material_Data_Value: 3
Repair_Material_Quantity: 2
Durability: 500
# Rohirric
X12185:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Rangers
X12204:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dunlending
X12208:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Morgul
X12220:
Repairable: true
Repair_Material: X12217
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Helmets
###
Helmets:
# Bronze
X12012:
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Orc
X12032:
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Gondorian
X12057:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Mithril
X12061:
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Elven
X12085:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Warg
X12095:
Repairable: true
Repair_Material: X12094
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dwarven
X12126:
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Galven
X12131:
Repairable: true
Repair_Material: X12130
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Uruk
X12158:
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Wood Elf
X12173:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Ancient
X12177:
Repairable: true
Repair_Material: X12179
Repair_Material_Data_Value: 3
Repair_Material_Quantity: 2
Durability: 500
# Rohirric
X12184:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Rangers
X12203:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dunlending
X12207:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Morgul
X12219:
Repairable: true
Repair_Material: X12217
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Leggings
###
Leggings:
# Bronze
X12014:
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Orc
X12034:
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Gondorian
X12059:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Mithril
X12063:
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Elven
X12087:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Warg
X12097:
Repairable: true
Repair_Material: X12094
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dwarven
X12128:
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Galven
X12133:
Repairable: true
Repair_Material: X12130
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Uruk
X12160:
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Wood Elf
X12175:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Ancient
X12179:
Repairable: true
Repair_Material: X12179
Repair_Material_Data_Value: 3
Repair_Material_Quantity: 2
Durability: 500
# Rohirric
X12186:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Rangers
X12205:
Repairable: true
Repair_Material: LEATHER
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Dunlending
X12209:
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Morgul
X12221:
Repairable: true
Repair_Material: X12217
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500

211
extras/mods/1.6.x/LOTR.blocks.yml Executable file
View File

@@ -0,0 +1,211 @@
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
#
# Settings for Custom Excavation Blocks
###
Excavation:
Block_1|0:
XP_Gain: 99
Double_Drops_Enabled: true
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
# Shireheather
X1813:
XP_Gain: 100
Double_Drops_Enabled: true
# Simbelmyne
X1805:
XP_Gain: 100
Double_Drops_Enabled: true
# Asphodel
X1895:
XP_Gain: 100
Double_Drops_Enabled: true
# Bluebell
X1867:
XP_Gain: 100
Double_Drops_Enabled: true
# Clover
X1873:
XP_Gain: 10
Double_Drops_Enabled: false
# Dead Marsh Plant
X1886:
XP_Gain: 10
Double_Drops_Enabled: false
# DwarfWort
X1902:
XP_Gain: 100
Double_Drops_Enabled: true
# Elanor
X1833:
XP_Gain: 100
Double_Drops_Enabled: true
# Lettuce Crop
X1830:
XP_Gain: 100
Double_Drops_Enabled: true
# Morgul Shroom
X1870:
XP_Gain: 100
Double_Drops_Enabled: true
# Niphredil
X1834:
XP_Gain: 100
Double_Drops_Enabled: true
# Pipeweed Crop
X1823:
XP_Gain: 100
Double_Drops_Enabled: true
# Pipeweed Plant
X1822:
XP_Gain: 100
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
# Mithril
X1803:
XP_Gain: 2000
Double_Drops_Enabled: false
Is_Ore: true
# Naurite
X1818:
XP_Gain: 150
Double_Drops_Enabled: false
Is_Ore: false
#Glowstone Ore
X1859:
XP_Gain: 30
Double_Drops_Enabled: false
Is_Ore: false
# Remains
X1885:
XP_Gain: 1800
Double_Drops_Enabled: false
Is_Ore: false
# Gulduril
X1887:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Ore: false
# Quendite
X1846:
XP_Gain: 150
Double_Drops_Enabled: false
Is_Ore: false
# MorgulIron
X1819:
XP_Gain: 25
Double_Drops_Enabled: true
Is_Ore: false
# Rohan Rock
X180|2:
XP_Gain: 30
Double_Drops_Enabled: false
Is_Ore: false
#Gondor Stone
X180|1:
XP_Gain: 30
Double_Drops_Enabled: false
Is_Ore: false
# Mordor Stone
X180|0:
XP_Gain: 30
Double_Drops_Enabled: false
Is_Ore: false
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
# Shire Pine
X1806|0:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Mallorn
X1806|1:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Apple
X1860|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Pear
X1860|1:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Cherry
X1860|2:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Mirkwood
X1806|2:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Charred
X1806|3:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Lebethron
X1896|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Beech
X1896|1:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
#
# Settings for Custom Ability Blocks
# (These blocks don't trigger abilities)
###
Ability_Blocks:
Block_1|0:
Block_2|0:

700
extras/mods/1.6.x/LOTR.tools.yml Executable file
View File

@@ -0,0 +1,700 @@
# Lord of the Rings mod config by Skuli (Updated by Dragyn)
# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
Axes:
#DwarvenThrowingAxe
X12146:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 451
#UrukWarhammer
X12156:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 391
#Gondorian Warhammer
X12140:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 281
#UrukBattleaxe
X12155:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 391
#MithrilBattleaxe
X12138:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2479
#MithrilWarhamer
X12139:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2479
#OrcWarhammer
X12125:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 261
#Dwarven Warhammer
X12120:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 451
#DwarvenZbattleaxe
X12119:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 451
#BronzeAxe
X12009:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 197
#MithrilAxe
X12050:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2479
#MallornAxe
X12075:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 121
#Elven Axe
X12080:
XP_Modifer: 2
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 313
#DwarvenAxe
X12115:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 450
#OrcAxe
X12123:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 261
#UrukAxe
X12150:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 391
Bows:
#ElvenBow
X12093:
XP_Modifer: 2
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Durability: 485
#mallornbow
X12084:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 417
#orcBow
X12099:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 441
#UrukCrossbow
X12163:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 471
#MithrilCrossbow
X12171:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 1761
#IronCrossbow
X12170:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Durability: 357
#BowofMirkwood
X12177:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X1806
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 3
Durability: 417
Hoes:
#BronzeHoe
X12011:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 197
#MithrilHoe
X12052:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 2479
#MallornHoe
X12077:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 1
Repair_Material_Quantity: 2
Durability: 121
#CopperHoe
X26511:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X26507
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 180
#ElvenHoe
X12082:
XP_Modifer: 2
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12082
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#DwarvenHoe
X12117:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X26507
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 180
Pickaxes:
#MEBronzePickaxe
X12008:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 197
#MithrilPixkaxe
X12049:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2479
#MallornPickaxe
X12074:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 121
#ElvenPickaxe
X12079:
XP_Modifer: 2
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 313
#DwarvenPickaxe
X12114:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 451
#UrukPickaxe
X12149:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 391
#OrcPickaxe
X12122:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 261
Shovels:
#BronzeShovel
X12007:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 197
#MithrilShovel
X12048:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 2479
#MallornShovel
X12073:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 1
Repair_Material_Quantity: 1
Durability: 121
#ElvenShovel
X12078:
XP_Modifer: 2
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12082
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 313
#DwarvenShovel
X12113:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 451
#UrukShovel
X12148:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 391
#OrcShovel
X12121:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 261
Swords:
#Uruk Dagger
X12153:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#Poisoned urukd agger
X12154:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#Uruk Spear
X12157:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 391
#Rohirric Sword
X12181:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 251
#Rohirric Dagger
X12182:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 201
#Rohirric Spear
X12183:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 251
#Dunlending Spear
X12212:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 251
#Uruk Scimitar
X12151:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12147
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 391
#Mithril Dagger
X12137:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 1983
#Iron Dagger
X12136:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 201
#Dwarven Dagger
X12118:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 361
#Dwarven Sword
X12116:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12112
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 451
#Elven Sword
X12081:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#Elven Spear
X12083:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#Anduril
X12070:
XP_Modifer: 1
Ability_Enabled: true
Tier: 4
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 313
#Mallorn Sword
X12076:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X1801
Repair_Material_Data_Value: 1
Repair_Material_Quantity: 2
Durability: 121
#Mithril Spear
X12069:
XP_Modifer: 1
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 2479
#Iron Spear
X12068:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: IRON_INGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 251
#Orc Spear
X12066:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 261
#Bronze Spear
X12067:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 197
#Gondor Spear
X12065:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 281
#Gondor Sword
X12056:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: false
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 281
#Orc Scimitar
X12031:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12036
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 261
#Steel Sword
X26862:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X26857
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 751
#Bronze Sword
X12010:
XP_Modifer: 1
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X12004
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 197
#Mithril Sword
X12051:
XP_Modifer: 1
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X12006
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 2479

View File

@@ -0,0 +1,14 @@
# Config wrote by M1cr0man
# Up to date as of Advanced Genetics 1.4.3
Bows:
# Genetic
X31179:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31197
Repair_Material_Pretty_Name: "Cell"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 1501

View File

@@ -0,0 +1,9 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Applied Energistics rv14-finale3
Mining:
# Certus Quartz Ore
X4076|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,65 @@
# Config wrote by M1cr0man
# Up to date as of Applied Energistics rv14-finale3
Axes:
# Quartz
X4365:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X4362
Repair_Material_Pretty_Name: "Certus Quartz"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 3
Durability: 250
Hoes:
# Quartz
X4366:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X4362
Repair_Material_Pretty_Name: "Certus Quartz"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 2
Pickaxes:
# Quartz
X4368:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X4362
Repair_Material_Pretty_Name: "Certus Quartz"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 3
Durability: 250
Shovels:
# Quartz
X4367:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X4362
Repair_Material_Pretty_Name: "Certus Quartz"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 1
Durability: 750
Swords:
# Quartz
X4369:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X4362
Repair_Material_Pretty_Name: "Certus Quartz"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 2
Durability: 250

View File

@@ -0,0 +1,9 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Big Reactors 0.3.4A2
Mining:
# Yellorite
X1750|0:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,77 @@
# Config wrote by M1cr0man
# Up to date as of BoP 1.2.1.434
Boots:
# Wading
X21269:
Repairable: false
Durability: 9999
# Muddy
X21283:
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 26
# Amethyst
X21293:
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 520
Chestplates:
# Muddy
X21281:
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 32
# Amethyst
X21291:
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 640
Helmets:
# Muddy
X21280:
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 22
# Amethyst
X21290:
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 440
Leggings:
# Muddy
X21280:
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 30
# Amethyst
X21290:
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 600

View File

@@ -0,0 +1,44 @@
# Config wrote by M1cr0man
# Incomplete! Only covers ores
# Up to date as of BoP 1.2.1.434
Mining:
# Red Rock
X162|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Amethyst
X1921|0:
XP_Gain: 200
Double_Drops_Enabled: true
Is_Ore: true
# Ruby
X1921|2:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Peridot
X1921|4:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Topaz
X1921|6:
XP_Gain: 200
Double_Drops_Enabled: true
Is_Ore: true
# Tanzanite
X1921|8:
XP_Gain: 200
Double_Drops_Enabled: true
Is_Ore: true
# Malachite
X1921|10:
XP_Gain: 200
Double_Drops_Enabled: true
Is_Ore: true
# Sapphire
X1921|12:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,121 @@
# Config wrote by M1cr0man
# Up to date as of BoP 1.2.1.434
Axes:
# Amethyst
X21287:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2013
# Muddy
X21277:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 32
Hoes:
# Amethyst
X21288:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 2013
# Muddy
X21278:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 32
Pickaxes:
# Amethyst
X21286:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 2013
# Muddy
X21276:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 32
Shovels:
# Amethyst
X21285:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 2013
# Muddy
X21275:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 32
Swords:
# Amethyst
X21284:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X21264
Repair_Material_Pretty_Name: "Amethyst"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 2013
# Muddy
X21274:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X21263
Repair_Material_Pretty_Name: "Mud Ball"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 32

View File

@@ -0,0 +1,31 @@
# Config wrote by M1cr0man
# Up to date as of Emasher Resource 1.2.3.5
Boots:
# Hemp
X9301:
Repairable: true
Repair_Material: X9291
Repair_Material_Pretty_Name: "Hemp"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 65
Chestplates:
# Hemp
X9299:
Repairable: true
Repair_Material: X9291
Repair_Material_Pretty_Name: "Hemp"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 80
Leggings:
# Hemp
X9300:
Repairable: true
Repair_Material: X9291
Repair_Material_Pretty_Name: "Hemp"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 75

View File

@@ -0,0 +1,44 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Emasher Resource 1.2.3.5
Mining:
# Bauxite
X1565|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Cassiterite
X1565|1:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Emery
X1565|2:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Galena
X1565|3:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true
# Native Copper
X1565|4:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Petlandite
X1565|5:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true
# Ruby
X1565|6:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Sapphire
X1565|7:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,166 @@
# Config created by Dragyn
# Created For ExtrabiomesXL-universal-1.6.4-3.14.5
#
# Settings for Custom Excavation Blocks
###
Excavation:
# Quicksand
X2214|0:
XP_Gain: 40
Double_Drops_Enabled: true
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
# Cattails
X2201|0:
XP_Gain: 30
Double_Drops_Enabled: true
# Hydrangea
X2202|1:
XP_Gain: 100
Double_Drops_Enabled: true
# Buttercups
X2202|2:
XP_Gain: 100
Double_Drops_Enabled: true
# Lavender
X2202|3:
XP_Gain: 100
Double_Drops_Enabled: true
# Tiny Cactus
X2202|4:
XP_Gain: 30
Double_Drops_Enabled: true
# Toadstool
X2202|6:
XP_Gain: 150
Double_Drops_Enabled: true
# Calla Lillies
X2202|7:
XP_Gain: 100
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
X254|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X254|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
# Fir
X2208|0:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
# Acacia
X2208|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
# Cypress
X2208|2:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Japanese Maple
X2208|3:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Redwood Quarter
X2209|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2211|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2212|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2213|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Fir Quarters
X2211|1:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2212|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X2213|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
# Oak Quarters
X2211|2:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2212|2:
XP_Gain: 70
Double_Drops_Enabled: true
Is_Log: true
X2213|2:
XP_Gain: 70
Double_Drops_Enabled: true
Is_Log: true
# Acacia
# Cypress
# Bald Cypress Quarter
X2225|0:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Bald Cypress Elbow
X2227|0:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Bald Cypress Log
X2231|2:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Rainbow Eucalyptus
X2228|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2229|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
X2231|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Autumn Log
X2231|1:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Sakura Log
X2238|0:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true

View File

@@ -0,0 +1,54 @@
# Config wrote by M1cr0man
# Up to date as of Extra Utilities 1.0.3c
Axes:
# Healing
X10264:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X10258
Repair_Material_Pretty_Name: "Unstable Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 1561
Hoes:
# Reversing
X10265:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X10258
Repair_Material_Pretty_Name: "Unstable Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 1561
Pickaxes:
# Destruction
X10263:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: false
Durability: 6244
Shovels:
# Erosion
X10262:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: false
Durability: 6244
Swords:
# Etheric
X10261:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 4
Repairable: false
Durability: 1561

View File

@@ -0,0 +1,9 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Factorization 0.8.34
Mining:
# Dark Iron Ore
X1004|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,19 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Forestry 2.3.1.1
Mining:
# Apatite
X1398|0:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Ore: true
# Copper
X1398|1:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Tin
X1398|2:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,27 @@
# Config wrote by M1cr0man
# Up to date as of Forestry 2.3.1.1
Pickaxes:
# Survivalist
X13261:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X5261
Repair_Material_Pretty_Name: "Bronze Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 200
Shovels:
# Survivalist
X13264:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X5261
Repair_Material_Pretty_Name: "Bronze Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 200

View File

@@ -0,0 +1,71 @@
# Config created by Dragyn
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
#
# Settings for Boots
###
Boots:
# Heavy Duty
X10149:
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
X10171:
Repairable: true
Repair_Material: X10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 999
#
# Settings for Chestplates
###
Chestplates:
# Heavy Duty
X10147:
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
X10169:
Repairable: true
Repair_Material: X10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 999
#
# Settings for Helmets
###
Helmets:
# Heavy Duty
X10146:
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
X10168:
Repairable: true
Repair_Material: X10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 999
#
# Settings for Leggings
###
Leggings:
# Heavy Duty
X10148:
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
X10170:
Repairable: true
Repair_Material: X10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 999

View File

@@ -0,0 +1,98 @@
# Config created by Dragyn
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
#
# Settings for Custom Excavation Blocks
###
Excavation:
# Dirt
X3347|3:
XP_Gain: 40
Double_Drops_Enabled: true
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
# Copper Ore
X3347|0:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
X3372|5:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: true
X3390|0:
XP_Gain: 550
Double_Drops_Enabled: true
Is_Ore: true
# Tin Ore
X3347|1:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
X3372|6:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: true
X3390|1:
XP_Gain: 550
Double_Drops_Enabled: true
Is_Ore: true
# Aluminum Ore
X3372|7:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: true
# Silicon Ore
X3372|8:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: true
# Cheese Ore
X3347|2:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Iron Ore
X3390|3:
XP_Gain: 550
Double_Drops_Enabled: true
Is_Ore: true
# Desh Ore
X3390|2:
XP_Gain: 600
Double_Drops_Enabled: true
Is_Ore: true
# Moon Stone
X3347|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Moon Turf
X3347|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Mars Cobblestone
X3390|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Mars Rock/Stone
X3390|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X3390|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X3390|9:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false

View File

@@ -0,0 +1,123 @@
# Config created by Dragyn
# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
#
# Settings for Axes
###
Axes:
# Heavy Duty
X10145:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
# Desh
X10167:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: 10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 1000
#
# Settings for Hoes
###
Hoes:
# Heavy Duty
X10144:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
# Desh
X10166:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: 10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 1000
#
# Settings for Pickaxes
###
Pickaxes:
# Heavy Duty
X10142:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
# Desh
X10164:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: 10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 1000
#
# Settings for Shovels
###
Shovels:
# Heavy Duty
X10143:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
# Desh
X10165:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: 10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 1000
#
# Settings for Swords
###
Swords:
# Heavy Duty
X10141:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 4
Repairable: true
Repair_Material: X10150
Repair_Material_Data_Value: 9
Repair_Material_Quantity: 2
Durability: 500
# Desh
X10163:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: 10161
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 1000

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,185 @@
# Config created by Dragyn
# Created For Metallurgy-1.6.4-3.3.1
#
#
# Settings for Custom Mining Blocks
###
Mining:
# Copper
X900|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Tin
X900|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Zinc
X902|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Silver
X902|1:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Platinum
X902|3:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# NETHER ORES
# Ignatius
X903|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Shadow Iron
X903|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Lemurite
X903|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Midasium
X903|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Vyroxeres
X903|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Ceruclase
X903|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Alduorite
X903|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Kalendrite
X903|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Vulcanite
X903|8:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Sanguinite
X903|9:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: true
# Manganese
X900|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true
# Eximite
X900|5:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Meutoite
X900|6:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Sulfur
X905|7:
XP_Gain: 150
Double_Drops_Enabled: true
Is_Ore: false
# Phosphorite
X905|8:
XP_Gain: 150
Double_Drops_Enabled: true
Is_Ore: false
# Saltpeter
X905|9:
XP_Gain: 150
Double_Drops_Enabled: true
Is_Ore: false
# Magnesium
X905|10:
XP_Gain: 150
Double_Drops_Enabled: true
Is_Ore: false
# Bitumen
X905|11:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Ore: false
# Potash
X905|12:
XP_Gain: 150
Double_Drops_Enabled: true
Is_Ore: false
# Prometheum
X906|0:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Deep Iron
X906|1:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Infuscolium
X906|2:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Oureclase
X906|4:
XP_Gain: 650
Double_Drops_Enabled: true
Is_Ore: true
# Astral Silver
X906|5:
XP_Gain: 650
Double_Drops_Enabled: true
Is_Ore: true
# Carmot
X906|6:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Mithril
X906|7:
XP_Gain: 750
Double_Drops_Enabled: true
Is_Ore: true
# Rubracium
X906|8:
XP_Gain: 800
Double_Drops_Enabled: true
Is_Ore: true
# Orichalcum
X906|11:
XP_Gain: 900
Double_Drops_Enabled: true
Is_Ore: true
# Adamantine
X906|13:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Ore: true
# Atlarus
X906|14:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Ore: true

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
# Config wrote by M1cr0man
# Up to date as of Minefactory Reloaded 2.7.9 Final
Boots:
# Plastic
X12306:
Repairable: true
Repair_Material: X12249
Repair_Material_Pretty_Name: "Plastic Sheets"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 39

View File

@@ -0,0 +1,41 @@
# Config wrote by M1cr0man
# Up to date as of Natura 2.1.14
Boots:
# Impskin
X12712:
Repairable: true
Repair_Material: X12660
Repair_Material_Pretty_Name: "Imp Leather"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 4
Durability: 429
Chestplates:
# Impskin
X12710:
Repairable: true
Repair_Material: X12660
Repair_Material_Pretty_Name: "Imp Leather"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 8
Durability: 528
Helmets:
# Impskin
X12709:
Repairable: true
Repair_Material: X12660
Repair_Material_Pretty_Name: "Imp Leather"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 5
Durability: 363
Leggings:
# Impskin
X12709:
Repairable: true
Repair_Material: X12660
Repair_Material_Pretty_Name: "Imp Leather"
Repair_Material_Data_Value: 6
Repair_Material_Quantity: 7
Durability: 495

View File

@@ -0,0 +1,272 @@
# Config wrote by M1cr0man
# Up to date as of Natura 2.1.14
Axes:
# Bloodwood
X12685:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Bloodwood Planks"
Repair_Material_Data_Value: 4
Repair_Material_Quantity: 3
Durability: 350
# Darkwood
X12689:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Darkwood Planks"
Repair_Material_Data_Value: 11
Repair_Material_Quantity: 3
Durability: 131
# Fusewood
X12693:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Fusewood Planks"
Repair_Material_Data_Value: 12
Repair_Material_Quantity: 3
Durability: 250
# Ghostwood
X12681:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Ghostwood Planks"
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 3
Durability: 59
# Quartz
X12697:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: QUARTZ_BLOCK
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 131
Bows:
# Bloodwood
X12706:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X12677
Repair_Material_Pretty_Name: "Bloodwood Stick"
Repair_Material_Data_Value: 4
Repair_Material_Quantity: 3
Durability: 1501
# Darkwood
X12707:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X12677
Repair_Material_Pretty_Name: "Darkwood Stick"
Repair_Material_Data_Value: 11
Repair_Material_Quantity: 3
Durability: 162
# Fusewood
X12708:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X12677
Repair_Material_Pretty_Name: "Fusewood Stick"
Repair_Material_Data_Value: 12
Repair_Material_Quantity: 3
Durability: 28
# Ghostwood
X12705:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X12677
Repair_Material_Pretty_Name: "Ghostwood Stick"
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 3
Durability: 384
Pickaxes:
# Bloodwood
X12683:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Bloodwood Planks"
Repair_Material_Data_Value: 4
Repair_Material_Quantity: 3
Durability: 350
# Darkwood
X12687:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Darkwood Planks"
Repair_Material_Data_Value: 11
Repair_Material_Quantity: 3
Durability: 131
# Fusewood
X12691:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Fusewood Planks"
Repair_Material_Data_Value: 12
Repair_Material_Quantity: 3
Durability: 250
# Ghostwood
X12679:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Ghostwood Planks"
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 3
Durability: 59
# Quartz
X12695:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: QUARTZ_BLOCK
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 3
Durability: 131
Shovels:
# Bloodwood
X12684:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Bloodwood Planks"
Repair_Material_Data_Value: 4
Repair_Material_Quantity: 1
Durability: 350
# Darkwood
X12688:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Darkwood Planks"
Repair_Material_Data_Value: 11
Repair_Material_Quantity: 1
Durability: 131
# Fusewood
X12692:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Fusewood Planks"
Repair_Material_Data_Value: 12
Repair_Material_Quantity: 1
Durability: 250
# Ghostwood
X12680:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Ghostwood Planks"
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 1
Durability: 59
# Quartz
X12696:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: QUARTZ_BLOCK
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 1
Durability: 131
Swords:
# Bloodwood
X12682:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Bloodwood Planks"
Repair_Material_Data_Value: 4
Repair_Material_Quantity: 2
Durability: 350
# Darkwood
X12686:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Darkwood Planks"
Repair_Material_Data_Value: 11
Repair_Material_Quantity: 2
Durability: 131
# Fusewood
X12690:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Fusewood Planks"
Repair_Material_Data_Value: 12
Repair_Material_Quantity: 2
Durability: 250
# Ghostwood
X12678:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: X3262
Repair_Material_Pretty_Name: "Ghostwood Planks"
Repair_Material_Data_Value: 2
Repair_Material_Quantity: 2
Durability: 59
# Quartz
X12694:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: true
Repair_Material: QUARTZ_BLOCK
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131

View File

@@ -0,0 +1,29 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Project Red 4.3.5.30
Mining:
# Ruby
X2130|0:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Sapphire
X2130|1:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Peridot
X2130|2:
XP_Gain: 350
Double_Drops_Enabled: true
Is_Ore: true
# Marble
X2131|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Basalt
X2131|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false

View File

@@ -0,0 +1,176 @@
# Config wrote by M1cr0man
# Up to date as of Project Red 4.3.5.30
Axes:
# Ruby
X9353:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Ruby"
Repair_Material_Data_Value: 37
Repair_Material_Quantity: 3
Durability: 500
# Sapphire
X9354:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Sapphire"
Repair_Material_Data_Value: 38
Repair_Material_Quantity: 3
Durability: 500
# Peridot
X9355:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Peridot"
Repair_Material_Data_Value: 39
Repair_Material_Quantity: 3
Durability: 500
Hoes:
# Ruby
X9356:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Ruby"
Repair_Material_Data_Value: 37
Repair_Material_Quantity: 2
Durability: 500
# Sapphire
X9357:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Sapphire"
Repair_Material_Data_Value: 38
Repair_Material_Quantity: 2
Durability: 500
# Peridot
X9358:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Peridot"
Repair_Material_Data_Value: 39
Repair_Material_Quantity: 2
Durability: 500
Pickaxes:
# Ruby
X9359:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Ruby"
Repair_Material_Data_Value: 37
Repair_Material_Quantity: 3
Durability: 500
# Sapphire
X9360:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Sapphire"
Repair_Material_Data_Value: 38
Repair_Material_Quantity: 3
Durability: 500
# Peridot
X9361:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Peridot"
Repair_Material_Data_Value: 39
Repair_Material_Quantity: 3
Durability: 500
Shovels:
# Ruby
X9362:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Ruby"
Repair_Material_Data_Value: 37
Repair_Material_Quantity: 1
Durability: 500
# Sapphire
X9363:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Sapphire"
Repair_Material_Data_Value: 38
Repair_Material_Quantity: 1
Durability: 500
# Peridot
X9364:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Peridot"
Repair_Material_Data_Value: 39
Repair_Material_Quantity: 1
Durability: 500
Swords:
# Ruby
X9365:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Ruby"
Repair_Material_Data_Value: 37
Repair_Material_Quantity: 2
Durability: 500
# Sapphire
X9366:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Sapphire"
Repair_Material_Data_Value: 38
Repair_Material_Quantity: 2
Durability: 500
# Peridot
X9368:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X9281
Repair_Material_Pretty_Name: "Peridot"
Repair_Material_Data_Value: 39
Repair_Material_Quantity: 2
Durability: 500

View File

@@ -0,0 +1,49 @@
# Config wrote by Dragyn, updated by M1cr0man
# Up to date as of Railcraft 8.4.0.0
Boots:
# Steel
X7758:
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 325
Chestplates:
# Steel
X7761:
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 400
Helmets:
# Steel
X7759:
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 275
Leggings:
# Steel
X7760:
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 375
# Overalls
X7757:
Repairable: true
Repair_Material: WOOL
Repair_Material_Pretty_Name: "Light Blue Wool"
Repair_Material_Data_Value: 3
Repair_Material_Quantity: 7
Durability: 75

View File

@@ -0,0 +1,103 @@
# Config created by Dragyn
# Created For Railcraft_1.6.2-8.1.0.0
#
#
# Settings for Custom Mining Blocks
###
Mining:
# Abyssal Stone
X457|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Quarried Stone
X457|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Sulfur
X458|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
# Saltpeter
X458|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
# Dark Diamond
X458|2:
XP_Gain: 750
Double_Drops_Enabled: true
Is_Ore: false
# Dark Emerald
X458|3:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Ore: false
# Dark Lapis
X458|4:
XP_Gain: 400
Double_Drops_Enabled: true
Is_Ore: false
# Firestone
X458|5:
XP_Gain: 450
Double_Drops_Enabled: true
Is_Ore: false
# Infernal Stone
X467|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X467|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Blood Stained Stone
X468|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X468|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Sandy Stone
X469|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X469|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Quarried Stone
X471|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X471|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Frost Bound Stone
X472|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X472|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
# Nether Stone
X475|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X475|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false

View File

@@ -0,0 +1,66 @@
# Config wrote by Dragyn, updated by M1cr0man
# Up to date as of Railcraft 8.4.0.0
Axes:
# Steel
X7819:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
Hoes:
# Steel
X7820:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
Pickaxes:
# Steel
X7821:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
Shovels:
# Steel
X7823:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
Swords:
# Steel
X7824:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X7796
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500

View File

@@ -0,0 +1,543 @@
# Config created by Dragyn
# Created For SimCraft 1.6.4
#
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
X705|0:
XP_Gain: 50
Double_Drops_Enabled: true
X705|1:
XP_Gain: 50
Double_Drops_Enabled: true
X705|2:
XP_Gain: 50
Double_Drops_Enabled: true
X705|3:
XP_Gain: 50
Double_Drops_Enabled: true
X705|4:
XP_Gain: 50
Double_Drops_Enabled: true
X705|5:
XP_Gain: 50
Double_Drops_Enabled: true
X705|6:
XP_Gain: 50
Double_Drops_Enabled: true
X705|7:
XP_Gain: 50
Double_Drops_Enabled: true
X705|8:
XP_Gain: 50
Double_Drops_Enabled: true
X705|9:
XP_Gain: 50
Double_Drops_Enabled: true
X705|10:
XP_Gain: 50
Double_Drops_Enabled: true
X705|11:
XP_Gain: 50
Double_Drops_Enabled: true
X705|12:
XP_Gain: 50
Double_Drops_Enabled: true
X705|13:
XP_Gain: 50
Double_Drops_Enabled: true
X705|14:
XP_Gain: 50
Double_Drops_Enabled: true
X705|15:
XP_Gain: 50
Double_Drops_Enabled: true
X706|0:
XP_Gain: 50
Double_Drops_Enabled: true
X706|1:
XP_Gain: 50
Double_Drops_Enabled: true
X706|2:
XP_Gain: 50
Double_Drops_Enabled: true
X706|3:
XP_Gain: 50
Double_Drops_Enabled: true
X706|4:
XP_Gain: 50
Double_Drops_Enabled: true
X706|5:
XP_Gain: 50
Double_Drops_Enabled: true
X706|6:
XP_Gain: 50
Double_Drops_Enabled: true
X706|7:
XP_Gain: 50
Double_Drops_Enabled: true
X706|8:
XP_Gain: 50
Double_Drops_Enabled: true
X706|9:
XP_Gain: 50
Double_Drops_Enabled: true
X706|10:
XP_Gain: 50
Double_Drops_Enabled: true
X706|11:
XP_Gain: 50
Double_Drops_Enabled: true
X706|12:
XP_Gain: 50
Double_Drops_Enabled: true
X706|13:
XP_Gain: 50
Double_Drops_Enabled: true
X706|14:
XP_Gain: 50
Double_Drops_Enabled: true
X706|15:
XP_Gain: 50
Double_Drops_Enabled: true
X707|0:
XP_Gain: 50
Double_Drops_Enabled: true
X707|1:
XP_Gain: 50
Double_Drops_Enabled: true
X707|2:
XP_Gain: 50
Double_Drops_Enabled: true
X707|3:
XP_Gain: 50
Double_Drops_Enabled: true
X707|4:
XP_Gain: 50
Double_Drops_Enabled: true
X707|5:
XP_Gain: 50
Double_Drops_Enabled: true
X707|6:
XP_Gain: 50
Double_Drops_Enabled: true
X707|7:
XP_Gain: 50
Double_Drops_Enabled: true
X707|8:
XP_Gain: 50
Double_Drops_Enabled: true
X707|9:
XP_Gain: 50
Double_Drops_Enabled: true
X707|10:
XP_Gain: 50
Double_Drops_Enabled: true
X707|11:
XP_Gain: 50
Double_Drops_Enabled: true
X707|12:
XP_Gain: 50
Double_Drops_Enabled: true
X707|13:
XP_Gain: 50
Double_Drops_Enabled: true
X707|14:
XP_Gain: 50
Double_Drops_Enabled: true
X707|15:
XP_Gain: 50
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
X700|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|8:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|9:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|10:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|11:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|12:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|13:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|14:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X700|15:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X701|0:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|1:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|2:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|3:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|4:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|5:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|6:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|7:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|8:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|9:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|10:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|11:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|12:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|13:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|14:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X701|15:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X702|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|8:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|9:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|10:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|11:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|12:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|13:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|14:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X702|15:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|8:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|9:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|10:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|11:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|12:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|13:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|14:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X703|15:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|8:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|9:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|10:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|11:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|12:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|13:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|14:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X704|15:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
X708|0:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|2:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|3:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|4:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|5:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|6:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|7:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|8:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|9:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|10:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X708|11:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X1095|0:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X1095|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X1095|2:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
X1095|3:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true

View File

@@ -0,0 +1,61 @@
# Config created by Dragyn
# Created For Railcraft_1.6.2-8.1.0.0
#
#
# Settings for Axes
###
Axes:
# Steel
X15787:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X15260
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Pickaxes
###
Pickaxes:
# Steel
X15788:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X15260
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Shovels
###
Shovels:
# Steel
X15789:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X15260
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Swords
###
Swords:
# Steel
X15786:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X15260
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500

View File

@@ -0,0 +1,9 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Stargate Tech 2 Alpha 0.7.3
Mining:
# Naquadah Ore
X1005|0:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,41 @@
# Config wrote by M1cr0man
# Up to date as of Thermal Expansion 3.0.0.7
Boots:
# Invar
X31973:
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 4
Durability: 325
Chestplates:
# Invar
X31975:
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 8
Durability: 400
Helmets:
# Invar
X31976:
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 5
Durability: 275
Leggings:
# Invar
X31976:
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 7
Durability: 375

View File

@@ -0,0 +1,29 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Thermal Expansion 3.0.0.7
Mining:
# Copper
X4064|0:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Tin
X4064|1:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Silver
X4064|2:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true
# Lead
X4064|3:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true
# Ferrous
X4064|4:
XP_Gain: 300
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,66 @@
# Config wrote by M1cr0man
# Up to date as of Thermal Expansion 3.0.0.7
Axes:
# Invar
X31969:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 3
Durability: 450
Hoes:
# Invar
X31968:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 2
Durability: 450
Pickaxes:
# Invar
X31970:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 3
Durability: 450
Shovels:
# Invar
X31971:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 1
Durability: 450
Swords:
# Invar
X31972:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 3
Repairable: true
Repair_Material: X31978
Repair_Material_Pretty_Name: "Invar Ingot"
Repair_Material_Data_Value: 71
Repair_Material_Quantity: 2
Durability: 450

View File

@@ -0,0 +1,74 @@
# Config wrote by M1cr0man
# Up to date as of Tinker's Construct 1.5.5.7
# Also covers Tinker's Steelworks 0.0.4.2-fix2
Boots:
# Wooden (Repaired with Oak Wood)
X14366:
Repairable: true
Repair_Material: LOG
Repair_Material_Pretty_Name: "Oak Wood"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 26
# Steel
X14771:
Repairable: true
Repair_Material: X14276
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 16
Repair_Material_Quantity: 4
Durability: 325
Chestplates:
# Wooden (Repaired with Oak Wood)
X14364:
Repairable: true
Repair_Material: LOG
Repair_Material_Pretty_Name: "Oak Wood"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 32
# Steel
X14769:
Repairable: true
Repair_Material: X14276
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 16
Repair_Material_Quantity: 8
Durability: 400
Helmets:
# Wooden (Repaired with Oak Wood)
X14362:
Repairable: true
Repair_Material: LOG
Repair_Material_Pretty_Name: "Oak Wood"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 22
# Steel
X14768:
Repairable: true
Repair_Material: X14276
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 16
Repair_Material_Quantity: 5
Durability: 275
Leggings:
# Wooden (Repaired with Oak Wood)
X14362:
Repairable: true
Repair_Material: LOG
Repair_Material_Pretty_Name: "Oak Wood"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 30
# Steel
X14768:
Repairable: true
Repair_Material: X14276
Repair_Material_Pretty_Name: "Steel Ingot"
Repair_Material_Data_Value: 16
Repair_Material_Quantity: 7
Durability: 375

View File

@@ -0,0 +1,55 @@
# Config wrote by M1cr0man
# Possibly incomplete. Only covers ores
# Up to date as of Tinker's Construct 1.5.5.7
Excavation:
# Iron
X1488|0:
XP_Gain: 250
Double_Drops_Enabled: true
# Gold
X1488|1:
XP_Gain: 350
Double_Drops_Enabled: true
# Copper
X1488|2:
XP_Gain: 175
Double_Drops_Enabled: true
# Tin
X1488|3:
XP_Gain: 175
Double_Drops_Enabled: true
# Aluminum
X1488|4:
XP_Gain: 250
Double_Drops_Enabled: true
# Cobalt
X1488|5:
XP_Gain: 500
Double_Drops_Enabled: true
Mining:
# Cobalt
X1475|1:
XP_Gain: 500
Double_Drops_Enabled: true
Is_Ore: true
# Ardite
X1475|2:
XP_Gain: 500
Double_Drops_Enabled: true
Is_Ore: true
# Copper
X1475|3:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Tin
X1475|4:
XP_Gain: 175
Double_Drops_Enabled: true
Is_Ore: true
# Aluminium
X1475|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: true

View File

@@ -0,0 +1,149 @@
# Config wrote by M1cr0man
# Abilites for Pickaxes and Shovels disabled due to a bug
# Repair disabled as mcMMO does not support NBTTag - based tools
# Up to date as of Tinker's Construct 1.5.5.7
# Also covers Tinker's Steelworks 0.0.4.2-fix2
Axes:
# Hatchets
X14309:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Mattocks
X14316:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Lumber Axes
X14317:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Battle Axes
X14327:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
Bows:
# Shortbows
X14319:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
Hoes:
# Mattocks
X14316:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Scythes
X14323:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
Pickaxes:
# Pickaxes
X14307:
XP_Modifier: 1.0
Ability_Enabled: false
Tier: 2
Repairable: false
Durability: 500
# Hammers
X14326:
XP_Modifier: 1.0
Ability_Enabled: false
Tier: 2
Repairable: false
Durability: 500
Shovels:
# Shovels
X14308:
XP_Modifier: 1.0
Ability_Enabled: false
Tier: 2
Repairable: false
Durability: 500
# Mattocks
X14316:
XP_Modifier: 1.0
Ability_Enabled: false
Tier: 2
Repairable: false
Durability: 500
# Excavators
X14325:
XP_Modifier: 1.0
Ability_Enabled: false
Tier: 2
Repairable: false
Durability: 500
Swords:
# Broadswords
X14311:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Longswords
X14312:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Rapiers
X14313:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Daggers
X14321:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Cleavers
X14324:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Battle Axes
X14327:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500
# Cutlasses
X14328:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 2
Repairable: false
Durability: 500

View File

@@ -0,0 +1,141 @@
# Config wrote by Dragyn, updated by M1cr0man
# Up to date as of Twilight Forest 1.20.5
Boots:
# Ironwood
X27978:
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 260
# Fiery
X27995:
Repairable: true
Repair_Material: X27991
Repair_Material_Pretty_Name: "Fiery Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 325
# Stealeaf
X28002:
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 260
# Knightmetal
X28037:
Repairable: true
Repair_Material: X28032
Repair_Material_Pretty_Name: "Knightmetal Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 4
Durability: 260
Chestplates:
# Ironwood
X27976:
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 320
# Naga Scale
X27958:
Repairable: true
Repair_Material: X27957
Repair_Material_Pretty_Name: "Naga Scale"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 336
# Fiery
X27993:
Repairable: true
Repair_Material: X27991
Repair_Material_Pretty_Name: "Fiery Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 400
# Stealeaf
X28000:
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 8
Durability: 320
# Knightmetal
# Phantom
Helmets:
# Ironwood
X27975:
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 220
# Fiery
X27992:
Repairable: true
Repair_Material: X27991
Repair_Material_Pretty_Name: "Fiery Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 275
# Stealeaf
X27999:
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 5
Durability: 220
# Knightmetal
# Phantom
Leggings:
# Ironwood
X27977:
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 300
# Naga Scale
X27959:
Repairable: true
Repair_Material: X27957
Repair_Material_Pretty_Name: "Naga Scale"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 315
# Fiery
X27994:
Repairable: true
Repair_Material: X27991
Repair_Material_Pretty_Name: "Fiery Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 375
# Stealeaf
X28001:
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 300
# Knightmetal
X28036:
Repairable: true
Repair_Material: X28032
Repair_Material_Pretty_Name: "Knightmetal Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 7
Durability: 300

View File

@@ -0,0 +1,117 @@
# Config created by Dragyn
# Created For twilightforest-1.20.3
#
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
# Mushgloom
X2169|9:
XP_Gain: 150
Double_Drops_Enabled: true
# Torchberry Plant
X2169|13:
XP_Gain: 20
Double_Drops_Enabled: true
# Mayapple
X2169|4:
XP_Gain: 30
Double_Drops_Enabled: true
# Fiddlehead
X2169|8:
XP_Gain: 35
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
# Mazestone
X2165|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
X2165|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
# Twilight Oak
X2163|0:
XP_Gain: 70
Double_Drops_Enabled: true
Is_Log: true
# Canopy
X2163|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
# Mangrove
X2163|2:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Darkwood
X2163|3:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Roots
X2170|0:
XP_Gain: 10
Double_Drops_Enabled: true
Is_Log: false
X2170|1:
XP_Gain: 10
Double_Drops_Enabled: true
Is_Log: false
# Timewood
X2176|0:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Transwood
X2176|1:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Minewood
X2176|2:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Sortingwood
X2176|3:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true

View File

@@ -0,0 +1,181 @@
# Config wrote by Dragyn, updated by M1cr0man
# Up to date as of Twilight Forest 1.20.5
Axes:
# Ironwood
X27982:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Steeleaf
X28006:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131
# Knightmetal
X28040:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X28032
Repair_Material_Pretty_Name: "Knightmetal Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Minotaur
X28008:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: false
Durability: 1561
Hoes:
# Ironwood
X27983:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Steeleaf
X28007:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131
Pickaxes:
# Ironwood
X27981:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Fiery
X27997:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27991
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 1024
# Steeleaf
X28005:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131
# Knightmetal
X28039:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X28032
Repair_Material_Pretty_Name: "Knightmetal Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
Shovels:
# Ironwood
X27980:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Steeleaf
X28004:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131
Swords:
# Ironwood
X27979:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27974
Repair_Material_Pretty_Name: "Ironwood Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512
# Fiery
X27996:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27991
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 1024
# Steeleaf
X28003:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X27998
Repair_Material_Pretty_Name: "Steeleaf"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 131
# Knightmetal
X28038:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: X28032
Repair_Material_Pretty_Name: "Knightmetal Ingot"
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 512

View File

@@ -0,0 +1,171 @@
# Config created by Dragyn
# Created For UndergroundBiomes 1.6.x - 0.4.2c
#
#
# Settings for Custom Mining Blocks
###
Mining:
X2000|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2000|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
#
X2001|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2001|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
#
X2009|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2009|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
#
X2010|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|4:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2010|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
#
X2011|0:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|1:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|2:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|3:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|4:
XP_Gain: 50
Double_Drops_Enabled: true
Is_Ore: false
X2011|5:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|6:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false
X2011|7:
XP_Gain: 30
Double_Drops_Enabled: true
Is_Ore: false

View File

@@ -0,0 +1,132 @@
# Config created by joulesbeef
# Created For twilightforest-2.2.3
#
#
# Settings for Boots
###
Boots:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODBOOTS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYBOOTS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Stealeaf
TWILIGHTFOREST_ITEM_STEELEAFBOOTS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYBOOTS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Chestplates
###
Chestplates:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODPLATE:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYPLATE:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Stealeaf
TWILIGHTFOREST_ITEM_STEELEAFPLATE:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYPLATE:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Helmets
###
Helmets:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODHELM:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYHELM:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Stealeaf
TWILIGHTFOREST_ITEM_STEELEAFHELM:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYHELM:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 50
# Settings for Leggings
###
Leggings:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODLEGS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYLEGS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Stealeaf
TWILIGHTFOREST_ITEM_STEELEAFLEGS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYLEGS:
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500

View File

@@ -0,0 +1,116 @@
# Config created by joulesbeef
# Created For twilightforest-2.2.3
#
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
# Mushgloom
TWILIGHTFOREST_TILE_TFLOG|9:
XP_Gain: 150
Double_Drops_Enabled: true
# Torchberry Plant
TWILIGHTFOREST_TILE_TFLOG|13:
XP_Gain: 20
Double_Drops_Enabled: true
# Mayapple
TWILIGHTFOREST_TILE_TFLOG|4:
XP_Gain: 30
Double_Drops_Enabled: true
# Fiddlehead
TWILIGHTFOREST_TILE_TFLOG|8:
XP_Gain: 35
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
# Mazestone
TWILIGHTFOREST_TILE_TFMAZESTONE|0:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|1:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|2:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|3:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|4:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|5:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|6:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
TWILIGHTFOREST_TILE_TFMAZESTONE|7:
XP_Gain: 250
Double_Drops_Enabled: true
Is_Ore: false
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
# Twilight Oak
TWILIGHTFOREST_TILE_TFLOG|0:
XP_Gain: 70
Double_Drops_Enabled: true
Is_Log: true
# Canopy
TWILIGHTFOREST_TILE_TFLOG|1:
XP_Gain: 80
Double_Drops_Enabled: true
Is_Log: true
# Mangrove
TWILIGHTFOREST_TILE_TFLOG|2:
XP_Gain: 90
Double_Drops_Enabled: true
Is_Log: true
# Darkwood
TWILIGHTFOREST_TILE_TFLOG|3:
XP_Gain: 100
Double_Drops_Enabled: true
Is_Log: true
# Roots
TWILIGHTFOREST_TILE_TFROOTS|0:
XP_Gain: 10
Double_Drops_Enabled: true
Is_Log: false
TWILIGHTFOREST_TILE_TFROOTS|1:
XP_Gain: 10
Double_Drops_Enabled: true
Is_Log: false
# Timewood
TWILIGHTFOREST_TILE_TFMAGICLOG|0:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Transwood
TWILIGHTFOREST_TILE_TFMAGICLOG|1:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Minewood
TWILIGHTFOREST_TILE_TFMAGICLOG|2:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true
# Sortingwood
TWILIGHTFOREST_TILE_TFMAGICLOG|3:
XP_Gain: 1000
Double_Drops_Enabled: true
Is_Log: true

View File

@@ -0,0 +1,152 @@
# Config created by joulesbeef
# Created For twilightforest-2.2.3
#
# Settings for Custom Mobs
MoCreatures-Ogre:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-TwilightLich:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-HelmetCrab:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-SlimeBeetle:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-TwilightWraith:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-Naga:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
MoCreatures-Shark:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-TowerTermite:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
MoCreatures-SmallFish:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-Redcap:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-YetiBoss:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
MoCreatures-HellRat:
Class: Monster
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-Hydra:
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-Firefly:
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-KnightPhantom:
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
TwilightForest-TowerGolem:
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0
MoCreatures-FishBowl:
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 0
CanBeSummoned: false
COTW_Material: ''
COTW_Material_Data: 0
COTW_Material_Amount: 0

View File

@@ -0,0 +1,184 @@
# Config created by joulesbeef
# Created For twilightforest-2.2.3
#
#
# Settings for Axes
###
Axes:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODAXE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Steeleaf
TWILIGHTFOREST_ITEM_STEELEAFAXE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYAXE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Minotaur
TWILIGHTFOREST_ITEM_MINOTAURAXE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: Diamond
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Hoes
###
Hoes:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODHOE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Steeleaf
TWILIGHTFOREST_ITEM_STEELEAFHOE:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Pickaxes
###
Pickaxes:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODPICK:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYPICK:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Steeleaf
TWILIGHTFOREST_ITEM_STEELEAFPICK:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYPICK:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Shovels
###
Shovels:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODSHOVEL:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Steeleaf
TWILIGHTFOREST_ITEM_STEELEAFSHOVEL:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
#
# Settings for Swords
###
Swords:
# Ironwood
TWILIGHTFOREST_ITEM_IRONWOODSWORD:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Fiery
TWILIGHTFOREST_ITEM_FIERYSWORD:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Steeleaf
TWILIGHTFOREST_ITEM_STEELEAFSWORD:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500
# Knightmetal
TWILIGHTFOREST_ITEM_KNIGHTLYSWORD:
XP_Modifer: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 2
Durability: 500

60
extras/repair.chain.yml Normal file
View File

@@ -0,0 +1,60 @@
#
# Repair configuration
# Last updated on ${project.version}-b${BUILD_NUMBER}
#
# Any file named repair.*.yml in the mcmmmo folder will be loaded as a repair config
# All repair configs have a main section titled "Repairables"
# Afterwards, all sub-items are considered a Repairable to be loaded. The names of each subitem should be the exact material name.
# The bare minimum of a Repairable is that it have a RepairMaterial and a MaximumDurability
#
# ItemType: This is the type of item to be repaired, this is only important to permissions.
## Valid values are ARMOR, TOOL, and OTHER.
## This defaults to OTHER.
#
# MaterialType: This is the type of the material of the item to be repaired, this is only important for permissions.
## Valid values are STRING, LEATHER, WOOD, STONE, IRON, GOLD, DIAMOND, and OTHER
## This defaults to OTHER.
#
# RepairMaterial: This is the material name of the item used to repair this repairable.
## This is required to be set.
#
# RepairMaterialMetadata: This is the metadata of the item used to repair this repairable.
## A value of -1 means to ignore all metadata when repairing.
## This defaults to -1
#
# MaximumDurability: This is the maximum durability of the item.
## This is required to be set.
#
# MinimumLevel: This is the minimum repair level needed to repair this item.
## Valid values are => 0
## This defaults to 0
#
# MinimumQuantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
## This defaults to 2
#
# XpMultiplier: This is the amount to multiply the xp bonus by.
## This defaults to 1
#
#
# The following is an example of a repair.*.yml config which adds the ability to repair Chainmail armor using fire.
#
#
###
Repairables:
#
# Chainmail repairables
###
# Armor
CHAINMAIL_HELMET:
RepairMaterial: FIRE
XpMultiplier: 2
CHAINMAIL_CHESTPLATE:
RepairMaterial: FIRE
XpMultiplier: 2
CHAINMAIL_LEGGINGS:
RepairMaterial: FIRE
XpMultiplier: 2
CHAINMAIL_BOOTS:
RepairMaterial: FIRE
XpMultiplier: 2

312
pom.xml Normal file → Executable file
View File

@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId>
<version>2.2.041-SNAPSHOT</version>
<version>2.2.000-ALPHA-SNAPSHOT</version>
<name>mcMMO</name>
<url>https://github.com/mcMMO-Dev/mcMMO</url>
<scm>
@@ -13,15 +13,7 @@
</scm>
<properties>
<!-- <spigot.version>1.19-R0.1-SNAPSHOT</spigot.version>-->
<spigot.version>1.21.7-R0.1-SNAPSHOT</spigot.version>
<kyori.adventure.version>4.23.0</kyori.adventure.version>
<kyori.adventure.platform.version>4.4.1-SNAPSHOT</kyori.adventure.platform.version>
<kyori.option.version>1.1.0</kyori.option.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<java.version>17</java.version>
</properties>
<issueManagement>
@@ -78,54 +70,36 @@
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<propertiesEncoding>UTF-8</propertiesEncoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
<trimStackTrace>false</trimStackTrace>
<excludedGroups>skip</excludedGroups>
</configuration>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
<trimStackTrace>false</trimStackTrace>
</configuration>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.1</version>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<version>3.8.1</version>
<configuration>
<release>17</release>
<compilerArgs>
<arg>-parameters</arg> <!-- used for ACF syntax stuff -->
</compilerArgs>
<source>1.8</source>
<target>1.8</target>
<excludes>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.7.1</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/package.xml</descriptor>
@@ -144,7 +118,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.3</version>
<version>3.2.3</version>
<configuration>
<artifactSet>
<includes>
@@ -154,31 +128,39 @@
<include>org.bstats:bstats-base</include>
<include>org.bstats:bstats-bukkit</include>
<include>net.kyori:adventure-api</include>
<include>net.kyori:adventure-key</include>
<include>net.kyori:adventure-nbt</include>
<include>net.kyori:adventure-platform-api</include>
<include>net.kyori:adventure-platform-bukkit</include>
<include>net.kyori:adventure-platform-facet</include>
<include>net.kyori:adventure-platform-viaversion</include>
<include>net.kyori:adventure-text-serializer-bungeecord</include>
<include>net.kyori:adventure-text-serializer-commons</include>
<include>net.kyori:adventure-text-serializer-gson</include>
<include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
<include>net.kyori:adventure-text-serializer-json</include>
<include>net.kyori:adventure-text-serializer-json-legacy-impl</include>
<include>net.kyori:adventure-text-serializer-legacy</include>
<include>net.kyori:adventure-platform-bukkit</include>
<include>net.kyori:adventure-platform-api</include>
<include>net.kyori:adventure-platform-common</include>
<include>net.kyori:adventure-platform-viaversion</include>
<include>net.kyori:adventure-platform-facet</include>
<include>net.kyori:adventure-nbt</include>
<include>net.kyori:adventure-key</include>
<include>net.kyori:examination-api</include>
<include>net.kyori:examination-string</include>
<include>net.kyori:option</include>
<include>net.kyori:adventure-text-serializer-legacy</include>
<include>net.kyori:adventure-text-serializer-bungeecord</include>
<include>net.kyori:adventure-text-serializer-craftbukkit</include>
<include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
<include>co.aikar:acf-bukkit</include>
<include>com.tcoded:FoliaLib</include>
<include>com.neetgames:mcMMO-API</include>
<!-- <include>com.neetgames:jmal</include>-->
<include>com.neetgames:NEET-lib</include>
</includes>
</artifactSet>
<!-- <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>-->
<relocations>
<relocation>
<pattern>net.kyori</pattern>
<shadedPattern>com.gmail.nossr50.mcmmo.kyori</shadedPattern>
<pattern>net.kyori.examination</pattern>
<shadedPattern>com.gmail.nossr50.kyori.examination</shadedPattern>
</relocation>
<relocation>
<pattern>net.kyori.adventure</pattern>
<shadedPattern>com.gmail.nossr50.mcmmo.kyori.adventure</shadedPattern>
</relocation>
<relocation>
<pattern>com.neetgames.neetlib</pattern>
<shadedPattern>com.gmail.nossr50.neetlib</shadedPattern>
</relocation>
<relocation>
<pattern>co.aikar.commands</pattern>
@@ -204,10 +186,6 @@
<pattern>org.bstats</pattern>
<shadedPattern>com.gmail.nossr50.mcmmo.metrics.bstats</shadedPattern>
</relocation>
<relocation>
<pattern>com.tcoded.folialib</pattern>
<shadedPattern>com.gmail.nossr50.mcmmo.folialib</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
@@ -224,22 +202,14 @@
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-file</artifactId>
<version>3.5.2</version>
<version>2.2</version>
</extension>
</extensions>
</build>
<pluginRepositories>
<pluginRepository>
<id>maven-snapshots</id>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<!-- Protocol Lib Repository -->
<repository>
<id>dmulloy2-repo</id>
<url>https://repo.dmulloy2.net/repository/public/</url>
<id>neet-games</id>
<url>https://nexus.neetgames.com/repository/maven-public/</url>
</repository>
<repository>
<id>spigot-repo</id>
@@ -250,8 +220,8 @@
<url>https://repo.codemc.org/repository/maven-public</url>
</repository>
<repository>
<id>enginehub-repo</id>
<url>https://maven.enginehub.org/repo/</url>
<id>sk89q-repo</id>
<url>https://maven.sk89q.com/repo/</url>
</repository>
<repository> <!-- for development builds -->
<id>sonatype-oss</id>
@@ -261,156 +231,122 @@
<id>aikar</id>
<url>https://repo.aikar.co/content/groups/aikar/</url>
</repository>
<repository>
<id>sonatype-oss-snapshots1</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
<repository>
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<!-- MockBukkit -->
<repository>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
<repository>
<id>jitpack</id>
<url>https://jitpack.io</url>
</repository>
<repository>
<id>tcoded-releases</id>
<url>https://repo.tcoded.com/releases/</url>
<repository> <!-- for development builds -->
<id>sonatype-oss</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<!-- <dependencyManagement>-->
<!-- <dependencies>-->
<!-- <dependency>-->
<!-- <groupId>org.junit</groupId>-->
<!-- <artifactId>junit-bom</artifactId>-->
<!-- <version>5.7.1</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<!-- </dependencies>-->
<!-- </dependencyManagement>-->
<dependencies>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.25.3</version>
<groupId>com.neetgames</groupId>
<artifactId>mcMMO-API</artifactId>
<version>0.01.00-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.neetgames</groupId>
<artifactId>jmal-core</artifactId>
<version>0.01.00-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.neetgames</groupId>
<artifactId>jmal-bukkit</artifactId>
<version>0.01.00-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.neetgames</groupId>
<artifactId>NEET-lib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.seeseemelk</groupId>
<artifactId>MockBukkit-v1.16</artifactId>
<version>0.25.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
<version>5.3.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.224</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>co.aikar</groupId>
<artifactId>acf-bukkit</artifactId> <!-- Don't forget to replace this -->
<version>0.5.1-SNAPSHOT</version> <!-- Replace this as well -->
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-bungeecord</artifactId>
<version>${kyori.adventure.platform.version}</version>
<version>0.5.0-SNAPSHOT</version> <!-- Replace this as well -->
</dependency>
<!-- adventure-api, adventure-text-serializer-gson, adventure-platform-bukkit-->
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-gson</artifactId>
<version>${kyori.adventure.version}</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
<version>${kyori.adventure.version}</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-json</artifactId>
<version>${kyori.adventure.version}</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
<version>${kyori.adventure.version}</version>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-api</artifactId>
<version>${kyori.adventure.version}</version>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-nbt</artifactId>
<version>${kyori.adventure.version}</version>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-key</artifactId>
<version>${kyori.adventure.version}</version>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-api</artifactId>
<version>${kyori.adventure.platform.version}</version>
<artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId>
<version>${kyori.adventure.platform.version}</version>
<version>4.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-facet</artifactId>
<version>${kyori.adventure.platform.version}</version>
<artifactId>adventure-platform-api</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-viaversion</artifactId>
<version>${kyori.adventure.platform.version}</version>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>option</artifactId>
<version>${kyori.option.version}</version>
<artifactId>adventure-platform-common</artifactId>
<version>4.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>net.kyori</groupId>
<artifactId>adventure-nbt</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>2.1.0</version>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
<version>3.0.2</version>
<version>2.2.1</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>io.papermc.paper</groupId>-->
<!-- <artifactId>paper-api</artifactId>-->
<!-- <version>1.21.5-R0.1-SNAPSHOT</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>${spigot.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sk89q.worldedit</groupId>
<artifactId>worldedit-bukkit</artifactId>
<version>7.2.0-SNAPSHOT</version>
<version>1.16.5-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sk89q.worldguard</groupId>
<artifactId>worldguard-core</artifactId>
<version>7.0.7</version>
<version>7.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<!-- We use jetbrains instead. Excluding this -->
@@ -433,44 +369,50 @@
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.11.0-M2</version>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.12.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>5.2.0</version>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>10.1.24</version>
<version>7.0.52</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>24.1.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.2.0-jre</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.tcoded</groupId>
<artifactId>FoliaLib</artifactId>
<version>0.5.1</version>
<scope>compile</scope>
<version>19.0.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -2,14 +2,13 @@ package com.gmail.nossr50.api;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.util.MetadataConstants;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.player.UserManager;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
public final class AbilityAPI {
private AbilityAPI() {
}
private AbilityAPI() {}
public static boolean berserkEnabled(Player player) {
return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
@@ -40,10 +39,10 @@ public final class AbilityAPI {
}
public static boolean isAnyAbilityEnabled(Player player) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
for (SuperAbilityType ability : SuperAbilityType.values()) {
if (mmoPlayer.getAbilityMode(ability)) {
if (mcMMOPlayer.getAbilityMode(ability)) {
return true;
}
}
@@ -84,8 +83,10 @@ public final class AbilityAPI {
}
public static boolean isBleeding(LivingEntity entity) {
if (entity.isValid()) {
return entity.hasMetadata(MetadataConstants.METADATA_KEY_RUPTURE);
if(entity.isValid()) {
if(entity.hasMetadata(mcMMO.RUPTURE_META_KEY)) {
return true;
}
}
return false;

View File

@@ -1,91 +1,142 @@
package com.gmail.nossr50.api;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.player.UserManager;
import org.bukkit.entity.Player;
public final class ChatAPI {
private ChatAPI() {
}
/**
* Check if a player is currently talking in party chat.
*
* @param player The player to check
* @return true if the player is using party chat, false otherwise
*/
public static boolean isUsingPartyChat(Player player) {
return UserManager.getPlayer(player).getChatChannel() == ChatChannel.PARTY;
}
/**
* Check if a player is currently talking in party chat.
*
* @param playerName The name of the player to check
* @return true if the player is using party chat, false otherwise
*/
public static boolean isUsingPartyChat(String playerName) {
return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.PARTY;
}
/**
* Check if a player is currently talking in admin chat.
*
* @param player The player to check
* @return true if the player is using admin chat, false otherwise
*/
public static boolean isUsingAdminChat(Player player) {
return UserManager.getPlayer(player).getChatChannel() == ChatChannel.ADMIN;
}
/**
* Check if a player is currently talking in admin chat.
*
* @param playerName The name of the player to check
* @return true if the player is using admin chat, false otherwise
*/
public static boolean isUsingAdminChat(String playerName) {
return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.ADMIN;
}
/**
* Toggle the party chat mode of a player.
*
* @param player The player to toggle party chat on.
*/
public static void togglePartyChat(Player player) {
mcMMO.p.getChatManager()
.setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.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) {
mcMMO.p.getChatManager()
.setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
}
/**
* Toggle the admin chat mode of a player.
*
* @param player The player to toggle admin chat on.
*/
public static void toggleAdminChat(Player player) {
mcMMO.p.getChatManager()
.setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.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) {
mcMMO.p.getChatManager()
.setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
}
}
//package com.gmail.nossr50.api;
//
//import com.gmail.nossr50.datatypes.chat.ChatChannel;
//import com.gmail.nossr50.mcMMO;
//import com.gmail.nossr50.util.player.UserManager;
//import org.bukkit.entity.Player;
//
//public final class ChatAPI {
// private ChatAPI() {}
//
//// /**
//// * Send a message to all members of a party
//// * </br>
//// * This function is designed for API usage.
//// *
//// * @param plugin The plugin sending the message
//// * @param sender The name of the sender
//// * @param displayName The display name of the sender
//// * @param party The name of the party to send to
//// * @param message The message to send
//// */
//// public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
//// getPartyChatManager(plugin, party).handleChat(sender, displayName, message);
//// }
////
//// /**
//// * Send a message to all members of a party
//// * </br>
//// * This function is designed for API usage.
//// *
//// * @param plugin The plugin sending the message
//// * @param sender The name of the sender to display in the chat
//// * @param party The name of the party to send to
//// * @param message The message to send
//// */
//// public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
//// getPartyChatManager(plugin, party).handleChat(sender, message);
//// }
////
//// /**
//// * Send a message to administrators
//// * </br>
//// * This function is designed for API usage.
//// *
//// * @param plugin The plugin sending the message
//// * @param sender The name of the sender
//// * @param displayName The display name of the sender
//// * @param message The message to send
//// */
//// public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
//// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, displayName, message);
//// }
////
//// /**
//// * Send a message to administrators
//// * </br>
//// * This function is designed for API usage.
//// *
//// * @param plugin The plugin sending the message
//// * @param sender The name of the sender to display in the chat
//// * @param message The message to send
//// */
//// public static void sendAdminChat(Plugin plugin, String sender, String message) {
//// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, message);
//// }
//
// /**
// * Check if a player is currently talking in party chat.
// *
// * @param player The player to check
// * @return true if the player is using party chat, false otherwise
// */
// public static boolean isUsingPartyChat(Player player) {
// return UserManager.getPlayer(player).getChatChannel() == ChatChannel.PARTY;
// }
//
// /**
// * Check if a player is currently talking in party chat.
// *
// * @param playerName The name of the player to check
// * @return true if the player is using party chat, false otherwise
// */
// public static boolean isUsingPartyChat(String playerName) {
// return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.PARTY;
// }
//
// /**
// * Check if a player is currently talking in admin chat.
// *
// * @param player The player to check
// * @return true if the player is using admin chat, false otherwise
// */
// public static boolean isUsingAdminChat(Player player) {
// return UserManager.getPlayer(player).getChatChannel() == ChatChannel.ADMIN;
// }
//
// /**
// * Check if a player is currently talking in admin chat.
// *
// * @param playerName The name of the player to check
// * @return true if the player is using admin chat, false otherwise
// */
// public static boolean isUsingAdminChat(String playerName) {
// return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.ADMIN;
// }
//
// /**
// * Toggle the party chat mode of a player.
// *
// * @param player The player to toggle party chat on.
// */
// public static void togglePartyChat(Player player) {
// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.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) {
// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
// }
//
// /**
// * Toggle the admin chat mode of a player.
// *
// * @param player The player to toggle admin chat on.
// */
// public static void toggleAdminChat(Player player) {
// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.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) {
// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
// }
//}

View File

@@ -2,17 +2,15 @@ package com.gmail.nossr50.api;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.mcMMO;
import java.util.UUID;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class DatabaseAPI {
private DatabaseAPI() {
}
/**
* Checks if a player exists in the mcMMO Database
*
* @param offlinePlayer target player
* @return true if the player exists in the DB, false if they do not
*/
@@ -24,7 +22,6 @@ public class DatabaseAPI {
/**
* Checks if a player exists in the mcMMO Database
*
* @param uuid target player
* @return true if the player exists in the DB, false if they do not
*/
@@ -41,7 +38,6 @@ public class DatabaseAPI {
/**
* Checks if a player exists in the mcMMO Database
*
* @param playerName target player
* @return true if the player exists in the DB, false if they do not
*/

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
package com.gmail.nossr50.api;
public enum FakeBlockBreakEventType {
FAKE,
TREE_FELLER
}

View File

@@ -1,17 +1,17 @@
package com.gmail.nossr50.api;
public enum ItemSpawnReason {
ARROW_RETRIEVAL_ACTIVATED, //Players sometimes can retrieve arrows instead of losing them when hitting a mob
EXCAVATION_TREASURE, //Any drops when excavation treasures activate fall under this
FISHING_EXTRA_FISH, //A config setting allows more fish to be found when fishing, the extra fish are part of this
FISHING_SHAKE_TREASURE, //When using a fishing rod on a mob and finding a treasure via Shake
HYLIAN_LUCK_TREASURE, //When finding a treasure in grass via hylian luck
BLAST_MINING_DEBRIS_NON_ORES, //The non-ore debris that are dropped from blast mining
BLAST_MINING_ORES, //The ore(s) which may include player placed ores being dropped from blast mining
BLAST_MINING_ORES_BONUS_DROP, //Any bonus ores that drop from a result of a players Mining skills
UNARMED_DISARMED_ITEM, //When you disarm an opponent and they drop their weapon
SALVAGE_ENCHANTMENT_BOOK, //When you salvage an enchanted item and get the enchantment back in book form
SALVAGE_MATERIALS, //When you salvage an item and get materials back
TREE_FELLER_DISPLACED_BLOCK,
BONUS_DROPS, //Can be from Mining, Woodcutting, Herbalism, etc
}
//package com.gmail.nossr50.api;
//
//public enum ItemSpawnReason {
// ARROW_RETRIEVAL_ACTIVATED, //Players sometimes can retrieve arrows instead of losing them when hitting a mob
// EXCAVATION_TREASURE, //Any drops when excavation treasures activate fall under this
// FISHING_EXTRA_FISH, //A config setting allows more fish to be found when fishing, the extra fish are part of this
// FISHING_SHAKE_TREASURE, //When using a fishing rod on a mob and finding a treasure via Shake
// HYLIAN_LUCK_TREASURE, //When finding a treasure in grass via hylian luck
// BLAST_MINING_DEBRIS_NON_ORES, //The non-ore debris that are dropped from blast mining
// BLAST_MINING_ORES, //The ore(s) which may include player placed ores being dropped from blast mining
// BLAST_MINING_ORES_BONUS_DROP, //Any bonus ores that drop from a result of a players Mining skills
// UNARMED_DISARMED_ITEM, //When you disarm an opponent and they drop their weapon
// SALVAGE_ENCHANTMENT_BOOK, //When you salvage an enchanted item and get the enchantment back in book form
// SALVAGE_MATERIALS, //When you salvage an item and get materials back
// TREE_FELLER_DISPLACED_BLOCK,
// BONUS_DROPS, //Can be from Mining, Woodcutting, Herbalism, etc
//}

View File

@@ -3,22 +3,17 @@ package com.gmail.nossr50.api;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.PartyLeader;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.util.player.NotificationManager;
import com.gmail.nossr50.util.player.UserManager;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.UUID;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
import java.util.*;
public final class PartyAPI {
private PartyAPI() {
}
private PartyAPI() {}
/**
* Get the name of the party a player is in.
@@ -29,22 +24,13 @@ public final class PartyAPI {
* @return the name of the player's party, or null if not in a party
*/
public static String getPartyName(Player player) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || !inParty(player)) {
if (!inParty(player)) {
return null;
}
return UserManager.getPlayer(player).getParty().getName();
}
/**
* Check if the party system is enabled.
*
* @return true if the party system is enabled, false otherwise
*/
public static boolean isPartySystemEnabled() {
return mcMMO.p.getPartyConfig().isPartyEnabled();
}
/**
* Checks if a player is in a party.
* </br>
@@ -54,9 +40,8 @@ public final class PartyAPI {
* @return true if the player is in a party, false otherwise
*/
public static boolean inParty(Player player) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
if(UserManager.getPlayer(player) == null)
return false;
}
return UserManager.getPlayer(player).inParty();
}
@@ -66,16 +51,12 @@ public final class PartyAPI {
* </br>
* This function is designed for API usage.
*
* @param playerA The first player to check
* @param playerB The second player to check
* @param playera The first player to check
* @param playerb The second player to check
* @return true if the two players are in the same party, false otherwise
*/
public static boolean inSameParty(Player playerA, Player playerB) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return false;
}
return mcMMO.p.getPartyManager().inSameParty(playerA, playerB);
public static boolean inSameParty(Player playera, Player playerb) {
return PartyManager.inSameParty(playera, playerb);
}
/**
@@ -86,7 +67,7 @@ public final class PartyAPI {
* @return the list of parties.
*/
public static List<Party> getParties() {
return mcMMO.p.getPartyManager().getParties();
return PartyManager.getParties();
}
/**
@@ -100,39 +81,32 @@ public final class PartyAPI {
*/
@Deprecated
public static void addToParty(Player player, String partyName) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return;
}
//Check if player profile is loaded
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
if (mmoPlayer == null) {
if(UserManager.getPlayer(player) == null)
return;
}
Party party = mcMMO.p.getPartyManager().getParty(partyName);
Party party = PartyManager.getParty(partyName);
if (party == null) {
party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
} else {
if (mcMMO.p.getPartyManager().isPartyFull(player, party)) {
NotificationManager.sendPlayerInformation(
player, NotificationType.PARTY_MESSAGE,
"Commands.Party.PartyFull", party.toString());
if(PartyManager.isPartyFull(player, party))
{
NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
return;
}
}
mcMMO.p.getPartyManager().addToParty(mmoPlayer, party);
PartyManager.addToParty(UserManager.getPlayer(player), party);
}
/**
* The max party size of the server 0 or less for no size limit
*
* The max party size of the server
* 0 or less for no size limit
* @return the max party size on this server
*/
public static int getMaxPartySize() {
public static int getMaxPartySize()
{
return mcMMO.p.getGeneralConfig().getPartyMaxSize();
}
@@ -145,19 +119,19 @@ public final class PartyAPI {
* @param partyName The party to add the player to
* @param bypassLimit if true bypasses party size limits
*/
//TODO: bypasslimit not used?
public static void addToParty(Player player, String partyName, boolean bypassLimit) {
//Check if player profile is loaded
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
if(UserManager.getPlayer(player) == null)
return;
}
Party party = mcMMO.p.getPartyManager().getParty(partyName);
Party party = PartyManager.getParty(partyName);
if (party == null) {
party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
}
mcMMO.p.getPartyManager().addToParty(UserManager.getPlayer(player), party);
PartyManager.addToParty(UserManager.getPlayer(player), party);
}
/**
@@ -169,11 +143,10 @@ public final class PartyAPI {
*/
public static void removeFromParty(Player player) {
//Check if player profile is loaded
if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
if(UserManager.getPlayer(player) == null)
return;
}
mcMMO.p.getPartyManager().removeFromParty(UserManager.getPlayer(player));
PartyManager.removeFromParty(UserManager.getPlayer(player));
}
/**
@@ -184,12 +157,8 @@ public final class PartyAPI {
* @param partyName The party name
* @return the leader of the party
*/
public static @Nullable String getPartyLeader(String partyName) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return null;
}
return mcMMO.p.getPartyManager().getPartyLeaderName(partyName);
public static String getPartyLeader(String partyName) {
return PartyManager.getPartyLeaderName(partyName);
}
/**
@@ -202,13 +171,7 @@ public final class PartyAPI {
*/
@Deprecated
public static void setPartyLeader(String partyName, String playerName) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return;
}
mcMMO.p.getPartyManager().setPartyLeader(
mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(),
mcMMO.p.getPartyManager().getParty(partyName));
PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName));
}
/**
@@ -221,12 +184,9 @@ public final class PartyAPI {
*/
@Deprecated
public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return null;
}
List<OfflinePlayer> members = new ArrayList<>();
final List<OfflinePlayer> members = new ArrayList<>();
for (UUID memberUniqueId : mcMMO.p.getPartyManager().getAllMembers(player).keySet()) {
for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) {
OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
members.add(member);
}
@@ -243,11 +203,7 @@ public final class PartyAPI {
*/
@Deprecated
public static LinkedHashSet<String> getMembers(Player player) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return null;
}
return (LinkedHashSet<String>) mcMMO.p.getPartyManager().getAllMembers(player).values();
return (LinkedHashSet<String>) PartyManager.getAllMembers(player).values();
}
/**
@@ -259,11 +215,7 @@ public final class PartyAPI {
* @return all the player names and uuids in the player's party
*/
public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return null;
}
return mcMMO.p.getPartyManager().getAllMembers(player);
return PartyManager.getAllMembers(player);
}
/**
@@ -275,11 +227,7 @@ public final class PartyAPI {
* @return all online players in this party
*/
public static List<Player> getOnlineMembers(String partyName) {
if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
return null;
}
return mcMMO.p.getPartyManager().getOnlineMembers(partyName);
return PartyManager.getOnlineMembers(partyName);
}
/**
@@ -291,7 +239,7 @@ public final class PartyAPI {
* @return all online players in the player's party
*/
public static List<Player> getOnlineMembers(Player player) {
return mcMMO.p.getPartyManager().getOnlineMembers(player);
return PartyManager.getOnlineMembers(player);
}
public static boolean hasAlly(String partyName) {
@@ -299,7 +247,7 @@ public final class PartyAPI {
}
public static String getAllyName(String partyName) {
Party ally = mcMMO.p.getPartyManager().getParty(partyName).getAlly();
Party ally = PartyManager.getParty(partyName).getAlly();
if (ally != null) {
return ally.getName();
}

View File

@@ -3,16 +3,17 @@ package com.gmail.nossr50.api;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.skills.SkillTools;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public final class SkillAPI {
private SkillAPI() {
}
private SkillAPI() {}
/**
* Returns a list of strings with mcMMO's skills This includes parent and child skills
* Returns a list of strings with mcMMO's skills
* This includes parent and child skills
* </br>
* This function is designed for API usage.
*
@@ -23,7 +24,8 @@ public final class SkillAPI {
}
/**
* Returns a list of strings with mcMMO's skills This only includes parent skills
* Returns a list of strings with mcMMO's skills
* This only includes parent skills
* </br>
* This function is designed for API usage.
*
@@ -34,7 +36,8 @@ public final class SkillAPI {
}
/**
* Returns a list of strings with mcMMO's skills This only includes child skills
* Returns a list of strings with mcMMO's skills
* This only includes child skills
* </br>
* This function is designed for API usage.
*
@@ -45,7 +48,8 @@ public final class SkillAPI {
}
/**
* Returns a list of strings with mcMMO's skills This only includes combat skills
* Returns a list of strings with mcMMO's skills
* This only includes combat skills
* </br>
* This function is designed for API usage.
*
@@ -56,7 +60,8 @@ public final class SkillAPI {
}
/**
* Returns a list of strings with mcMMO's skills This only includes gathering skills
* Returns a list of strings with mcMMO's skills
* This only includes gathering skills
* </br>
* This function is designed for API usage.
*
@@ -67,7 +72,8 @@ public final class SkillAPI {
}
/**
* Returns a list of strings with mcMMO's skills This only includes misc skills
* Returns a list of strings with mcMMO's skills
* This only includes misc skills
* </br>
* This function is designed for API usage.
*

View File

@@ -1,12 +0,0 @@
package com.gmail.nossr50.api;
import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class TreeFellerBlockBreakEvent extends FakeBlockBreakEvent {
public TreeFellerBlockBreakEvent(@NotNull Block theBlock, @NotNull Player player) {
super(theBlock, player);
}
}

View File

@@ -1,13 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
import org.jetbrains.annotations.NotNull;
public class IncompleteNamespacedKeyRegister extends RuntimeException {
@Serial
private static final long serialVersionUID = -6905157273569301219L;
public IncompleteNamespacedKeyRegister(@NotNull String message) {
super(message);
}
}

View File

@@ -1,12 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
public class InvalidFormulaTypeException extends RuntimeException {
@Serial
private static final long serialVersionUID = 3368670229490121886L;
public InvalidFormulaTypeException() {
super("That is not a valid FormulaType.");
}
}

View File

@@ -1,12 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
public class InvalidPlayerException extends RuntimeException {
@Serial
private static final long serialVersionUID = 907213002618581385L;
public InvalidPlayerException() {
super("That player does not exist in the database.");
}
}

View File

@@ -1,16 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
public class InvalidSkillException extends RuntimeException {
@Serial
private static final long serialVersionUID = 942705284195791157L;
public InvalidSkillException() {
super("That is not a valid skill.");
}
public InvalidSkillException(String msg) {
super(msg);
}
}

View File

@@ -1,12 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
public class InvalidXPGainReasonException extends RuntimeException {
@Serial
private static final long serialVersionUID = 4427052841957931157L;
public InvalidXPGainReasonException() {
super("That is not a valid XPGainReason.");
}
}

View File

@@ -1,15 +0,0 @@
package com.gmail.nossr50.api.exceptions;
import java.io.Serial;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class McMMOPlayerNotFoundException extends RuntimeException {
@Serial
private static final long serialVersionUID = 761917904993202836L;
public McMMOPlayerNotFoundException(@NotNull Player player) {
super("McMMOPlayer object was not found for [NOTE: This can mean the profile is not loaded yet! : "
+ player.getName() + " " + player.getUniqueId());
}
}

View File

@@ -6,13 +6,13 @@ import com.gmail.nossr50.chat.mailer.AdminChatMailer;
import com.gmail.nossr50.chat.mailer.PartyChatMailer;
import com.gmail.nossr50.config.ChatConfig;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.text.StringUtils;
import com.neetgames.mcmmo.party.Party;
import com.neetgames.mcmmo.player.OnlineMMOPlayer;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.command.ConsoleCommandSender;
@@ -23,6 +23,7 @@ public class ChatManager {
private final @NotNull AdminChatMailer adminChatMailer;
private final @NotNull PartyChatMailer partyChatMailer;
private final @NotNull ConsoleAuthor consoleAuthor;
private final @NotNull Audience consoleAudience;
@@ -33,8 +34,7 @@ public class ChatManager {
partyChatMailer = new PartyChatMailer(pluginRef);
this.consoleAuthor = new ConsoleAuthor(LocaleLoader.getString("Chat.Identity.Console"));
this.consoleAudience = mcMMO.getAudiences()
.filter((cs) -> cs instanceof ConsoleCommandSender);
this.consoleAudience = mcMMO.getAudiences().filter((cs) -> cs instanceof ConsoleCommandSender);
this.isChatEnabled = ChatConfig.getInstance().isChatEnabled();
}
@@ -43,10 +43,9 @@ public class ChatManager {
*
* @param mmoPlayer target player
* @param rawMessage the raw message from the player as it was typed
* @param isAsync whether this is getting processed via async
* @param isAsync whether or not this is getting processed via async
*/
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String rawMessage,
boolean isAsync) {
public void processPlayerMessage(@NotNull OnlineMMOPlayer mmoPlayer, @NotNull String rawMessage, boolean isAsync) {
processPlayerMessage(mmoPlayer, mmoPlayer.getChatChannel(), rawMessage, isAsync);
}
@@ -57,8 +56,7 @@ public class ChatManager {
* @param args the raw command arguments from the player
* @param chatChannel target channel
*/
public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args,
@NotNull ChatChannel chatChannel) {
public void processPlayerMessage(@NotNull OnlineMMOPlayer mmoPlayer, @NotNull String[] args, @NotNull ChatChannel chatChannel) {
String chatMessageWithoutCommand = buildChatMessage(args);
//Commands are never async
@@ -71,22 +69,15 @@ public class ChatManager {
* @param mmoPlayer target player
* @param chatChannel target chat channel
* @param rawMessage raw chat message as it was typed
* @param isAsync whether this is getting processed via async
* @param isAsync whether or not this is getting processed via async
*/
private void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer,
@NotNull ChatChannel chatChannel,
@NotNull String rawMessage, boolean isAsync) {
private void processPlayerMessage(@NotNull OnlineMMOPlayer mmoPlayer, @NotNull ChatChannel chatChannel, @NotNull String rawMessage, boolean isAsync) {
switch (chatChannel) {
case ADMIN:
adminChatMailer.processChatMessage(
mmoPlayer.getPlayerAuthor(), rawMessage, isAsync,
Permissions.colorChat(mmoPlayer.getPlayer()));
adminChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, isAsync, Permissions.colorChat(mmoPlayer.getPlayer()));
break;
case PARTY:
partyChatMailer.processChatMessage(
mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(),
isAsync, Permissions.colorChat(mmoPlayer.getPlayer()),
Misc.isPartyLeader(mmoPlayer));
partyChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(), isAsync, Permissions.colorChat(mmoPlayer.getPlayer()), Misc.isPartyLeader(mmoPlayer));
break;
case PARTY_OFFICER:
case NONE:
@@ -96,7 +87,6 @@ public class ChatManager {
/**
* Handles console messaging to admins
*
* @param rawMessage raw message from the console
*/
public void processConsoleMessage(@NotNull String rawMessage) {
@@ -105,7 +95,6 @@ public class ChatManager {
/**
* Handles console messaging to admins
*
* @param args raw command args from the console
*/
public void processConsoleMessage(@NotNull String[] args) {
@@ -114,18 +103,15 @@ public class ChatManager {
/**
* Handles console messaging to a specific party
*
* @param rawMessage raw message from the console
* @param party target party
*/
public void processConsoleMessage(@NotNull String rawMessage, @NotNull Party party) {
partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true,
false);
partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true, false);
}
/**
* Gets a console author
*
* @return a {@link ConsoleAuthor}
*/
private @NotNull Author getConsoleAuthor() {
@@ -133,39 +119,32 @@ public class ChatManager {
}
/**
* Change the chat channel of a {@link McMMOPlayer} Targeting the channel a player is already in
* will remove that player from the chat channel
*
* Change the chat channel of a {@link OnlineMMOPlayer}
* Targeting the channel a player is already in will remove that player from the chat channel
* @param mmoPlayer target player
* @param targetChatChannel target chat channel
*/
public void setOrToggleChatChannel(@NotNull McMMOPlayer mmoPlayer,
@NotNull ChatChannel targetChatChannel) {
if (targetChatChannel == mmoPlayer.getChatChannel()) {
public void setOrToggleChatChannel(@NotNull OnlineMMOPlayer mmoPlayer, @NotNull ChatChannel targetChatChannel) {
if(targetChatChannel == mmoPlayer.getChatChannel()) {
//Disabled message
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
"Chat.Channel.Off",
StringUtils.getCapitalized(targetChatChannel.toString())));
Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Chat.Channel.Off", StringUtils.getCapitalized(targetChatChannel.toString())));
mmoPlayer.setChatMode(ChatChannel.NONE);
} else {
mmoPlayer.setChatMode(targetChatChannel);
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
"Chat.Channel.On",
StringUtils.getCapitalized(targetChatChannel.toString())));
Misc.adaptPlayer(mmoPlayer).sendMessage(LocaleLoader.getString("Chat.Channel.On", StringUtils.getCapitalized(targetChatChannel.toString())));
}
}
/**
* Create a chat message from an array of {@link String}
*
* @param args array of {@link String}
* @return a String built from the array
*/
private @NotNull String buildChatMessage(@NotNull String[] args) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < args.length; i++) {
if (i + 1 >= args.length) {
for(int i = 0; i < args.length; i++) {
if(i + 1 >= args.length) {
stringBuilder.append(args[i]);
} else {
stringBuilder.append(args[i]).append(" ");
@@ -176,20 +155,19 @@ public class ChatManager {
}
/**
* Whether the player is allowed to send a message to the chat channel they are targeting
*
* Whether or not the player is allowed to send a message to the chat channel they are targeting
* @param mmoPlayer target player
* @return true if the player can send messages to that chat channel
*/
public boolean isMessageAllowed(@NotNull McMMOPlayer mmoPlayer) {
public boolean isMessageAllowed(@NotNull OnlineMMOPlayer mmoPlayer) {
switch (mmoPlayer.getChatChannel()) {
case ADMIN:
if (mmoPlayer.getPlayer().isOp() || Permissions.adminChat(mmoPlayer.getPlayer())) {
if(Misc.adaptPlayer(mmoPlayer).isOp() || Permissions.adminChat(mmoPlayer.getPlayer())) {
return true;
}
break;
case PARTY:
if (mmoPlayer.getParty() != null && Permissions.partyChat(mmoPlayer.getPlayer())) {
if(mmoPlayer.getParty() != null && Permissions.partyChat(mmoPlayer.getPlayer())) {
return true;
}
break;
@@ -203,7 +181,6 @@ public class ChatManager {
/**
* Sends just the console a message
*
* @param author author of the message
* @param message message contents in component form
*/
@@ -213,7 +190,6 @@ public class ChatManager {
/**
* Whether the mcMMO chat system which handles party and admin chat is enabled or disabled
*
* @return true if mcMMO chat processing (for party/admin chat) is enabled
*/
public boolean isChatEnabled() {
@@ -221,23 +197,28 @@ public class ChatManager {
}
/**
* Whether a specific chat channel is enabled ChatChannels are enabled/disabled via user config
* <p>
* If chat is disabled, this always returns false If NONE is passed as a {@link ChatChannel} it
* will return true
* Whether or not a specific chat channel is enabled
* ChatChannels are enabled/disabled via user config
*
* If chat is disabled, this always returns false
* If NONE is passed as a {@link ChatChannel} it will return true
* @param chatChannel target chat channel
* @return true if the chat channel is enabled
*/
public boolean isChatChannelEnabled(@NotNull ChatChannel chatChannel) {
if (!isChatEnabled) {
if(!isChatEnabled) {
return false;
} else {
return switch (chatChannel) {
case ADMIN, PARTY, PARTY_OFFICER ->
ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
case NONE -> true;
};
switch(chatChannel) {
case ADMIN:
case PARTY:
case PARTY_OFFICER:
return ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
case NONE:
return true;
default:
return false;
}
}
}

View File

@@ -1,13 +1,13 @@
package com.gmail.nossr50.chat;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.util.player.UserManager;
import java.util.function.Predicate;
import com.neetgames.mcmmo.party.Party;
import com.neetgames.mcmmo.player.OnlineMMOPlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import java.util.function.Predicate;
public class SamePartyPredicate<T extends CommandSender> implements Predicate<T> {
final Party party;
@@ -19,15 +19,14 @@ public class SamePartyPredicate<T extends CommandSender> implements Predicate<T>
@Override
public boolean test(T t) {
//Include the console in the audience
if (t instanceof ConsoleCommandSender) {
//Party audiences are special, we exclude console from them to avoid double
// messaging since we send a more verbose version to consoles
return false;
if(t instanceof ConsoleCommandSender) {
return false; //Party audiences are special, we exclude console from them to avoid double messaging since we send a more verbose version to consoles
} else {
if (t instanceof Player player) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
if (mmoPlayer != null) {
return mmoPlayer.getParty() == party;
if(t instanceof Player) {
Player player = (Player) t;
OnlineMMOPlayer mcMMOPlayer = UserManager.queryPlayer(player);
if(mcMMOPlayer != null) {
return mcMMOPlayer.getParty() == party;
}
}
}

View File

@@ -3,17 +3,17 @@ package com.gmail.nossr50.chat.author;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.util.text.TextUtils;
import com.google.common.base.Objects;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.bukkit.entity.Player;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
import java.util.UUID;
public abstract class AbstractPlayerAuthor implements Author {
private final @NotNull Player player;
private final @NotNull Map<ChatChannel, String> sanitizedNameCache;
private @NotNull String lastKnownDisplayName;
private final @NotNull HashMap<ChatChannel, String> sanitizedNameCache;
public AbstractPlayerAuthor(@NotNull Player player) {
this.player = player;
@@ -31,34 +31,32 @@ public abstract class AbstractPlayerAuthor implements Author {
}
/**
* Player display names can change and this method will update the last known display name of
* this player
* Player display names can change and this method will update the last known display name of this player
*/
private void updateLastKnownDisplayName() {
lastKnownDisplayName = player.getDisplayName();
}
/**
* Gets a sanitized name for a channel Sanitized names are names that are friendly to the
* {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer} Sanitized names
* for authors are cached by channel and are only created as needed Sanitized names will update
* if a players display name has updated
* Gets a sanitized name for a channel
* Sanitized names are names that are friendly to the {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer}
* Sanitized names for authors are cached by channel and are only created as needed
* Sanitized names will update if a players display name has updated
*
* @param chatChannel target chat channel
* @return the sanitized name for a player
*/
protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel,
boolean useDisplayName) {
protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
//Already in cache
if (sanitizedNameCache.containsKey(chatChannel)) {
if(sanitizedNameCache.containsKey(chatChannel)) {
//Update cache
if (useDisplayName && hasPlayerDisplayNameChanged()) {
if(useDisplayName && hasPlayerDisplayNameChanged()) {
updateLastKnownDisplayName();
updateSanitizedNameCache(chatChannel, true);
}
} else {
//Update last known display name
if (useDisplayName && hasPlayerDisplayNameChanged()) {
if(useDisplayName && hasPlayerDisplayNameChanged()) {
updateLastKnownDisplayName();
}
@@ -70,18 +68,16 @@ public abstract class AbstractPlayerAuthor implements Author {
}
/**
* Update the sanitized name cache This will add entries if one didn't exit Sanitized names are
* associated with a {@link ChatChannel} as different chat channels have different chat name
* settings
* Update the sanitized name cache
* This will add entries if one didn't exit
* Sanitized names are associated with a {@link ChatChannel} as different chat channels have different chat name settings
*
* @param chatChannel target chat channel
* @param useDisplayName whether to use this authors display name
* @param useDisplayName whether or not to use this authors display name
*/
private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel,
boolean useDisplayName) {
if (useDisplayName) {
sanitizedNameCache.put(chatChannel,
TextUtils.sanitizeForSerializer(player.getDisplayName()));
private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
if(useDisplayName) {
sanitizedNameCache.put(chatChannel, TextUtils.sanitizeForSerializer(player.getDisplayName()));
} else {
//No need to sanitize a basic String
sanitizedNameCache.put(chatChannel, player.getName());
@@ -109,17 +105,12 @@ public abstract class AbstractPlayerAuthor implements Author {
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AbstractPlayerAuthor that = (AbstractPlayerAuthor) o;
return Objects.equal(player, that.player) && Objects.equal(
lastKnownDisplayName,
that.lastKnownDisplayName) && Objects.equal(
sanitizedNameCache, that.sanitizedNameCache);
return Objects.equal(player, that.player) &&
Objects.equal(lastKnownDisplayName, that.lastKnownDisplayName) &&
Objects.equal(sanitizedNameCache, that.sanitizedNameCache);
}
@Override

View File

@@ -7,9 +7,9 @@ import org.jetbrains.annotations.NotNull;
public interface Author extends Identity {
/**
* The name of this author as used in mcMMO chat This is the {@link String} representation of
* the users current chat username This can either be the player's display name or the player's
* official registered nickname with Mojang it depends on the servers chat settings for mcMMO
* The name of this author as used in mcMMO chat
* This is the {@link String} representation of the users current chat username
* This can either be the player's display name or the player's official registered nickname with Mojang it depends on the servers chat settings for mcMMO
*
* @param chatChannel which chat channel this is going to
* @return The name of this author as used in mcMMO chat
@@ -17,15 +17,14 @@ public interface Author extends Identity {
@NotNull String getAuthoredName(@NotNull ChatChannel chatChannel);
/**
* Whether this author is a {@link org.bukkit.command.ConsoleCommandSender}
* Whether or not this author is a {@link org.bukkit.command.ConsoleCommandSender}
*
* @return true if this author is the console
*/
boolean isConsole();
/**
* Whether this author is a {@link org.bukkit.entity.Player}
*
* Whether or not this author is a {@link org.bukkit.entity.Player}
* @return true if this author is a player
*/
boolean isPlayer();

View File

@@ -2,10 +2,11 @@ package com.gmail.nossr50.chat.author;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.util.text.TextUtils;
import java.util.UUID;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class ConsoleAuthor implements Author {
private final UUID uuid;
private final @NotNull String name;

View File

@@ -3,14 +3,12 @@ package com.gmail.nossr50.chat.mailer;
import com.gmail.nossr50.chat.author.Author;
import com.gmail.nossr50.chat.message.AdminChatMessage;
import com.gmail.nossr50.chat.message.ChatMessage;
import com.gmail.nossr50.config.ChatConfig;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
import com.gmail.nossr50.events.chat.McMMOChatEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.text.TextUtils;
import java.util.function.Predicate;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.Bukkit;
@@ -19,14 +17,16 @@ import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
public class AdminChatMailer extends AbstractChatMailer {
import java.util.function.Predicate;
public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
public class AdminChatMailer extends AbstractChatMailer {
public AdminChatMailer(Plugin pluginRef) {
super(pluginRef);
}
public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
/**
* Constructs an audience of admins
*
@@ -42,10 +42,9 @@ public class AdminChatMailer extends AbstractChatMailer {
* @return admin chat audience predicate
*/
public @NotNull Predicate<CommandSender> predicate() {
return (commandSender) -> commandSender.isOp() || commandSender.hasPermission(
MCMMO_CHAT_ADMINCHAT_PERMISSION) || (
ChatConfig.getInstance().isConsoleIncludedInAudience(
ChatChannel.ADMIN) && commandSender instanceof ConsoleCommandSender);
return (commandSender) -> commandSender.isOp()
|| commandSender.hasPermission(MCMMO_CHAT_ADMINCHAT_PERMISSION)
|| commandSender instanceof ConsoleCommandSender;
}
/**
@@ -56,16 +55,11 @@ public class AdminChatMailer extends AbstractChatMailer {
* @param canColor whether to replace colors codes with colors in the raw message
* @return the styled string, based on a locale entry
*/
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
boolean canColor) {
if (canColor) {
return LocaleLoader.getTextComponent(
"Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN),
message);
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor) {
if(canColor) {
return LocaleLoader.getTextComponent("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message);
} else {
return TextUtils.ofLegacyTextRaw(
LocaleLoader.getString("Chat.Style.Admin",
author.getAuthoredName(ChatChannel.ADMIN), message));
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message));
}
}
@@ -79,20 +73,16 @@ public class AdminChatMailer extends AbstractChatMailer {
*
* @param author the author
* @param rawString the raw message as the author typed it before any styling
* @param isAsync whether this is being processed asynchronously
* @param canColor whether the author can use colors in chat
* @param isAsync whether or not this is being processed asynchronously
* @param canColor whether or not the author can use colors in chat
*/
public void processChatMessage(@NotNull Author author, @NotNull String rawString,
boolean isAsync,
boolean canColor) {
AdminChatMessage chatMessage = new AdminChatMessage(
pluginRef, author, constructAudience(), rawString,
addStyle(author, rawString, canColor));
public void processChatMessage(@NotNull Author author, @NotNull String rawString, boolean isAsync, boolean canColor) {
AdminChatMessage chatMessage = new AdminChatMessage(pluginRef, author, constructAudience(), rawString, addStyle(author, rawString, canColor));
McMMOChatEvent chatEvent = new McMMOAdminChatEvent(pluginRef, chatMessage, isAsync);
Bukkit.getPluginManager().callEvent(chatEvent);
if (!chatEvent.isCancelled()) {
if(!chatEvent.isCancelled()) {
sendMail(chatMessage);
}
}

View File

@@ -6,7 +6,6 @@ import org.jetbrains.annotations.NotNull;
public interface ChatMailer {
/**
* Send out a chat message
*
* @param chatMessage the {@link ChatMessage}
*/
void sendMail(@NotNull ChatMessage chatMessage);

View File

@@ -4,12 +4,12 @@ import com.gmail.nossr50.chat.author.Author;
import com.gmail.nossr50.chat.message.ChatMessage;
import com.gmail.nossr50.chat.message.PartyChatMessage;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.events.chat.McMMOChatEvent;
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.text.TextUtils;
import com.neetgames.mcmmo.party.Party;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.Bukkit;
@@ -27,20 +27,16 @@ public class PartyChatMailer extends AbstractChatMailer {
*
* @param author the author
* @param rawString the raw message as the author typed it before any styling
* @param isAsync whether this is being processed asynchronously
* @param canColor whether the author can use colors in chat
* @param isAsync whether or not this is being processed asynchronously
* @param canColor whether or not the author can use colors in chat
*/
public void processChatMessage(@NotNull Author author, @NotNull String rawString,
@NotNull Party party,
boolean isAsync, boolean canColor, boolean isLeader) {
PartyChatMessage chatMessage = new PartyChatMessage(
pluginRef, author, constructPartyAudience(party), rawString,
addStyle(author, rawString, canColor, isLeader), party);
public void processChatMessage(@NotNull Author author, @NotNull String rawString, @NotNull Party party, boolean isAsync, boolean canColor, boolean isLeader) {
PartyChatMessage chatMessage = new PartyChatMessage(pluginRef, author, constructPartyAudience(party), rawString, addStyle(author, rawString, canColor, isLeader), party);
McMMOChatEvent chatEvent = new McMMOPartyChatEvent(pluginRef, chatMessage, party, isAsync);
Bukkit.getPluginManager().callEvent(chatEvent);
if (!chatEvent.isCancelled()) {
if(!chatEvent.isCancelled()) {
sendMail(chatMessage);
}
}
@@ -63,29 +59,18 @@ public class PartyChatMailer extends AbstractChatMailer {
* @param canColor whether to replace colors codes with colors in the raw message
* @return the styled string, based on a locale entry
*/
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
boolean canColor,
boolean isLeader) {
if (canColor) {
if (isLeader) {
return LocaleLoader.getTextComponent(
"Chat.Style.Party.Leader",
author.getAuthoredName(ChatChannel.PARTY), message);
public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor, boolean isLeader) {
if(canColor) {
if(isLeader) {
return LocaleLoader.getTextComponent("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message);
} else {
return LocaleLoader.getTextComponent(
"Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY),
message);
return LocaleLoader.getTextComponent("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message);
}
} else {
if (isLeader) {
return TextUtils.ofLegacyTextRaw(
LocaleLoader.getString(
"Chat.Style.Party.Leader",
author.getAuthoredName(ChatChannel.PARTY), message));
if(isLeader) {
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message));
} else {
return TextUtils.ofLegacyTextRaw(
LocaleLoader.getString("Chat.Style.Party",
author.getAuthoredName(ChatChannel.PARTY), message));
return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message));
}
}
}

View File

@@ -15,9 +15,7 @@ public abstract class AbstractChatMessage implements ChatMessage {
protected @NotNull TextComponent componentMessage;
protected @NotNull Audience audience;
public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
@NotNull Audience audience,
@NotNull String rawMessage, @NotNull TextComponent componentMessage) {
public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
this.pluginRef = pluginRef;
this.author = author;
this.audience = audience;
@@ -40,11 +38,6 @@ public abstract class AbstractChatMessage implements ChatMessage {
return audience;
}
@Override
public void setAudience(@NotNull Audience newAudience) {
audience = newAudience;
}
@Override
public @NotNull TextComponent getChatMessage() {
return componentMessage;
@@ -55,20 +48,21 @@ public abstract class AbstractChatMessage implements ChatMessage {
this.componentMessage = textComponent;
}
@Override
public void setAudience(@NotNull Audience newAudience) {
audience = newAudience;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AbstractChatMessage that = (AbstractChatMessage) o;
return Objects.equal(pluginRef, that.pluginRef) && Objects.equal(author, that.author)
&& Objects.equal(
rawMessage, that.rawMessage) && Objects.equal(componentMessage,
that.componentMessage) && Objects.equal(
audience, that.audience);
return Objects.equal(pluginRef, that.pluginRef) &&
Objects.equal(author, that.author) &&
Objects.equal(rawMessage, that.rawMessage) &&
Objects.equal(componentMessage, that.componentMessage) &&
Objects.equal(audience, that.audience);
}
@Override

View File

@@ -8,9 +8,7 @@ import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
public class AdminChatMessage extends AbstractChatMessage {
public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
@NotNull Audience audience,
@NotNull String rawMessage, @NotNull TextComponent componentMessage) {
public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
super(pluginRef, author, audience, rawMessage, componentMessage);
}

View File

@@ -7,8 +7,8 @@ import org.jetbrains.annotations.NotNull;
public interface ChatMessage {
/**
* The original message from the {@link Author} This is formatted and styled before being sent
* out to players by mcMMO
* The original message from the {@link Author}
* This is formatted and styled before being sent out to players by mcMMO
*
* @return the original message without any formatting or alterations
* @see #getChatMessage()
@@ -18,42 +18,33 @@ public interface ChatMessage {
/**
* The {@link Author} from which this payload originated
*
* @return the source of the chat message
* @see #getChatMessage()
* @return the source of the chat message
*/
@NotNull Author getAuthor();
/**
* The authors display name which is used in the initial creation of the message payload, it is
* provided for convenience.
* <p>
* This is a name generated by mcMMO during the creation of the {@link ChatMessage}
* <p>
* This is used by mcMMO when generating the message payload
* <p>
* This method provides the display name for the convenience of plugins constructing their own
* {@link TextComponent payloads}
* The authors display name which is used in the initial creation of the message payload, it is provided for convenience.
*
* This is a name generated by mcMMO during the creation of the {@link ChatMessage}
*
* This is used by mcMMO when generating the message payload
*
* This method provides the display name for the convenience of plugins constructing their own {@link TextComponent payloads}
*
* @return the author display name as generated by mcMMO
* @see #getChatMessage()
* @return the author display name as generated by mcMMO
*/
@NotNull String getAuthorDisplayName();
/**
* The target audience of this chat message Unless modified, this will include the
* {@link Author}
* The target audience of this chat message
* Unless modified, this will include the {@link Author}
*
* @return target audience
*/
@NotNull Audience getAudience();
/**
* Changes the audience
*
* @param newAudience the replacement audience
*/
void setAudience(@NotNull Audience newAudience);
/**
* The {@link TextComponent message} being sent to the audience
*
@@ -68,6 +59,13 @@ public interface ChatMessage {
*/
void setChatMessage(@NotNull TextComponent textComponent);
/**
* Changes the audience
*
* @param newAudience the replacement audience
*/
void setAudience(@NotNull Audience newAudience);
/**
* Deliver the message to the audience
*/

View File

@@ -1,14 +1,13 @@
package com.gmail.nossr50.chat.message;
import com.gmail.nossr50.chat.author.Author;
import com.gmail.nossr50.config.ChatConfig;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.player.UserManager;
import com.google.common.base.Objects;
import com.neetgames.mcmmo.party.Party;
import com.neetgames.mcmmo.player.OnlineMMOPlayer;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.entity.Player;
@@ -19,17 +18,13 @@ public class PartyChatMessage extends AbstractChatMessage {
private final @NotNull Party party;
public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
@NotNull Audience audience,
@NotNull String rawMessage, @NotNull TextComponent componentMessage,
@NotNull Party party) {
public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage, @NotNull Party party) {
super(pluginRef, author, audience, rawMessage, componentMessage);
this.party = party;
}
/**
* The party that this chat message was intended for
*
* @return the party that this message was intended for
*/
public @NotNull Party getParty() {
@@ -50,36 +45,31 @@ public class PartyChatMessage extends AbstractChatMessage {
//Sends to everyone but console
audience.sendMessage(author, componentMessage);
final TextComponent spyMessage = LocaleLoader.getTextComponent(
"Chat.Spy.Party",
author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
TextComponent spyMessage = LocaleLoader.getTextComponent("Chat.Spy.Party", author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
//Relay to spies
messagePartyChatSpies(spyMessage);
//Console message
if (ChatConfig.getInstance().isConsoleIncludedInAudience(ChatChannel.PARTY)) {
mcMMO.p.getChatManager().sendConsoleMessage(author, spyMessage);
}
mcMMO.p.getChatManager().sendConsoleMessage(author, spyMessage);
}
/**
* Console and Party Chat Spies get a more verbose version of the message Party Chat Spies will
* get a copy of the message as well
*
* Console and Party Chat Spies get a more verbose version of the message
* Party Chat Spies will get a copy of the message as well
* @param spyMessage the message to copy to spies
*/
private void messagePartyChatSpies(@NotNull TextComponent spyMessage) {
//Find the people with permissions
for (McMMOPlayer mmoPlayer : UserManager.getPlayers()) {
final Player player = mmoPlayer.getPlayer();
for(OnlineMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
Player player = mcMMOPlayer.getPlayer();
//Check for toggled players
if (mmoPlayer.isPartyChatSpying()) {
Party adminParty = mmoPlayer.getParty();
if(mcMMOPlayer.isPartyChatSpying()) {
Party adminParty = mcMMOPlayer.getParty();
//Only message admins not part of this party
if (adminParty == null || adminParty != getParty()) {
if(adminParty == null || adminParty != getParty()) {
//TODO: Hacky, rewrite later
Audience audience = mcMMO.getAudiences().player(player);
audience.sendMessage(spyMessage);
@@ -90,16 +80,10 @@ public class PartyChatMessage extends AbstractChatMessage {
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}
final PartyChatMessage that = (PartyChatMessage) o;
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
PartyChatMessage that = (PartyChatMessage) o;
return Objects.equal(party, that.party);
}

View File

@@ -5,7 +5,7 @@ import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Permissions;
import org.bukkit.command.CommandSender;
public class McabilityCommand extends ToggleCommand {
public class AbilityToggleCommand extends ToggleCommand {
@Override
protected boolean hasOtherPermission(CommandSender sender) {
return Permissions.mcabilityOthers(sender);
@@ -17,10 +17,9 @@ public class McabilityCommand extends ToggleCommand {
}
@Override
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
"Commands.Ability." + (mmoPlayer.getAbilityUse() ? "Off" : "On")));
mmoPlayer.toggleAbilityUse();
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
mcMMOPlayer.toggleAbilityUse();
}
@Override

View File

@@ -5,7 +5,6 @@ import co.aikar.commands.BukkitCommandManager;
import co.aikar.commands.ConditionFailedException;
import com.gmail.nossr50.commands.chat.AdminChatCommand;
import com.gmail.nossr50.commands.chat.PartyChatCommand;
import com.gmail.nossr50.commands.skills.PowerLevelCommand;
import com.gmail.nossr50.config.ChatConfig;
import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
@@ -21,14 +20,9 @@ import org.jetbrains.annotations.NotNull;
* For now this class will only handle ACF converted commands, all other commands will be handled elsewhere
*/
public class CommandManager {
public static final @NotNull String MMO_DATA_LOADED = "mmoDataLoaded";
//CHAT
public static final @NotNull String ADMIN_CONDITION = "adminCondition";
public static final @NotNull String PARTY_CONDITION = "partyCondition";
//SKILLS
public static final @NotNull String POWER_LEVEL_CONDITION = "powerLevelCondition";
public static final @NotNull String MMO_DATA_LOADED = "mmoDataLoaded";
private final @NotNull mcMMO pluginRef;
private final @NotNull BukkitCommandManager bukkitCommandManager;
@@ -42,56 +36,29 @@ public class CommandManager {
}
private void registerCommands() {
registerSkillCommands(); //TODO: Implement other skills not just power level
registerChatCommands();
}
private void registerSkillCommands() {
if (mcMMO.p.getGeneralConfig().isMasterySystemEnabled()) {
bukkitCommandManager.registerCommand(new PowerLevelCommand(pluginRef));
}
}
/**
* Registers chat commands if the chat system is enabled
*/
private void registerChatCommands() {
if (ChatConfig.getInstance().isChatEnabled()) {
if (ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) {
if(ChatConfig.getInstance().isChatEnabled()) {
if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) {
bukkitCommandManager.registerCommand(new AdminChatCommand(pluginRef));
}
if (pluginRef.getPartyConfig().isPartyEnabled() && ChatConfig.getInstance()
.isChatChannelEnabled(ChatChannel.PARTY)) {
if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.PARTY)) {
bukkitCommandManager.registerCommand(new PartyChatCommand(pluginRef));
}
}
}
public void registerConditions() {
registerChatCommandConditions(); //Chat Commands
registerSkillConditions();
}
private void registerSkillConditions() {
bukkitCommandManager.getCommandConditions()
.addCondition(POWER_LEVEL_CONDITION, (context) -> {
BukkitCommandIssuer issuer = context.getIssuer();
if (issuer.getIssuer() instanceof Player) {
validateLoadedData(issuer.getPlayer());
} else {
throw new ConditionFailedException(
LocaleLoader.getString("Commands.NoConsole"));
}
});
}
private void registerChatCommandConditions() {
// Method or Class based - Can only be used on methods
bukkitCommandManager.getCommandConditions().addCondition(ADMIN_CONDITION, (context) -> {
BukkitCommandIssuer issuer = context.getIssuer();
if (issuer.getIssuer() instanceof Player) {
if(issuer.getIssuer() instanceof Player) {
validateLoadedData(issuer.getPlayer());
validateAdmin(issuer.getPlayer());
}
@@ -100,7 +67,7 @@ public class CommandManager {
bukkitCommandManager.getCommandConditions().addCondition(MMO_DATA_LOADED, (context) -> {
BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
if (bukkitCommandIssuer.getIssuer() instanceof Player) {
if(bukkitCommandIssuer.getIssuer() instanceof Player) {
validateLoadedData(bukkitCommandIssuer.getPlayer());
}
});
@@ -108,40 +75,37 @@ public class CommandManager {
bukkitCommandManager.getCommandConditions().addCondition(PARTY_CONDITION, (context) -> {
BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
if (bukkitCommandIssuer.getIssuer() instanceof Player) {
if(bukkitCommandIssuer.getIssuer() instanceof Player) {
validateLoadedData(bukkitCommandIssuer.getPlayer());
validatePlayerParty(bukkitCommandIssuer.getPlayer());
//TODO: Is there even a point in validating permission? look into this later
validatePermission("mcmmo.chat.partychat", bukkitCommandIssuer.getPlayer());
}
});
}
private void validatePermission(@NotNull String permissionNode,
@NotNull Permissible permissible) {
if (!permissible.hasPermission(permissionNode)) {
private void validatePermission(@NotNull String permissionNode, @NotNull Permissible permissible) {
if(!permissible.hasPermission(permissionNode)) {
throw new ConditionFailedException(LocaleLoader.getString("mcMMO.NoPermission"));
}
}
public void validateAdmin(@NotNull Player player) {
if (!player.isOp() && !Permissions.adminChat(player)) {
throw new ConditionFailedException(
"You are lacking the correct permissions to use this command.");
if(!player.isOp() && !Permissions.adminChat(player)) {
throw new ConditionFailedException("You are lacking the correct permissions to use this command.");
}
}
public void validateLoadedData(@NotNull Player player) {
if (UserManager.getPlayer(player) == null) {
if(UserManager.getPlayer(player) == null) {
throw new ConditionFailedException(LocaleLoader.getString("Profile.PendingLoad"));
}
}
public void validatePlayerParty(@NotNull Player player) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
if (!pluginRef.getPartyConfig().isPartyEnabled() || mmoPlayer.getParty() == null) {
if(mmoPlayer.getParty() == null) {
throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None"));
}
}

View File

@@ -7,9 +7,6 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
import com.gmail.nossr50.datatypes.experience.FormulaType;
import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@@ -17,6 +14,10 @@ import org.bukkit.command.TabExecutor;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class McconvertCommand implements TabExecutor {
private static final List<String> FORMULA_TYPES;
private static final List<String> DATABASE_TYPES;
@@ -53,13 +54,11 @@ public class McconvertCommand implements TabExecutor {
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (args.length == 2) {
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
return databaseConvertCommand.onCommand(sender, command, label, args);
} else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp")
|| args[1].equalsIgnoreCase("exp")) {
} else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
return experienceConvertCommand.onCommand(sender, command, label, args);
}
@@ -69,22 +68,17 @@ public class McconvertCommand implements TabExecutor {
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
switch (args.length) {
case 1:
return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS,
new ArrayList<>(SUBCOMMANDS.size()));
return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS, new ArrayList<>(SUBCOMMANDS.size()));
case 2:
if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES,
new ArrayList<>(DATABASE_TYPES.size()));
return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES, new ArrayList<>(DATABASE_TYPES.size()));
}
if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp")
|| args[0].equalsIgnoreCase("exp")) {
return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES,
new ArrayList<>(FORMULA_TYPES.size()));
if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[0].equalsIgnoreCase("exp")) {
return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES, new ArrayList<>(FORMULA_TYPES.size()));
}
return ImmutableList.of();

View File

@@ -17,10 +17,9 @@ public class McgodCommand extends ToggleCommand {
}
@Override
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
"Commands.GodMode." + (mmoPlayer.getGodMode() ? "Disabled" : "Enabled")));
mmoPlayer.toggleGodMode();
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
mcMMOPlayer.toggleGodMode();
}
@Override

View File

@@ -1,5 +1,6 @@
package com.gmail.nossr50.commands;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.commands.party.PartySubcommandType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -12,8 +13,7 @@ import org.jetbrains.annotations.NotNull;
public class McmmoCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
switch (args.length) {
case 0:
if (!Permissions.mcmmoDescription(sender)) {
@@ -28,22 +28,18 @@ public class McmmoCommand implements CommandExecutor {
if (mcMMO.p.getGeneralConfig().getDonateMessageEnabled()) {
sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
sender.sendMessage(
ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com"
+ ChatColor.GOLD + " Paypal");
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
}
if (Permissions.showversion(sender)) {
sender.sendMessage(LocaleLoader.getString("MOTD.Version",
mcMMO.p.getDescription().getVersion()));
sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
}
// mcMMO.getHolidayManager().anniversaryCheck(sender);
return true;
case 1:
if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help")
|| args[0].equalsIgnoreCase("commands")) {
if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("commands")) {
if (!Permissions.mcmmoHelp(sender)) {
sender.sendMessage(command.getPermissionMessage());
return true;
@@ -62,61 +58,59 @@ public class McmmoCommand implements CommandExecutor {
}
private void displayGeneralCommands(CommandSender sender) {
sender.sendMessage(LocaleLoader.getString("Commands.Stats"));
sender.sendMessage(LocaleLoader.getString("Commands.SkillInfo"));
sender.sendMessage(LocaleLoader.getString("Commands.Leaderboards"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
if (Permissions.inspect(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.Inspect"));
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
}
if (Permissions.mcability(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.ToggleAbility"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
}
}
private void displayOtherCommands(CommandSender sender) {
//Don't show them this category if they have none of the permissions
if (!Permissions.skillreset(sender) && !Permissions.mmoedit(sender)
&& !Permissions.adminChat(sender) && !Permissions.mcgod(sender)) {
if(!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
return;
}
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
if (Permissions.skillreset(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.Reset"));
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
}
if (Permissions.mmoedit(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
}
if (Permissions.adminChat(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.AdminToggle"));
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
}
if (Permissions.mcgod(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.mcgod"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
}
}
private void displayPartyCommands(CommandSender sender) {
if (Permissions.party(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
sender.sendMessage(LocaleLoader.getString("Commands.Party1"));
sender.sendMessage(LocaleLoader.getString("Commands.Party2"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Quit"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
if (Permissions.partyChat(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.Party.Toggle"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
}
sender.sendMessage(LocaleLoader.getString("Commands.Party.Invite"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Accept"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
sender.sendMessage(LocaleLoader.getString("Commands.Party.Teleport"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
}
}
}

View File

@@ -5,41 +5,37 @@ import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class McnotifyCommand implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (CommandUtils.noConsoleUsage(sender)) {
return true;
}
if (args.length == 0) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
//Not Loaded yet
if (mmoPlayer == null) {
if (mcMMOPlayer == null)
sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
return true;
}
sender.sendMessage(LocaleLoader.getString(
"Commands.Notifications." + (mmoPlayer.useChatNotifications() ? "Off" : "On")));
mmoPlayer.toggleChatNotifications();
sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));
mcMMOPlayer.toggleChatNotifications();
return true;
}
return false;
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
return ImmutableList.of();
}
}

View File

@@ -17,13 +17,13 @@ public class McrefreshCommand extends ToggleCommand {
}
@Override
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
mmoPlayer.setRecentlyHurt(0);
mmoPlayer.resetCooldowns();
mmoPlayer.resetToolPrepMode();
mmoPlayer.resetAbilityMode();
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
mcMMOPlayer.setRecentlyHurt(0);
mcMMOPlayer.resetCooldowns();
mcMMOPlayer.resetToolPrepMode();
mcMMOPlayer.resetAbilityMode();
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
}
@Override

View File

@@ -5,34 +5,24 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class McscoreboardCommand implements TabExecutor {
private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (CommandUtils.noConsoleUsage(sender)) {
return true;
}
if (!mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
sender.sendMessage(LocaleLoader.getString("Scoreboard.Disabled"));
return true;
}
if (!ScoreboardManager.isPlayerBoardSetup(sender.getName())) {
sender.sendMessage(LocaleLoader.getString("Scoreboard.NotSetupYet"));
return true;
}
switch (args.length) {
case 1:
if (args[0].equalsIgnoreCase("clear") || args[0].equalsIgnoreCase("reset")) {
@@ -42,8 +32,7 @@ public class McscoreboardCommand implements TabExecutor {
}
if (args[0].equalsIgnoreCase("keep")) {
if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard()
|| !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard() || !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
return true;
}
@@ -81,11 +70,9 @@ public class McscoreboardCommand implements TabExecutor {
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
if (args.length == 1) {
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS,
new ArrayList<>(FIRST_ARGS.size()));
return StringUtil.copyPartialMatches(args[0], FIRST_ARGS, new ArrayList<>(FIRST_ARGS.size()));
}
return ImmutableList.of();
}

View File

@@ -4,18 +4,18 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.UserManager;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public abstract class ToggleCommand implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
switch (args.length) {
case 0:
if (CommandUtils.noConsoleUsage(sender)) {
@@ -41,17 +41,17 @@ public abstract class ToggleCommand implements TabExecutor {
}
String playerName = CommandUtils.getMatchedPlayerName(args[0]);
final McMMOPlayer mmoPlayer = UserManager.getPlayer(playerName);
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
if (!CommandUtils.checkPlayerExistence(sender, playerName, mmoPlayer)) {
if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
return true;
}
if (CommandUtils.isOffline(sender, mmoPlayer.getPlayer())) {
if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) {
return true;
}
applyCommandAction(mmoPlayer);
applyCommandAction(mcMMOPlayer);
sendSuccessMessage(sender, playerName);
return true;
@@ -61,21 +61,16 @@ public abstract class ToggleCommand implements TabExecutor {
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
if (args.length == 1) {
List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
return StringUtil.copyPartialMatches(args[0], playerNames,
new ArrayList<>(playerNames.size()));
return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
}
return ImmutableList.of();
}
protected abstract boolean hasOtherPermission(CommandSender sender);
protected abstract boolean hasSelfPermission(CommandSender sender);
protected abstract void applyCommandAction(McMMOPlayer mmoPlayer);
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
}

View File

@@ -9,8 +9,6 @@ import com.gmail.nossr50.util.commands.CommandUtils;
import com.gmail.nossr50.util.player.NotificationManager;
import com.gmail.nossr50.util.text.StringUtils;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -18,16 +16,17 @@ import org.bukkit.command.TabExecutor;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class XprateCommand implements TabExecutor {
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance()
.getExperienceGainsGlobalMultiplier();
private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
switch (args.length) {
case 1:
if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
return false;
}
@@ -38,23 +37,22 @@ public class XprateCommand implements TabExecutor {
if (mcMMO.p.isXPEventEnabled()) {
if (mcMMO.p.getAdvancedConfig().useTitlesForXPEvent()) {
if(mcMMO.p.getAdvancedConfig().useTitlesForXPEvent())
{
NotificationManager.broadcastTitle(mcMMO.p.getServer(),
LocaleLoader.getString("Commands.Event.Stop"),
LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
10, 10 * 20, 20);
10, 10*20, 20);
}
if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
mcMMO.p.getServer()
.broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
mcMMO.p.getServer().broadcastMessage(
LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
if(mcMMO.p.getGeneralConfig().broadcastEventMessages())
{
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
}
//Admin notification
NotificationManager.processSensitiveCommandNotification(sender,
SensitiveCommandType.XPRATE_END);
NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_END);
mcMMO.p.toggleXpEventEnabled();
}
@@ -74,39 +72,40 @@ public class XprateCommand implements TabExecutor {
if (CommandUtils.shouldDisableToggle(args[1])) {
mcMMO.p.setXPEventEnabled(false);
} else if (CommandUtils.shouldEnableToggle(args[1])) {
}
else if (CommandUtils.shouldEnableToggle(args[1])) {
mcMMO.p.setXPEventEnabled(true);
} else {
}
else {
return false;
}
int newXpRate = Integer.parseInt(args[0]);
if (newXpRate < 0) {
sender.sendMessage(
ChatColor.RED + LocaleLoader.getString("Commands.NegativeNumberWarn"));
if(newXpRate < 0)
{
sender.sendMessage(ChatColor.RED+LocaleLoader.getString("Commands.NegativeNumberWarn"));
return true;
}
ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
if (mcMMO.p.getAdvancedConfig().useTitlesForXPEvent()) {
if(mcMMO.p.getAdvancedConfig().useTitlesForXPEvent())
{
NotificationManager.broadcastTitle(mcMMO.p.getServer(),
LocaleLoader.getString("Commands.Event.Start"),
LocaleLoader.getString("Commands.Event.XP", newXpRate),
10, 10 * 20, 20);
10, 10*20, 20);
}
if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
mcMMO.p.getServer()
.broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
mcMMO.p.getServer().broadcastMessage(
LocaleLoader.getString("Commands.Event.XP", newXpRate));
if(mcMMO.p.getGeneralConfig().broadcastEventMessages())
{
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.XP", newXpRate));
}
//Admin notification
NotificationManager.processSensitiveCommandNotification(sender,
SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
return true;
@@ -116,19 +115,16 @@ public class XprateCommand implements TabExecutor {
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
switch (args.length) {
case 1:
if (StringUtils.isInt(args[0])) {
return ImmutableList.of();
}
return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS,
new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS, new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
case 2:
return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS,
new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
default:
return ImmutableList.of();
}

View File

@@ -11,8 +11,8 @@ public class CompatibilityCommand implements CommandExecutor {
/**
* Executes the given command, returning its success.
* <br>
* If false is returned, then the "usage" plugin.yml entry for this command (if defined) will be
* sent to the player.
* If false is returned, then the "usage" plugin.yml entry for this command
* (if defined) will be sent to the player.
*
* @param commandSender Source of the command
* @param command Command which was executed
@@ -21,9 +21,7 @@ public class CompatibilityCommand implements CommandExecutor {
* @return true if a valid command, otherwise false
*/
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command,
@NotNull String s,
@NotNull String[] strings) {
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
mcMMO.getCompatibilityManager().reportCompatibilityStatus(commandSender);
return true;
}

View File

@@ -0,0 +1,57 @@
//package com.gmail.nossr50.commands.admin;
//
//import com.gmail.nossr50.config.treasure.FishingTreasureConfig;
//import com.gmail.nossr50.datatypes.player.McMMOPlayer;
//import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
//import com.gmail.nossr50.datatypes.treasure.Rarity;
//import com.gmail.nossr50.mcMMO;
//import com.gmail.nossr50.skills.fishing.FishingManager;
//import com.gmail.nossr50.util.player.UserManager;
//import org.bukkit.Location;
//import org.bukkit.command.Command;
//import org.bukkit.command.CommandExecutor;
//import org.bukkit.command.CommandSender;
//import org.bukkit.entity.Player;
//import org.jetbrains.annotations.NotNull;
//
//public class DropTreasureCommand implements CommandExecutor {
// @Override
// public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
// if(sender instanceof Player) {
// if(!sender.isOp()) {
// sender.sendMessage("This command is for Operators only");
// return false;
// }
//
// Player player = (Player) sender;
// Location location = player.getLocation();
// McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
//
// if(mmoPlayer == null) {
// //TODO: Localize
// player.sendMessage("Your player data is not loaded yet");
// return false;
// }
//
// if(args.length == 0) {
// mcMMO.p.getLogger().info(player.toString() +" is dropping all mcMMO treasures via admin command at location "+location.toString());
// for(Rarity rarity : FishingTreasureConfig.getInstance().fishingRewards.keySet()) {
// for(FishingTreasure fishingTreasure : FishingTreasureConfig.getInstance().fishingRewards.get(rarity)) {
// FishingManager fishingManager = mmoPlayer.getFishingManager();
// }
// }
// //TODO: impl
// } else {
// String targetTreasure = args[1];
//
// //Drop all treasures matching the name
// //TODO: impl
// }
//
// return true;
// } else {
// sender.sendMessage("No console support for this command");
// return false;
// }
// }
//}

View File

@@ -12,9 +12,7 @@ import org.jetbrains.annotations.NotNull;
*/
public final class McmmoReloadLocaleCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label,
String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (args.length == 0) {
if (!Permissions.reloadlocale(sender)) {
sender.sendMessage(command.getPermissionMessage());

View File

@@ -12,14 +12,11 @@ import org.jetbrains.annotations.NotNull;
public class PlayerDebugCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label,
String[] args) {
if (sender instanceof Player) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
mmoPlayer.toggleDebugMode(); //Toggle debug mode
NotificationManager.sendPlayerInformationChatOnlyPrefixed(mmoPlayer.getPlayer(),
"Commands.Mmodebug.Toggle", String.valueOf(mmoPlayer.isDebugMode()));
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if(sender instanceof Player) {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
NotificationManager.sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
return true;
} else {
return false;

View File

@@ -22,29 +22,24 @@ public class AdminChatCommand extends BaseCommand {
this.pluginRef = pluginRef;
}
@Default
@Conditions(CommandManager.ADMIN_CONDITION)
@Default @Conditions(CommandManager.ADMIN_CONDITION)
public void processCommand(String[] args) {
final BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
if (args == null || args.length == 0) {
BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
if(args == null || args.length == 0) {
//Process with no arguments
if (bukkitCommandIssuer.isPlayer()) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
bukkitCommandIssuer.getPlayer());
if(bukkitCommandIssuer.isPlayer()) {
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
} else {
//Not support for console
mcMMO.p.getLogger()
.info("You cannot switch chat channels as console, please provide full arguments.");
mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
}
} else {
if (bukkitCommandIssuer.isPlayer()) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
bukkitCommandIssuer.getPlayer());
if(bukkitCommandIssuer.isPlayer()) {
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
if (mmoPlayer == null) {
if(mmoPlayer == null)
return;
}
//Message contains the original command so it needs to be passed to this method to trim it
pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);

View File

@@ -18,11 +18,9 @@ public class McChatSpy extends ToggleCommand {
}
@Override
protected void applyCommandAction(McMMOPlayer mmoPlayer) {
mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
"Commands.AdminChatSpy." + (mmoPlayer.isPartyChatSpying() ? "Disabled"
: "Enabled")));
mmoPlayer.togglePartyChatSpying();
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
mcMMOPlayer.togglePartyChatSpying();
}
@Override

View File

@@ -11,6 +11,7 @@ import com.gmail.nossr50.datatypes.chat.ChatChannel;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.util.player.UserManager;
import com.gmail.nossr50.util.text.StringUtils;
import org.bukkit.entity.Player;
@@ -30,16 +31,14 @@ public class PartyChatCommand extends BaseCommand {
public void processCommand(String[] args) {
BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
if (args == null || args.length == 0) {
if(args == null || args.length == 0) {
//Process with no arguments
if (bukkitCommandIssuer.isPlayer()) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
bukkitCommandIssuer.getPlayer());
if(bukkitCommandIssuer.isPlayer()) {
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY);
} else {
//Not support for console
mcMMO.p.getLogger()
.info("You cannot switch chat channels as console, please provide full arguments.");
mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
}
} else {
//Here we split the logic, consoles need to target a party name and players do not
@@ -47,13 +46,12 @@ public class PartyChatCommand extends BaseCommand {
/*
* Player Logic
*/
if (bukkitCommandIssuer.getIssuer() instanceof Player) {
final McMMOPlayer mmoPlayer = UserManager.getPlayer(
bukkitCommandIssuer.getPlayer());
if(bukkitCommandIssuer.getIssuer() instanceof Player) {
McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
processCommandArgsPlayer(mmoPlayer, args);
/*
* Console Logic
*/
/*
* Console Logic
*/
} else {
processCommandArgsConsole(args);
}
@@ -62,7 +60,6 @@ public class PartyChatCommand extends BaseCommand {
/**
* Processes the command with arguments for a {@link McMMOPlayer}
*
* @param mmoPlayer target player
* @param args command arguments
*/
@@ -72,24 +69,19 @@ public class PartyChatCommand extends BaseCommand {
}
/**
* Processes the command with arguments for a
* {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
*
* Processes the command with arguments for a {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
* @param args command arguments
*/
private void processCommandArgsConsole(@NotNull String[] args) {
if (args.length <= 1) {
if(args.length <= 1) {
//Only specific a party and not the message
mcMMO.p.getLogger()
.severe("You need to specify a party name and then write a message afterwards.");
mcMMO.p.getLogger().severe("You need to specify a party name and then write a message afterwards.");
} else {
//Grab party
Party targetParty = mcMMO.p.getPartyManager().getParty(args[0]);
Party targetParty = PartyManager.getParty(args[0]);
if (targetParty != null) {
pluginRef.getChatManager()
.processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1),
targetParty);
if(targetParty != null) {
pluginRef.getChatManager().processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1), targetParty);
} else {
mcMMO.p.getLogger().severe("A party with that name doesn't exist!");
}

View File

@@ -17,26 +17,18 @@ import org.jetbrains.annotations.NotNull;
public class ConvertDatabaseCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label,
String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (args.length == 2) {
DatabaseType previousType = DatabaseType.getDatabaseType(args[1]);
DatabaseType newType = mcMMO.getDatabaseManager().getDatabaseType();
if (previousType == newType || (newType == DatabaseType.CUSTOM
&& DatabaseManagerFactory.getCustomDatabaseManagerClass()
.getSimpleName()
.equalsIgnoreCase(args[1]))) {
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same",
newType.toString()));
if (previousType == newType || (newType == DatabaseType.CUSTOM && DatabaseManagerFactory.getCustomDatabaseManagerClass().getSimpleName().equalsIgnoreCase(args[1]))) {
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same", newType.toString()));
return true;
}
DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType,
mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(),
mcMMO.p.getAdvancedConfig().getStartingLevel());
if (oldDatabase == null) {
DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType, mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(), mcMMO.p.getAdvancedConfig().getStartingLevel());
if(oldDatabase == null) {
sender.sendMessage("Unable to load the old database! Check your log for errors.");
return true;
}
@@ -48,26 +40,19 @@ public class ConvertDatabaseCommand implements CommandExecutor {
clazz = Class.forName(args[1]);
if (!DatabaseManager.class.isAssignableFrom(clazz)) {
sender.sendMessage(
LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
args[1]));
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
return true;
}
oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager(
(Class<? extends DatabaseManager>) clazz);
oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
} catch (Throwable e) {
e.printStackTrace();
sender.sendMessage(
LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
args[1]));
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
return true;
}
}
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start",
previousType.toString(),
newType.toString()));
sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString()));
UserManager.saveAll();
UserManager.clearAll();
@@ -76,17 +61,13 @@ public class ConvertDatabaseCommand implements CommandExecutor {
PlayerProfile profile = oldDatabase.loadPlayerProfile(player);
if (profile.isLoaded()) {
mcMMO.getDatabaseManager().saveUser(profile);
mcMMO.getDatabaseManager().saveUser(profile.getPlayerData());
}
mcMMO.p.getFoliaLib().getScheduler()
.runLaterAsync(new PlayerProfileLoadingTask(player),
1); // 1 Tick delay to ensure the player is marked as online before we begin loading
new PlayerProfileLoadingTask(player).runTaskLaterAsynchronously(mcMMO.p, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
}
mcMMO.p.getFoliaLib().getScheduler().runAsync(
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(),
newType.toString()));
new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(mcMMO.p);
return true;
}
return false;

View File

@@ -3,16 +3,16 @@ package com.gmail.nossr50.commands.database;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class McpurgeCommand implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String label, String[] args) {
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (args.length == 0) {
mcMMO.getDatabaseManager().purgePowerlessUsers();
@@ -27,8 +27,7 @@ public class McpurgeCommand implements TabExecutor {
}
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, String[] args) {
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
return ImmutableList.of();
}
}

Some files were not shown because too many files have changed in this diff Show More