Compare commits

..

84 commits

Author SHA1 Message Date
75a4b232ed
ci: 3.13.0.0! 2024-02-06 18:17:30 +01:00
dad4c9e637
feat: updated dependencies for vault hunters 3.13 2024-02-06 18:07:04 +01:00
3b396dfec3
sponsor time! 2024-02-06 18:06:18 +01:00
895ac522d4
CHANGELOG: typo 2024-02-06 18:06:18 +01:00
alterNERDtive
f2051de488
Merge pull request #15 from alterNERDtive/dependabot/github_actions/develop/gradle/gradle-build-action-3 2024-01-29 14:06:00 +01:00
dependabot[bot]
56c50c21f3
Bump gradle/gradle-build-action from 2 to 3
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 2 to 3.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: gradle/gradle-build-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 09:15:58 +00:00
alterNERDtive
3403f7060c
Merge pull request #14 from alterNERDtive/dependabot/github_actions/develop/vsoch/pull-request-action-1.1.0 2023-12-08 18:16:00 +01:00
dependabot[bot]
c249cdf432
Bump vsoch/pull-request-action from 1.0.24 to 1.1.0
Bumps [vsoch/pull-request-action](https://github.com/vsoch/pull-request-action) from 1.0.24 to 1.1.0.
- [Release notes](https://github.com/vsoch/pull-request-action/releases)
- [Changelog](https://github.com/vsoch/pull-request-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vsoch/pull-request-action/compare/1.0.24...1.1.0)

---
updated-dependencies:
- dependency-name: vsoch/pull-request-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-08 09:58:29 +00:00
e2f88e025f
version bump 2023-11-19 15:52:57 +01:00
78e9cfa1af
3.12.4.0! 2023-11-19 15:52:16 +01:00
1c1dfdf311
updated dependencies for vh 3.12.4 2023-11-19 15:48:46 +01:00
279f5d9075
fixed version number <.< 2023-11-14 22:48:21 +01:00
978d6532f3
version bump 2023-11-14 22:41:06 +01:00
e47ac6c54b
3.12.2.0! 2023-11-14 22:40:25 +01:00
5ff77edd71
updated dependencies for vh 3.12.2 2023-11-14 22:38:56 +01:00
178230a9b6
version bump 2023-11-09 19:07:47 +01:00
8eb9b8b509
3.12.1.1! 2023-11-09 19:03:19 +01:00
9da664ac78
added support for overridingnew Jeweler expertise 2023-11-09 19:01:05 +01:00
7dacc559a8
typo :-/ 2023-11-09 03:18:37 +01:00
409eed99c4
version bump 2023-11-09 03:11:47 +01:00
4c49d3ed2a
3.12.1.0! 2023-11-09 03:09:12 +01:00
bc0d5110cb
updated missing CHANGELOG entries
I’m sick, that’s my excuse.
2023-11-09 03:08:14 +01:00
8611b209e2
fixed build.gradle version number 2023-11-09 02:58:16 +01:00
6e6d53560a
updated gitignore for vscode being dumb 2023-11-09 02:57:36 +01:00
597d6397b3
fixed transmog mixin 2023-11-09 02:57:23 +01:00
2e70ead3a1
updated vault altar tags 2023-11-09 02:57:10 +01:00
5b4e2bb40f
updated dependencies for Vault Hunters 3.12.1 2023-11-09 02:14:05 +01:00
d2b64f7eb5
version bump 2023-09-10 20:35:37 +02:00
7f3f5bb2b2
3.11.4.0! 2023-09-10 20:34:28 +02:00
85e3021af1
added god axe trasmog 2023-09-10 20:31:40 +02:00
1d3a425c3f
updated dependencies for vault hunters 3.11.4 2023-09-10 20:31:14 +02:00
alterNERDtive
8ddab808a4
Merge pull request #11 from alterNERDtive:dependabot/github_actions/develop/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-05 14:09:13 +00:00
dependabot[bot]
318848c220
Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 09:28:48 +00:00
2f560e802b
version bump 2023-09-03 16:22:55 +02:00
e29be7bad5
3.11.3.0! 2023-09-03 16:21:51 +02:00
870f870653
added sword support to super secret feature™ 2023-09-03 16:20:22 +02:00
0a60a0bdfb
added livingrock bricks to the trash tag 2023-09-03 16:19:44 +02:00
fd8f5b399b
updated dependencies for vh 3.11.3 2023-09-03 16:18:24 +02:00
76b794b14d
version bump 2023-08-20 20:51:59 +02:00
319c3e5cdf
3.11.2.2! 2023-08-20 20:49:31 +02:00
4116287f00
fixed config loading race condition
fixes #9
2023-08-20 20:46:51 +02:00
8c074239af
extra mods for debugging purposes 2023-08-20 19:47:55 +02:00
ff6cd430f2
fixed jewel cutting config option 2023-08-20 19:10:33 +02:00
9f8da672b1
updated dependencies for vh 3.11.2.2 2023-08-20 18:45:42 +02:00
6512902bb1
README: trash tags 2023-08-07 20:09:02 +02:00
66caf42f2d
version bump 2023-08-07 20:00:55 +02:00
69621dae83
3.11.2.1! 2023-08-07 20:00:05 +02:00
1b01e365f4
updated dependencies for 3.11.2.1 2023-08-07 19:52:00 +02:00
d318cba9d1
README restructuring 2023-08-07 19:51:47 +02:00
fe7ceb5134
added tag for new vault trash
`the_vault:trash`
2023-08-06 18:41:57 +02:00
efdc4e4ab7
updated forge version 2023-08-06 15:26:10 +02:00
d8b1a63be6
version bumb 2023-08-06 15:15:06 +02:00
f963ac2802
3.11.2.0! 2023-08-06 15:14:06 +02:00
d4c8da78a1
vault mod now has a hard dependency on backpacks …
if only it declared those deps, wouldn’t that be great?
2023-08-06 15:13:38 +02:00
e47c36c36b
CHANGELOG fixing 2023-08-06 15:01:56 +02:00
1b28b75e62
updated tags for 3.11.2 2023-08-06 15:00:57 +02:00
d5ba90f210
updated dependencies for VH 3.11.2 2023-08-06 15:00:46 +02:00
e280efdaf9
fixed README error for config file location 2023-07-30 19:46:07 +02:00
c71da805e5
removed fake player research fix logging
… it was very spammy
2023-07-30 19:45:44 +02:00
fec2a3460e
version bumb 2023-07-26 16:14:26 +02:00
b8570b5b36
3.11.1.1! 2023-07-26 16:13:31 +02:00
2ce1c63111
added vaultar requiremnts tagging 2023-07-26 16:10:25 +02:00
d70cd09b42
refactoring: renamed mixin methods 2023-07-26 12:15:03 +02:00
da06973b36
modularized portal block configuration 2023-07-26 12:10:56 +02:00
30ae345c6a
balance changes now disabled by default 2023-07-26 10:57:31 +02:00
98a587518e
configuration pretty coding 2023-07-26 10:55:14 +02:00
cafd733018
oopsie whoopsie 2023-07-26 10:50:30 +02:00
84c7529379
updated docs to reflect ALL cost removed from Enchanter 2023-07-26 10:49:59 +02:00
066d3080ba
fixed fake player research fix logging 2023-07-26 10:48:45 +02:00
21da807b89
fixed fortune injection logging 2023-07-26 10:42:51 +02:00
f201b2d37f
version bump 2023-07-25 01:23:19 +02:00
1a73a83bb2
3.11.1.0! 2023-07-25 01:14:29 +02:00
87d7cfb0ca
super secret new feature 2023-07-25 01:06:36 +02:00
464a941ad0
updated for vh 3.11.1 2023-07-25 00:04:03 +02:00
b937cfb113
remap :) 2023-07-13 18:24:09 +02:00
273cf31b49
version bump 2023-07-13 18:20:31 +02:00
c8fc378ecf
3.11.0.3! 2023-07-13 18:19:45 +02:00
9ad686d667
removed leftover altar conduit option 2023-07-13 18:15:07 +02:00
55650370f1
I HATE ACTIONS 2023-07-13 18:10:42 +02:00
32a0e424e5
version bump 2023-07-13 18:04:21 +02:00
ce9b636688
3.11.0.2! 2023-07-13 18:03:04 +02:00
eb4664d952
removed altar conduit power draw fix
(and the dependency on that mod)
2023-07-13 18:00:51 +02:00
b03801e186
version bump 2023-07-13 17:39:39 +02:00
570028c972
i STILL hate actions :) 2023-07-13 17:39:17 +02:00
60 changed files with 1138 additions and 165 deletions

View file

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: pull-request-action
uses: vsoch/pull-request-action@1.0.24
uses: vsoch/pull-request-action@1.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_REQUEST_BRANCH: "develop"

View file

@ -1,4 +1,4 @@
name: Create release on tag push
name: Create release on tag push
on:
push:
@ -14,10 +14,10 @@ jobs:
steps:
- name: Checkout source code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/gradle-build-action@v3
- name: Run build with Gradle Wrapper
run: chmod +x ./gradlew && ./gradlew build

View file

@ -1,4 +1,4 @@
name: Publish to Curseforge on release
name: Publish to Curseforge on release
on:
release:
@ -15,6 +15,9 @@ jobs:
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF_NAME#release/}" >> $GITHUB_ENV
- name: Checkout source code
uses: actions/checkout@v4
- name: Download release artifacts
env:
GH_TOKEN: ${{ github.token }}
@ -27,7 +30,9 @@ jobs:
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
files: |
*.jar
the_vault-tweaks-1.18.2-${{ env.RELEASE_VERSION }}.jar
the_vault-tweaks-1.18.2-${{ env.RELEASE_VERSION }}-javadoc.jar
the_vault-tweaks-1.18.2-${{ env.RELEASE_VERSION }}-sources.jar
name: ""
version: 1.18.2-${{ env.RELEASE_VERSION }}

3
.gitignore vendored
View file

@ -13,6 +13,9 @@ out
*.iml
.idea
# jdk
jdk-17.0.2
# gradle
build
.gradle

View file

@ -1,3 +1,76 @@
# 3.13.0.0
Many thanks to @xyzminecraftserver for sponsoring the project!
This release is only rudimentarily tested since I am not currently playing the pack. Please report any issues you run into.
* Updated dependencies for Vault Hunters 3.13.
# 3.12.4.0 (2023-11-19)
* Updated dependencies for Vault Hunters 3.12.4.
# 3.12.2.0 (2023-11-14)
* Updated dependencies for Vault Hunters 3.12.2.
# 3.12.1.1 (2023-11-09)
* Added support for overriding the new Jeweler Expertise; disabling it now grants 3 free cuts by default.
# 3.12.1.0 (2023-11-09)
* Updated dependencies for Vault Hunters 3.12.1.
* Fixed Transmog Table mixin for 3.12.1.
* Updated Vault Altar tags to reflect the Lvl 40 → Lvl 50 pool change.
# 3.11.4.0 (2023-09-10)
* Updated dependencies for Vault Hunters 3.11.4.
* Added God Axe transmog to the super secret feature™.
# 3.11.3.0 (2023-09-03)
* Updated dependencies for Vault Hunters 3.11.3.
* Added Livingrock Bricks to the `the_vault:trash` tag, now that it has soul value.
# 3.11.2.2 (2023-08-20)
* Updated dependencies for Vault Hunters 3.11.2.2.
* Fixed jewel cutting tweaks being en-/disabled via the Jeweller expertise switch, the dedicated option now takes effect.
* Fixed race condition between Vault Mod config loading and Tweaks Mod config loading; the Vault Mod config is now reloaded whenever the Tweaks Mod config is (re-)loaded. (fixes #9)
# 3.11.2.1 (2023-08-07)
* Updated dependencies for Vault Hunters 3.11.2.1.
* Added tag for the new trash loot in Vaults (`the_vault:trash`).
# 3.11.2.0 (2023-08-06)
* Updated dependencies for Vault Hunters 3.11.2.
* Updated tags for Vault Hunters 3.11.2.
* Removed spammy logging for the fake player research fix.
# 3.11.1.1 (2023-07-26)
* Balance changes are now disabled by default, bug fixes enabled. Will not affect exsting worlds/configs.
* Modularized Portal block configuration; you can now define your own blocks to build Vault Portals out of.
* Altar requirement tags! Generated from the actual config file.
# 3.11.1.0 (2023-07-25)
* Updated dependencies for Vault Hunters 3.11.1.
# 3.11.0.3 (2023-07-13)
* Re-release because Curse sucks.
* Removed the Altar Conduit fix toggle from the configuration file.
# 3.11.0.2 (2023-07-13)
* Removed Altar Conduit power draw fix for AE2, fixed in the mod itself.
* Fixed (= removed) Vault Integrations dependency.
# 3.11.0.1 (2023-07-13)
* Updated dependencies for Vault Hunters 3.11.

View file

@ -2,9 +2,7 @@
This little companion mod for the Vault mod of the Vault Hunters mod pack fixes a few bugs and brings a couple QoL and balance changes.
All of these can be individually disabled in client & server config files.
If you do not disable the changes that affect expertises, I recommend a full expertise reset after installing this mod.
If you enable the changes that affect expertises, I recommend a full expertise reset after installing this mod.
## Configuration
@ -12,20 +10,31 @@ The mod is configured via a server configuration file. To change settings, do th
1. Create a new world and load into it / start your server.
2. Close the world again / stop your server.
3. Find the configuration file in `saves/<world name>/the_vault-tweaks-server.toml` (singleplayer) or `<world name>/the_vault-tweaks-server.toml` (server).
3. Find the configuration file in `saves/<world name>/serverconfig/the_vault-tweaks-server.toml` (singleplayer) or `<world name>/serverconfig/the_vault-tweaks-server.toml` (server).
4. Change accordingly. The file is heavily commented.
Bug fixes are enabled, balance changes disabled by default.
## Bug Fixes
* Fake players work with research again (e.g. Routers + Botany Pots, AE2 auto crafting).
* Fake players can put Vault Rocks on the Altar again.
* Relic fragments \#5 are now equally as likely to drop as the others.
* AE2 auto crafting no longer requires manually giving its fake player all research.
* Altar Conduit now draws the correct amount of power when connected to AE2.
## Miscellaneous
* Added tags for the new Vault trash items found in loot chests (`the_vault:trash`).
* Added support for making Vault Portals out of arbitrary blocks.
* Added tags to all Vault Altar requirements:
* `the_vault:altar_requirements`
* `the_vault:altar_requirements/<level>`
* `the_vault:altar_requirements/<pool>`
* `the_vault:altar_requirements/<pool>/<level>`
## Balance Changes
* Removed Emerald cost from Vault Enchanter.
* Removed enchanting cost from Vault Enchanter.
* Vault Enchanters offer Fortune 5, Fortunate expertise removed.
* Jewel cutting has a base 25% chance of failure, Jeweler expertise removed.
* Budding Crystal (Sky Vaults only) growth time reduced.

View file

@ -24,9 +24,9 @@ apply plugin: 'eu.davidea.grabver'
versioning {
// Required (number)
major 3
minor 11
minor 13
// Optional, force custom patch (number)
// patch 1
patch 0
// Optional (any string)
//preRelease "RC1"
// Optional, custom task name to trigger the increase of the version
@ -186,24 +186,30 @@ dependencies {
// Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed
// that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied.
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
minecraft 'net.minecraftforge:forge:1.18.2-40.2.9'
minecraft 'net.minecraftforge:forge:1.18.2-40.2.17'
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
implementation fg.deobf('curse.maven:vault-hunters-official-mod-458203:4641723')
implementation fg.deobf('curse.maven:vault-integrations-867003:4570137')
implementation fg.deobf("curse.maven:refined-storage-243076:3712882")
implementation fg.deobf('curse.maven:vault-hunters-official-mod-458203:5076087')
// implementation fg.deobf('curse.maven:vault-integrations-867003:4570137')
// implementation fg.deobf("curse.maven:refined-storage-243076:3712882")
implementation fg.deobf('appeng:appliedenergistics2-forge:11.7.0')
// Vault dependency
implementation fg.deobf("curse.maven:curios-309927:4418032")
implementation fg.deobf("curse.maven:quark-243121:3840125")
implementation fg.deobf("curse.maven:autoreglib-250363:3642382")
implementation fg.deobf("curse.maven:ecologics-570463:4171283")
implementation fg.deobf("curse.maven:geckolib-388172:4181370")
implementation fg.deobf("curse.maven:sophisticated-core-618298:4668692")
implementation fg.deobf("curse.maven:sophisticated-backpacks-422301:4637292")
// util
implementation fg.deobf("curse.maven:lazydfu-433518:3209972")
implementation fg.deobf("curse.maven:modernfix-790626:4593891")
implementation fg.deobf("curse.maven:configured-457570:4462832")
implementation fg.deobf("curse.maven:better-mods-button-541584:4608772")
implementation fg.deobf("curse.maven:fore-config-screens-544048:3671318")
// Real mod deobf dependency examples - these get remapped to your current mappings
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob",
"#the_vault:altar_requirements/resource",
"#the_vault:altar_requirements/farmable",
"#the_vault:altar_requirements/misc"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/0",
"#the_vault:altar_requirements/resource/0",
"#the_vault:altar_requirements/farmable/0",
"#the_vault:altar_requirements/misc/0"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/10",
"#the_vault:altar_requirements/resource/10",
"#the_vault:altar_requirements/farmable/10",
"#the_vault:altar_requirements/misc/10"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/20",
"#the_vault:altar_requirements/resource/20",
"#the_vault:altar_requirements/farmable/20",
"#the_vault:altar_requirements/misc/20"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/50",
"#the_vault:altar_requirements/resource/50",
"#the_vault:altar_requirements/farmable/50",
"#the_vault:altar_requirements/misc/50"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/75",
"#the_vault:altar_requirements/resource/75",
"#the_vault:altar_requirements/farmable/75",
"#the_vault:altar_requirements/misc/75"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/misc/90"
]
}

View file

@ -0,0 +1,10 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/farmable/0",
"#the_vault:altar_requirements/farmable/10",
"#the_vault:altar_requirements/farmable/20",
"#the_vault:altar_requirements/farmable/50",
"#the_vault:altar_requirements/farmable/75"
]
}

View file

@ -0,0 +1,16 @@
{
"replace": false,
"values": [
"minecraft:wheat_seeds",
"minecraft:oak_leaves",
"minecraft:spruce_leaves",
"minecraft:birch_leaves",
"minecraft:jungle_leaves",
"minecraft:acacia_leaves",
"minecraft:dark_oak_leaves",
"minecraft:azalea_leaves",
"minecraft:flowering_azalea_leaves",
"ecologics:coconut_leaves",
"ecologics:walnut_leaves"
]
}

View file

@ -0,0 +1,32 @@
{
"replace": false,
"values": [
"minecraft:sugar_cane",
"minecraft:carrot",
"minecraft:potato",
"minecraft:wheat",
"minecraft:kelp",
"minecraft:cactus",
"minecraft:bamboo",
"minecraft:vine",
"minecraft:beetroot",
"minecraft:snowball",
"minecraft:pumpkin",
"minecraft:melon",
"minecraft:azalea",
"minecraft:flowering_azalea",
"minecraft:sea_pickle",
"minecraft:dandelion",
"minecraft:poppy",
"minecraft:blue_orchid",
"minecraft:allium",
"minecraft:azure_bluet",
"minecraft:oxeye_daisy",
"minecraft:cornflower",
"minecraft:lily_of_the_valley",
"minecraft:beetroot_seeds",
"minecraft:sweet_berries",
"minecraft:apple",
"minecraft:seagrass"
]
}

View file

@ -0,0 +1,20 @@
{
"replace": false,
"values": [
"minecraft:brown_mushroom",
"minecraft:red_mushroom",
"minecraft:red_tulip",
"minecraft:orange_tulip",
"minecraft:white_tulip",
"minecraft:pink_tulip",
"minecraft:sunflower",
"minecraft:rose_bush",
"minecraft:peony",
"minecraft:lilac",
"minecraft:glow_lichen",
"minecraft:clay_ball",
"minecraft:brick",
"minecraft:glow_berries",
"minecraft:nether_wart"
]
}

View file

@ -0,0 +1,12 @@
{
"replace": false,
"values": [
"minecraft:twisting_vines",
"minecraft:weeping_vines",
"minecraft:big_dripleaf",
"minecraft:crimson_fungus",
"minecraft:warped_fungus",
"minecraft:chorus_fruit",
"minecraft:lily_pad"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"minecraft:wither_rose"
]
}

View file

@ -0,0 +1,11 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/misc/0",
"#the_vault:altar_requirements/misc/10",
"#the_vault:altar_requirements/misc/20",
"#the_vault:altar_requirements/misc/50",
"#the_vault:altar_requirements/misc/75",
"#the_vault:altar_requirements/misc/90"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"minecraft:iron_ingot",
"minecraft:copper_ingot",
"minecraft:coal",
"minecraft:charcoal"
]
}

View file

@ -0,0 +1,13 @@
{
"replace": false,
"values": [
"minecraft:pointed_dripstone",
"minecraft:gold_ingot",
"minecraft:redstone",
"minecraft:emerald",
"minecraft:lapis_lazuli",
"minecraft:amethyst_shard",
"minecraft:diamond",
"minecraft:spore_blossom"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"minecraft:glowstone_dust",
"minecraft:quartz",
"minecraft:name_tag"
]
}

View file

@ -0,0 +1,31 @@
{
"replace": false,
"values": [
"minecraft:prismarine_shard",
"minecraft:prismarine_crystals",
"minecraft:chorus_flower",
"minecraft:dead_brain_coral",
"minecraft:dead_bubble_coral",
"minecraft:dead_fire_coral",
"minecraft:dead_horn_coral",
"minecraft:dead_tube_coral",
"minecraft:dead_tube_coral_fan",
"minecraft:dead_brain_coral_fan",
"minecraft:dead_bubble_coral_fan",
"minecraft:dead_fire_coral_fan",
"minecraft:dead_horn_coral_fan",
"minecraft:brain_coral",
"minecraft:bubble_coral",
"minecraft:fire_coral",
"minecraft:horn_coral",
"minecraft:tube_coral",
"minecraft:tube_coral_fan",
"minecraft:brain_coral_fan",
"minecraft:bubble_coral_fan",
"minecraft:fire_coral_fan",
"minecraft:horn_coral_fan",
"minecraft:totem_of_undying",
"minecraft:saddle",
"minecraft:cobweb"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"minecraft:sponge",
"minecraft:nether_star",
"minecraft:trident"
]
}

View file

@ -0,0 +1,19 @@
{
"replace": false,
"values": [
"minecraft:music_disc_13",
"minecraft:music_disc_cat",
"minecraft:music_disc_blocks",
"minecraft:music_disc_chirp",
"minecraft:music_disc_far",
"minecraft:music_disc_mall",
"minecraft:music_disc_mellohi",
"minecraft:music_disc_stal",
"minecraft:music_disc_strad",
"minecraft:music_disc_ward",
"minecraft:music_disc_11",
"minecraft:music_disc_wait",
"minecraft:music_disc_otherside",
"minecraft:music_disc_pigstep"
]
}

View file

@ -0,0 +1,10 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/mob/0",
"#the_vault:altar_requirements/mob/10",
"#the_vault:altar_requirements/mob/20",
"#the_vault:altar_requirements/mob/50",
"#the_vault:altar_requirements/mob/75"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"minecraft:stick"
]
}

View file

@ -0,0 +1,41 @@
{
"replace": false,
"values": [
"minecraft:string",
"minecraft:rotten_flesh",
"minecraft:bone",
"minecraft:spider_eye",
"minecraft:arrow",
"minecraft:feather",
"minecraft:porkchop",
"minecraft:beef",
"minecraft:chicken",
"minecraft:rabbit",
"minecraft:slime_ball",
"minecraft:egg",
"minecraft:leather",
"minecraft:rabbit_hide",
"minecraft:white_dye",
"minecraft:orange_dye",
"minecraft:magenta_dye",
"minecraft:light_blue_dye",
"minecraft:yellow_dye",
"minecraft:lime_dye",
"minecraft:pink_dye",
"minecraft:gray_dye",
"minecraft:light_gray_dye",
"minecraft:cyan_dye",
"minecraft:purple_dye",
"minecraft:blue_dye",
"minecraft:brown_dye",
"minecraft:green_dye",
"minecraft:red_dye",
"minecraft:black_dye",
"minecraft:poisonous_potato",
"minecraft:mutton",
"minecraft:salmon",
"minecraft:cod",
"minecraft:cocoa_beans",
"minecraft:gunpowder"
]
}

View file

@ -0,0 +1,13 @@
{
"replace": false,
"values": [
"minecraft:honey_bottle",
"minecraft:blaze_rod",
"minecraft:ender_pearl",
"minecraft:rabbit_foot",
"minecraft:honeycomb",
"minecraft:ink_sac",
"minecraft:glow_ink_sac",
"minecraft:pufferfish"
]
}

View file

@ -0,0 +1,11 @@
{
"replace": false,
"values": [
"minecraft:tropical_fish",
"minecraft:ghast_tear",
"minecraft:magma_cream",
"minecraft:nautilus_shell",
"minecraft:turtle_egg",
"minecraft:wither_skeleton_skull"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"minecraft:phantom_membrane"
]
}

View file

@ -0,0 +1,10 @@
{
"replace": false,
"values": [
"#the_vault:altar_requirements/resource/0",
"#the_vault:altar_requirements/resource/10",
"#the_vault:altar_requirements/resource/20",
"#the_vault:altar_requirements/resource/50",
"#the_vault:altar_requirements/resource/75"
]
}

View file

@ -0,0 +1,10 @@
{
"replace": false,
"values": [
"minecraft:cobblestone",
"minecraft:diorite",
"minecraft:andesite",
"minecraft:granite",
"minecraft:dirt"
]
}

View file

@ -0,0 +1,74 @@
{
"replace": false,
"values": [
"minecraft:stone",
"minecraft:gravel",
"minecraft:sand",
"minecraft:red_sand",
"minecraft:oak_log",
"minecraft:spruce_log",
"minecraft:birch_log",
"minecraft:jungle_log",
"minecraft:acacia_log",
"minecraft:dark_oak_log",
"minecraft:moss_block",
"minecraft:white_wool",
"minecraft:orange_wool",
"minecraft:magenta_wool",
"minecraft:light_blue_wool",
"minecraft:yellow_wool",
"minecraft:lime_wool",
"minecraft:pink_wool",
"minecraft:gray_wool",
"minecraft:light_gray_wool",
"minecraft:cyan_wool",
"minecraft:purple_wool",
"minecraft:blue_wool",
"minecraft:brown_wool",
"minecraft:green_wool",
"minecraft:red_wool",
"minecraft:black_wool",
"minecraft:glass",
"minecraft:white_stained_glass",
"minecraft:orange_stained_glass",
"minecraft:magenta_stained_glass",
"minecraft:light_blue_stained_glass",
"minecraft:yellow_stained_glass",
"minecraft:lime_stained_glass",
"minecraft:pink_stained_glass",
"minecraft:gray_stained_glass",
"minecraft:light_gray_stained_glass",
"minecraft:cyan_stained_glass",
"minecraft:purple_stained_glass",
"minecraft:blue_stained_glass",
"minecraft:brown_stained_glass",
"minecraft:green_stained_glass",
"minecraft:red_stained_glass",
"minecraft:black_stained_glass",
"minecraft:smooth_stone",
"minecraft:bricks",
"minecraft:netherrack",
"minecraft:soul_sand",
"minecraft:basalt",
"minecraft:white_terracotta",
"minecraft:orange_terracotta",
"minecraft:magenta_terracotta",
"minecraft:light_blue_terracotta",
"minecraft:yellow_terracotta",
"minecraft:lime_terracotta",
"minecraft:pink_terracotta",
"minecraft:gray_terracotta",
"minecraft:light_gray_terracotta",
"minecraft:cyan_terracotta",
"minecraft:purple_terracotta",
"minecraft:blue_terracotta",
"minecraft:brown_terracotta",
"minecraft:green_terracotta",
"minecraft:red_terracotta",
"minecraft:black_terracotta",
"minecraft:terracotta",
"minecraft:deepslate",
"minecraft:cobbled_deepslate",
"minecraft:tuff"
]
}

View file

@ -0,0 +1,43 @@
{
"replace": false,
"values": [
"minecraft:mossy_cobblestone",
"minecraft:obsidian",
"minecraft:ice",
"minecraft:white_concrete",
"minecraft:orange_concrete",
"minecraft:magenta_concrete",
"minecraft:light_blue_concrete",
"minecraft:yellow_concrete",
"minecraft:lime_concrete",
"minecraft:pink_concrete",
"minecraft:gray_concrete",
"minecraft:light_gray_concrete",
"minecraft:cyan_concrete",
"minecraft:purple_concrete",
"minecraft:blue_concrete",
"minecraft:brown_concrete",
"minecraft:green_concrete",
"minecraft:red_concrete",
"minecraft:black_concrete",
"minecraft:white_concrete_powder",
"minecraft:orange_concrete_powder",
"minecraft:magenta_concrete_powder",
"minecraft:light_blue_concrete_powder",
"minecraft:yellow_concrete_powder",
"minecraft:lime_concrete_powder",
"minecraft:pink_concrete_powder",
"minecraft:gray_concrete_powder",
"minecraft:light_gray_concrete_powder",
"minecraft:cyan_concrete_powder",
"minecraft:purple_concrete_powder",
"minecraft:blue_concrete_powder",
"minecraft:brown_concrete_powder",
"minecraft:green_concrete_powder",
"minecraft:red_concrete_powder",
"minecraft:black_concrete_powder",
"minecraft:blackstone",
"minecraft:dripstone_block",
"minecraft:prismarine"
]
}

View file

@ -0,0 +1,14 @@
{
"replace": false,
"values": [
"minecraft:soul_soil",
"minecraft:purpur_block",
"minecraft:mycelium",
"minecraft:end_stone",
"minecraft:magma_block",
"minecraft:nether_wart_block",
"minecraft:warped_wart_block",
"minecraft:shroomlight",
"minecraft:podzol"
]
}

View file

@ -0,0 +1,11 @@
{
"replace": false,
"values": [
"minecraft:blue_ice",
"minecraft:crimson_stem",
"minecraft:warped_stem",
"minecraft:crying_obsidian",
"minecraft:calcite",
"minecraft:rooted_dirt"
]
}

View file

@ -17,10 +17,15 @@
*/
package tv.alterNERD.VaultModTweaks;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;
import net.minecraftforge.common.ForgeConfigSpec.DoubleValue;
import net.minecraftforge.common.ForgeConfigSpec.IntValue;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.common.ForgeConfigSpec.Builder;
import net.minecraftforge.common.ForgeConfigSpec.ConfigValue;
@ -35,6 +40,7 @@ public class Configuration {
public static BooleanValue JEWELER_ENABLED;
public static DoubleValue JEWELER_CHANCE;
public static IntValue JEWELER_FREE_CUTS;
public static BooleanValue JEWELS_ENABLED;
public static IntValue JEWELS_SIZE;
@ -48,12 +54,12 @@ public class Configuration {
public static BooleanValue VAULTAR_ENABLED;
public static IntValue VAULTAR_INFUSION_TIME;
public static BooleanValue PORTAL_TEMPLATE_ENABLED;
public static BooleanValue PORTAL_BLOCKS_ENABLED;
public static ConfigValue<List<? extends String>> PORTAL_BLOCKS;
public static BooleanValue FAKE_PLAYER_FIX;
public static BooleanValue ROUTER_VAULTAR_FIX;
public static BooleanValue FRAGMENT_WEIGHT_FIX;
public static BooleanValue VAULTAR_CONDUIT_FIX;
public static BooleanValue JUNKMGMT_ENABLED;
public static ConfigValue<Integer> JUNKMGMT_T1;
@ -61,65 +67,86 @@ public class Configuration {
public static ConfigValue<Integer> JUNKMGMT_T3;
public static ConfigValue<Integer> JUNKMGMT_T4;
public static ConfigValue<List<? extends String>> GOBLINS;
public static ConfigValue<List<? extends String>> CHAMPIONS;
static {
Builder builder = new Builder();
// Fortune changes
builder.push("Fortune");
builder.comment("Replace the maximum Fortune level for the Vault Enchanter and remove the Fortunate Expertise");
FORTUNE_ENABLED = builder.define("enableOverride", true);
builder.comment("Maximum Fortune level");
FORTUNE_LEVEL = builder.defineInRange("maxLevel", 5, 3, 5);
FORTUNE_ENABLED = builder
.comment("Replace the maximum Fortune level for the Vault Enchanter and remove the Fortunate Expertise")
.define("enableOverride", false);
FORTUNE_LEVEL = builder
.comment("Maximum Fortune level")
.defineInRange("maxLevel", 5, 3, 5);
builder.pop();
// Enchantment Cost
builder.push("VaultEnchanter");
builder.comment("Remove the Emerald cost from the Vault Enchanter");
ENCHANTS_FORFREE = builder.define("removeEmeraldCost", true);
ENCHANTS_FORFREE = builder
.comment("Remove the Emerald cost from the Vault Enchanter")
.define("removeEmeraldCost", false);
builder.pop();
// Jeweler
builder.push("Jeweler");
builder.comment("Remove the Jeweler Expertise and change the default cutting chance accordingly");
JEWELER_ENABLED = builder.define("disableJeweler", true);
builder.comment("Chance to break the jewel / remove a modifier");
JEWELER_CHANCE = builder.defineInRange("breakChance", 0.25d, 0d, 0.5d);
JEWELER_ENABLED = builder
.comment("Remove the Jeweler Expertise and change the default cutting chance accordingly")
.define("disableJeweler", false);
JEWELER_CHANCE = builder
.comment("Chance to break the jewel / remove a modifier (DEPRECATED since Vault Hunters 3.12.1)")
.defineInRange("breakChance", 0.25d, 0d, 0.5d);
JEWELER_FREE_CUTS = builder
.comment("Number of free cuts (pack default: up to 3 with Jeweler Expetise)")
.defineInRange("free_cuts", 3, 0, 10);
builder.pop();
// Budding Crystal
builder.push("BuddingCrystal");
builder.comment("Change the Budding Crystal growth times (Sky Vaults only)");
BUDDING_ENABLED = builder.define("enableOverride", true);
builder.comment("Maximum time between growth stages (pack default: 400)");
BUDDING_MAX = builder.defineInRange("maxTime", 300, 300, 500);
builder.comment("Minimum time between growth stages (pack default: 280)");
BUDDING_MIN = builder.defineInRange("minTime", 200, 100, 299);
BUDDING_ENABLED = builder
.comment("Change the Budding Crystal growth times (Sky Vaults only)")
.define("enableOverride", false);
BUDDING_MAX = builder
.comment("Maximum time between growth stages (pack default: 400)")
.defineInRange("maxTime", 300, 300, 500);
BUDDING_MIN = builder
.comment("Minimum time between growth stages (pack default: 280)")
.defineInRange("minTime", 200, 100, 299);
builder.pop();
// Jewels
builder.push("Jewels");
builder.comment("Change the max size for jewels and the size range for jewel cutting");
JEWELS_ENABLED = builder.define("enableOverride", true);
builder.comment("Maximum Jewel size (pack default: 90) (CURRENTLY NON-FUNCTIONAL)");
JEWELS_SIZE = builder.defineInRange("maxSize", 40, 10, 100);
builder.comment("Maximum size reduction when cutting (pack default: 10)");
JEWELS_MAX = builder.defineInRange("maxCut", 10, 5, 20);
builder.comment("Minimum size reduction when cutting (pack default: 1)");
JEWELS_MIN = builder.defineInRange("minCut", 3, 1, 4);
JEWELS_ENABLED = builder
.comment("Change the max size for jewels and the size range for jewel cutting")
.define("enableOverride", false);
JEWELS_SIZE = builder
.comment("Maximum Jewel size (pack default: 90) (CURRENTLY NON-FUNCTIONAL)")
.defineInRange("maxSize", 40, 10, 100);
JEWELS_MAX = builder
.comment("Maximum size reduction when cutting (pack default: 10)")
.defineInRange("maxCut", 10, 5, 20);
JEWELS_MIN = builder
.comment("Minimum size reduction when cutting (pack default: 1)")
.defineInRange("minCut", 3, 1, 4);
builder.pop();
// Vault Altar
builder.push("VaultAltar");
builder.comment("Enable Vaultar config overrides");
VAULTAR_ENABLED = builder.define("enableOverride", true);
builder.comment("The time it takes to infuse a crystal after giving a redstone signal (pack default: 5)");
VAULTAR_INFUSION_TIME = builder.defineInRange("infusionTime", 1, 1, 10);
VAULTAR_ENABLED = builder
.comment("Enable Vaultar config overrides")
.define("enableOverride", false);
VAULTAR_INFUSION_TIME = builder
.comment("The time it takes to infuse a crystal after giving a redstone signal (pack default: 5)")
.defineInRange("infusionTime", 1, 1, 10);
builder.pop();
// Vault Charm / Junk Management
builder.push("JunkManagement");
builder.comment("Override Junk Charm multipliers for the Junk Management slots (pack defaults: 3/18/114/228)");
JUNKMGMT_ENABLED = builder.define("enableOverride", true);
JUNKMGMT_ENABLED = builder
.comment("Override Junk Charm multipliers for the Junk Management slots (pack defaults: 3/18/114/228)")
.define("enableOverride", false);
builder.comment("These values will be multiplied by the default junk list size (9)");
JUNKMGMT_T1 = builder.define("tier1Multiplier", 28);
JUNKMGMT_T2 = builder.define("tier2Multiplier", 57);
@ -129,20 +156,37 @@ public class Configuration {
// Vault Portal
builder.push("VaultPortal");
builder.comment("Allow Template Frame Blocks extruded by Modular Routers Extruder Mk2 module as Vault Portal Frame blocks");
PORTAL_TEMPLATE_ENABLED = builder.define("allowTemplateFrames", true);
PORTAL_BLOCKS_ENABLED = builder
.comment("Add additional blocks as valid Portal frame blocks")
.define("extendValidPortalBlocks", false);
PORTAL_BLOCKS = builder
.comment("List of additional blocks")
.defineList("additionalPortalBlocks", new ArrayList<String>(), entry -> {
return ForgeRegistries.BLOCKS.containsKey(new ResourceLocation((String)entry));
});
builder.pop();
// Bug fixes
builder.push("Fixes");
builder.comment("Fix fake player research (e.g. Router + Botany Pots interaction, AE2 auto crafting, …)");
FAKE_PLAYER_FIX = builder.define("fakePlayerResearchFix", true);
builder.comment("Fix Routers unable to place Vault Rocks on your Vaultar");
ROUTER_VAULTAR_FIX = builder.define("routerVaultarFix", true);
builder.comment("Fix №5 fragments of all relics having half the weight");
FRAGMENT_WEIGHT_FIX = builder.define("fragmentFix", true);
builder.comment("Fix Vaultar Conduit power usage when used in an AE2 grid");
VAULTAR_CONDUIT_FIX = builder.define("conduitEnergyFix", true);
FAKE_PLAYER_FIX = builder
.comment("Fix fake player research (e.g. Router + Botany Pots interaction, AE2 auto crafting, …)")
.define("fakePlayerResearchFix", true);
ROUTER_VAULTAR_FIX = builder
.comment("Fix Routers unable to place Vault Rocks on your Vaultar")
.define("routerVaultarFix", true);
FRAGMENT_WEIGHT_FIX = builder
.comment("Fix №5 fragments of all relics having half the weight")
.define("fragmentFix", true);
builder.pop();
// Transmogs
builder.push("Transmogs");
GOBLINS = builder
.comment("Additional “Goblin” tier Patrons")
.defineList("goblins", new ArrayList<String>(), entry -> true);
CHAMPIONS = builder
.comment("Additional “Champion” tier Patrons")
.defineList("champions", new ArrayList<String>(), entry -> true);
builder.pop();
CONFIG = builder.build();

View file

@ -21,26 +21,53 @@ import org.slf4j.Logger;
import com.mojang.logging.LogUtils;
import net.minecraft.data.DataProvider;
import net.minecraft.data.tags.BlockTagsProvider;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
import iskallia.vault.init.ModConfigs;
import tv.alterNERD.VaultModTweaks.integration.TagManager;
import tv.alterNERD.VaultModTweaks.util.I18n;
@Mod("the_vault_tweaks")
public class VaultModTweaks
{
public static final Logger LOGGER = LogUtils.getLogger();
public static final String MOD_ID = "the_vault_tweaks";
public VaultModTweaks()
{
public VaultModTweaks() {
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::gatherData);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::configLoaded);
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Configuration.CONFIG);
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Configuration.CLIENTCONFIG);
}
private void setup(final FMLCommonSetupEvent event)
{
private void setup(final FMLCommonSetupEvent event) {
LOGGER.info("Vault Mod Tweaks by alterNERDtive");
}
private void gatherData(final GatherDataEvent event) {
BlockTagsProvider blockTagsProvider = new BlockTagsProvider(event.getGenerator(), MOD_ID, event.getExistingFileHelper());
event.getGenerator().addProvider(blockTagsProvider);
event.getGenerator().addProvider(
(DataProvider) new TagManager(
event.getGenerator(),
blockTagsProvider,
MOD_ID,
event.getExistingFileHelper())
);
}
private void configLoaded(final ModConfigEvent event) {
if (event.getConfig().getType() == ModConfig.Type.SERVER) {
LOGGER.info(I18n.get("the_vault_tweaks.log.config.reloadvaultconfig"));
ModConfigs.register();
}
}
}

View file

@ -0,0 +1,105 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import org.jetbrains.annotations.Nullable;
import iskallia.vault.config.altar.VaultAltarIngredientsConfig;
import iskallia.vault.config.altar.entry.AltarIngredientEntry;
import iskallia.vault.config.entry.LevelEntryMap;
import iskallia.vault.util.data.WeightedList;
import net.minecraft.core.Registry;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.tags.BlockTagsProvider;
import net.minecraft.data.tags.ItemTagsProvider;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.Item;
import net.minecraftforge.common.data.ExistingFileHelper;
import tv.alterNERD.VaultModTweaks.integration.mixin.IMixinVaultAltarIngredientsConfig;
/**
* Adds custom Tags.
*/
public class TagManager
extends ItemTagsProvider
{
public TagManager(DataGenerator generator, BlockTagsProvider blockTagsProvider, String modId,
@Nullable ExistingFileHelper existingFileHelper) {
super(generator, blockTagsProvider, modId, existingFileHelper);
}
@Override
protected void addTags() {
LevelEntryMap<Map<String, WeightedList<AltarIngredientEntry>>> levelIngredientsMap = ((IMixinVaultAltarIngredientsConfig) (VaultAltarIngredientsConfig) new VaultAltarIngredientsConfig().readConfig()).getLEVELS();
Map<String, SortedMap<Integer, List<Item>>> poolMap = new HashMap<String, SortedMap<Integer, List<Item>>>();
// Convert the level -> pool list<ingrediententry> format to what we need:
// pool -> level -> list<item>
levelIngredientsMap.forEach((level, ingredients) -> {
ingredients.forEach((pool, ingredientEntryList) -> {
SortedMap<Integer, List<Item>> poolItems = poolMap.getOrDefault(pool, new TreeMap<Integer, List<Item>>());
List<Item> itemList = poolItems.getOrDefault(level, new ArrayList<Item>());
ingredientEntryList.forEach((ingredientEntry, weight) -> {
ingredientEntry.getItems().forEach(itemStack -> {
itemList.add(itemStack.getItem());
});
});
poolItems.putIfAbsent(level, itemList);
poolMap.putIfAbsent(pool, poolItems);
});
});
// Create (and populate) the actual tags
TagKey<Item> altarTag = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation("the_vault:altar_requirements"));
poolMap.forEach((pool, levelItemMap) -> {
TagKey<Item> poolTag = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation("the_vault:altar_requirements/%s".formatted(pool)));
List<Item> itemsToRemove = new ArrayList<Item>();
levelItemMap.forEach((level, items) -> {
// Lets make sure to _only_ tag items with the current level that are _not_ included in previous levels
items.removeAll(itemsToRemove);
if (!items.isEmpty()) {
TagKey<Item> levelTag = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation("the_vault:altar_requirements/%s".formatted(level)));
TagKey<Item> poolLevelTag = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation("the_vault:altar_requirements/%s/%s".formatted(pool, level)));
items.forEach(item -> {
tag(poolLevelTag).add(item);
});
itemsToRemove.addAll(items);
tag(levelTag).addTag(poolLevelTag);
tag(poolTag).addTag(poolLevelTag);
}
});
tag(altarTag).addTag(poolTag);
});
}
}

View file

@ -0,0 +1,42 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration.mixin;
import java.util.Map;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import iskallia.vault.config.altar.VaultAltarIngredientsConfig;
import iskallia.vault.config.altar.entry.AltarIngredientEntry;
import iskallia.vault.config.entry.LevelEntryMap;
import iskallia.vault.util.data.WeightedList;
/**
* Changes the {@link iskallia.vault.config.altar.VaultAltarIngredientsConfig}
* class for managing altar recipes.
*/
@Mixin(VaultAltarIngredientsConfig.class)
public interface IMixinVaultAltarIngredientsConfig {
/**
* Makes the private level/entry Map available.
* @return The level/entry Map
*/
@Accessor(remap = false)
LevelEntryMap<Map<String, WeightedList<AltarIngredientEntry>>> getLEVELS();
}

View file

@ -1,61 +0,0 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration.mixin;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import iskallia.vaultintegrations.altar.AltarConduitNode;
import iskallia.vaultintegrations.init.VIConfigs;
import tv.alterNERD.VaultModTweaks.Configuration;
import tv.alterNERD.VaultModTweaks.VaultModTweaks;
import tv.alterNERD.VaultModTweaks.util.I18n;
/**
* Changes the {@link iskallia.vaultintegrations.altar.AltarConduitNode} class for
* managing the Altar Conduit as a node in RS/AE networks.
*
* Specifically, fixes the energy consumption when part of an AE2 grid.
*/
@Mixin(AltarConduitNode.class)
public class MixinAltarConduitNode {
/**
* Redirects the
* {@link iskallia.vaultintegrations.altar.AltarConduitNode#getEnergyUsage()}
* method to return a value in AE/t instead of RF/t. 1 AE = 2.5 RF.
*
* @return Energy usage in AE/t instead of RF/t
*/
@Redirect(
method = "setupAE",
at = @At(
value = "INVOKE",
target = "Liskallia/vaultintegrations/altar/AltarConduitNode;getEnergyUsage()I"
),
remap = false
)
private int getEnergyUsageRedirect(AltarConduitNode that) {
int rfPerTick = (int)VIConfigs.ALTAR_CONDUIT.getRFUsagePerTick();
if (Configuration.VAULTAR_CONDUIT_FIX.get()) {
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.conduit.energy"));
rfPerTick = rfPerTick*2/5;
}
return rfPerTick;
}
}

View file

@ -39,7 +39,7 @@ import tv.alterNERD.VaultModTweaks.util.I18n;
*/
@Mixin(EnchantmentEntry.class)
public abstract class MixinEnchantmentEntry
{
{
@Shadow(remap = false)
private int level;
@Shadow(remap = false)
@ -53,12 +53,13 @@ public abstract class MixinEnchantmentEntry
at = @At("RETURN"),
remap = false
)
private void initCallback(Enchantment enchantment, int level, CallbackInfo ci) {
private void init$return(Enchantment enchantment, int level, CallbackInfo ci) {
if (Configuration.FORTUNE_ENABLED.get()) {
ResourceLocation registryName = this.enchantment.getRegistryName();
if (registryName != null && registryName.toString().equals("minecraft:fortune")) {
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.fortune.level", 5));
this.level = Configuration.FORTUNE_LEVEL.get();
int maxFortune = Configuration.FORTUNE_LEVEL.get();
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.fortune.level", maxFortune));
this.level = maxFortune;
}
}
}
@ -72,7 +73,7 @@ public abstract class MixinEnchantmentEntry
cancellable = true,
remap = false
)
private void isValidCallback(CallbackInfoReturnable<Boolean> ci) {
private void isValid$return(CallbackInfoReturnable<Boolean> ci) {
if (Configuration.FORTUNE_ENABLED.get()) {
ResourceLocation registryName = this.enchantment.getRegistryName();
if (registryName != null && registryName.toString().equals("minecraft:fortune")

View file

@ -0,0 +1,50 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration.mixin;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import iskallia.vault.skill.expertise.type.JewelExpertise;
import tv.alterNERD.VaultModTweaks.Configuration;
import tv.alterNERD.VaultModTweaks.VaultModTweaks;
import tv.alterNERD.VaultModTweaks.util.I18n;
@Mixin(JewelExpertise.class)
public abstract class MixinJewelExpertise {
@Shadow
private int numberOfFreeCuts;
@Inject(
method = "getNumberOfFreeCuts()I",
at = @At("RETURN"),
cancellable = true,
remap = false
)
private void getNumberOfFreeCuts$return(CallbackInfoReturnable<Integer> ci) {
if (Configuration.JEWELER_ENABLED.get()) {
int cuts = Configuration.JEWELER_FREE_CUTS.get();
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.jewelcutting.freecuts", cuts));
ci.setReturnValue(cuts);
}
}
}

View file

@ -0,0 +1,42 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration.mixin;
import java.util.UUID;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import iskallia.vault.skill.tree.ExpertiseTree;
import iskallia.vault.world.data.PlayerExpertisesData;
import net.minecraft.world.entity.player.Player;
@Mixin(PlayerExpertisesData.class)
public abstract class MixinPlayerExpertisesData {
@Overwrite(remap=false)
ExpertiseTree getExpertises(Player player) {
// SkillContext.of(player)
// something something LearnableSkill.learn(context) auf den Expertise skill für jeweler
return this.getExpertises(player.getUUID());
}
@Shadow(remap=false)
ExpertiseTree getExpertises(UUID uuid) {
return null;
}
}

View file

@ -60,7 +60,7 @@ public class MixinPlayerResearchesData {
cancellable = true,
remap = false
)
private void getResearchesCallback(UUID uuid, CallbackInfoReturnable<ResearchTree> ci) {
private void getResearches$return(UUID uuid, CallbackInfoReturnable<ResearchTree> ci) {
if (Configuration.FAKE_PLAYER_FIX.get() && uuid.equals(ae2Uuid) && !this.ae2ResearchInjected) {
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.ae2research"));
this.playerMap.remove(ae2Uuid);

View file

@ -53,8 +53,8 @@ public abstract class MixinStageManager {
),
remap = false
)
private static ResearchTree overrideOnItemCrafted(Player player) {
return getResearchTreeOverride(player);
private static ResearchTree onItemCrafted$getResearchTree(Player player) {
return getResearchTree$redirect(player);
}
@Redirect(
@ -66,8 +66,8 @@ public abstract class MixinStageManager {
),
remap = false
)
private static ResearchTree overrideOnBlockInteraction(Player player) {
return getResearchTreeOverride(player);
private static ResearchTree onBlockInteraction$getResearchTree(Player player) {
return getResearchTree$redirect(player);
}
@Redirect(
@ -79,8 +79,8 @@ public abstract class MixinStageManager {
),
remap = false
)
private static ResearchTree overrideOnItemUse(Player player) {
return getResearchTreeOverride(player);
private static ResearchTree onItemUse$getResearchTree(Player player) {
return getResearchTree$redirect(player);
}
@Redirect(
@ -92,8 +92,8 @@ public abstract class MixinStageManager {
),
remap = false
)
private static ResearchTree overrideOnEntityInteraction(Player player) {
return getResearchTreeOverride(player);
private static ResearchTree onEntityInteraction$getResearchTree(Player player) {
return getResearchTree$redirect(player);
}
/**
@ -102,14 +102,21 @@ public abstract class MixinStageManager {
* @param player
* @return
*/
private static ResearchTree getResearchTreeOverride(Player player) {
if (!Configuration.FAKE_PLAYER_FIX.get() && player instanceof FakePlayer) {
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.research.fakeplayerfix", player.getUUID()));
return ResearchTree.empty();
private static ResearchTree getResearchTree$redirect(Player player) {
ResearchTree tree = ResearchTree.empty();
if (player instanceof FakePlayer) {
if (Configuration.FAKE_PLAYER_FIX.get()) {
// Removed cause very spammy :)
// VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.research.fakeplayerfix", player.getUUID()));
tree = PlayerResearchesData.get((ServerLevel) player.level).getResearches(player);
}
if (player.level.isClientSide) {
return RESEARCH_TREE;
}
return PlayerResearchesData.get((ServerLevel)player.level).getResearches(player);
else if (player.level.isClientSide) {
tree = RESEARCH_TREE;
}
else {
tree = PlayerResearchesData.get((ServerLevel)player.level).getResearches(player);
}
return tree;
}
}

View file

@ -38,7 +38,7 @@ public abstract class MixinToolType {
*
* @return nothing; this should never be actually called
*/
@Accessor
@Accessor(remap = false)
static Map<Integer, ToolType> getPACKED_TO_TYPE() {
throw new AssertionError();
}

View file

@ -0,0 +1,77 @@
/**
* Copyright 2023 alterNERDtive.
*
* This file is part of Vault Mod Tweaks.
*
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Vault Mod Tweaks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
*/
package tv.alterNERD.VaultModTweaks.integration.mixin;
import java.util.Collection;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import iskallia.vault.block.TransmogTableBlock;
import iskallia.vault.dynamodel.model.armor.ArmorPieceModel;
import iskallia.vault.init.ModDynamicModels.Armor;
import iskallia.vault.init.ModDynamicModels.Axes;
import iskallia.vault.init.ModDynamicModels.Swords;
import iskallia.vault.patreon.PatreonManager;
import iskallia.vault.patreon.PatreonPlayerData;
import iskallia.vault.patreon.PatreonTier;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import tv.alterNERD.VaultModTweaks.Configuration;
/**
* Changes the {@link iskallia.vault.block.TransmogTableBlock} class for
* managing the Transmog Table.
*
* Specifically, unlocks Patreon transmogs.
*/
@Mixin(TransmogTableBlock.class)
public abstract class MixinTransmogTableBlock {
/***
* Injects some new Goblin / Champion tier patrons into the transmogajigga
* thing.
*
* @param player
* @param discoveredModelIds
* @param modelId
*/
@Overwrite(remap = false)
public static boolean canTransmogModel(Player player, Collection<ResourceLocation> discoveredModelIds, ResourceLocation modelId) {
long id = player.getUUID().getMostSignificantBits() ^ player.getUUID().getLeastSignificantBits();
String name = player.getName().getString();
PatreonPlayerData data = PatreonManager.getInstance().getPlayerData(player.getUUID());
return (Boolean)Armor.PIECE_REGISTRY.get(modelId).map(ArmorPieceModel::getArmorModel).map((armorModel) -> {
if (armorModel.equals(Armor.CHAMPION)) {
return data.isAtLeastTier(PatreonTier.CHAMPION) || Configuration.CHAMPIONS.get().contains(name);
} else if (armorModel.equals(Armor.GOBLIN)) {
return data.isAtLeastTier(PatreonTier.GOBLIN) || Configuration.GOBLINS.get().contains(name) || Configuration.CHAMPIONS.get().contains(name);
} else {
return null;
}
}).or(() -> {
return Swords.REGISTRY.get(modelId).map((model) -> {
return model.equals(Swords.GODSWORD) ? data.isAtLeastTier(PatreonTier.CHAMPION) || Configuration.CHAMPIONS.get().contains(name) : null;
});
}).or(() -> {
return Axes.REGISTRY.get(modelId).map((model) -> {
return model.equals(Axes.GODAXE) ? data.isAtLeastTier(PatreonTier.CHAMPION) || Configuration.CHAMPIONS.get().contains(name) : null;
});
}).orElseGet(() -> {
return discoveredModelIds.contains(modelId);
});
}
}

View file

@ -71,7 +71,7 @@ public class MixinVaultAltarBlock {
),
cancellable = true
)
private void onUse(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit, CallbackInfoReturnable<InteractionResult> ci) {
private void use$return(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit, CallbackInfoReturnable<InteractionResult> ci) {
if (Configuration.ROUTER_VAULTAR_FIX.get() && !world.isClientSide && hand == InteractionHand.MAIN_HAND && player instanceof ServerPlayer) {
ServerPlayer serverPlayer = (ServerPlayer)player;
ItemStack heldItem = player.getMainHandItem();

View file

@ -33,13 +33,13 @@ import tv.alterNERD.VaultModTweaks.util.I18n;
* Changes the {@link iskallia.vault.config.gear.VaultGearEnchantmentConfig}
* class used by the Vault Enchanter.
*
* Specifically, it removes the Emerald cost of enchantments. Just because I
* cannot be arsed to bring them over every time.
* Specifically, it removes the cost of enchantments. Just because I cannot be
* arsed to bring Emeralds over every time.
*/
@Mixin(VaultGearEnchantmentConfig.class)
public class MixinVaultGearEnchantmentConfig {
/**
* Removes the Emerald cost from all Vault Enchanter enchantments.
* Removes the cost from all Vault Enchanter enchantments.
*
* @param entry
*/

View file

@ -51,10 +51,14 @@ public abstract class MixinVaultJewelCuttingConfig extends Config {
@Override
protected void onLoad(Config oldConfigInstance) {
super.onLoad(oldConfigInstance);
if (Configuration.JEWELER_ENABLED.get()) {
float chance = Configuration.JEWELER_CHANCE.get().floatValue();
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.jewelcutting.failurechance", chance));
this.jewelCuttingModifierRemovalChance = chance;
}
if (Configuration.JEWELS_ENABLED.get()) {
int min = Configuration.JEWELS_MIN.get();
int max = Configuration.JEWELS_MAX.get();
VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.jewelcutting.sizes", min, max));

View file

@ -51,9 +51,11 @@ public abstract class MixinVaultPortalConfig extends Config {
@Override
protected void onLoad(Config oldConfigInstance) {
super.onLoad(oldConfigInstance);
if (Configuration.PORTAL_TEMPLATE_ENABLED.get()) {
if (Configuration.PORTAL_BLOCKS_ENABLED.get()) {
ArrayList<String> list = new ArrayList<String>(Arrays.asList(VALID_BLOCKS));
list.add("modularrouters:template_frame");
for (String block : Configuration.PORTAL_BLOCKS.get()) {
list.add(block);
}
VALID_BLOCKS = list.toArray(VALID_BLOCKS);
}
}

View file

@ -35,13 +35,6 @@ There are some bug fixes and a lot of QoL and balance changes. See https://git.a
[[dependencies.the_vault_tweaks]]
modId="the_vault"
mandatory=true
versionRange="[1.18.2-3.11.0.2466]"
ordering="AFTER"
side="BOTH"
[[dependencies.the_vault_tweaks]]
modId="vaultintegrations"
mandatory=true
versionRange="[1.18.2-1.0.10]"
versionRange="[1.18.2-3.11.0.3011]"
ordering="AFTER"
side="BOTH"

View file

@ -8,6 +8,7 @@
"the_vault_tweaks.log.inject.fortune.level": "Injecting maximum Fortune level: %1$d …",
"the_vault_tweaks.log.inject.fortune.valid": "Overwriting validity check for Fortune …",
"the_vault_tweaks.log.inject.jewelcutting.failurechance": "Injecting jewel cutting failure chance: %1$.2f …",
"the_vault_tweaks.log.inject.jewelcutting.freecuts": "Injecting free jewel cuts: %1$d …",
"the_vault_tweaks.log.inject.jewelcutting.sizes": "Injecting jewel cutting size values: %1$d%2$d …",
"the_vault_tweaks.log.inject.junkmgmt.upgrades": "Injecting Vault Junk Upgrade multipliers: %1$d, %2$d, %3$d, %4$d …",
"the_vault_tweaks.log.inject.relicfragments": "Balancing relic fragment weights …",
@ -15,6 +16,8 @@
"the_vault_tweaks.log.inject.vaultar.infusion": "Injecting Vault Altar infusion time: %1$ds …",
"the_vault_tweaks.log.inject.vaultar.rock": "Injecting fake player interaction with Vault Altar …",
"the_vault_tweaks.log.config.reloadvaultconfig": "Config has changed, reloading Vault Mod configs …",
"block.minecraft.andesite": "Andesite",
"block.minecraft.polished_andesite": "Polished Andesite",
"block.minecraft.andesite_stairs": "Andesite Stairs",

View file

@ -0,0 +1,35 @@
{
"replace": false,
"values": [
"the_vault:ancient_copper_block",
"the_vault:ancient_copper_ingot",
"the_vault:gilded_block",
"the_vault:gilded_ingot",
"the_vault:gilded_sconce",
"the_vault:living_rock",
"the_vault:living_rock_block_cobble",
"the_vault:mossy_bone",
"the_vault:mossy_bone_block",
"the_vault:ornate_block",
"the_vault:ornate_chain",
"the_vault:ornate_ingot",
"the_vault:overgrown_wooden_chunk",
"the_vault:overgrown_wooden_log",
"the_vault:overgrown_wooden_planks",
"the_vault:rotten_meat",
"the_vault:rotten_meat_block",
"the_vault:sandy_block",
"the_vault:sandy_rocks",
"the_vault:soot",
"the_vault:topaz_block",
"the_vault:topaz_shard",
"the_vault:vault_moss",
"the_vault:vault_sweets",
"the_vault:vault_sweets_block",
"the_vault:velvet",
"the_vault:velvet_block",
"the_vault:wooden_chunk",
"the_vault:wooden_planks",
"the_vault:wooden_log"
]
}

View file

@ -5,13 +5,15 @@
"compatibilityLevel": "JAVA_17",
"refmap": "mixins.the_vault_tweaks.refmap.json",
"mixins": [
"MixinAltarConduitNode",
"IMixinVaultAltarIngredientsConfig",
"MixinCrystalBuddingConfig",
"MixinEnchantmentEntry",
"MixinExpertisesGuiConfig",
"MixinJewelExpertise",
"MixinPlayerResearchesData",
"MixinStageManager",
"MixinToolType",
"MixinTransmogTableBlock",
"MixinUnidentifiedRelicFragmentsConfig",
"MixinVaultAltarBlock",
"MixinVaultAltarConfig",

View file

@ -1,7 +1,7 @@
#Thu Jul 13 16:48:07 CEST 2023
#Sun Nov 19 15:47:56 CET 2023
MAJOR=3
MINOR=11
MINOR=13
PATCH=0
PRE_RELEASE=
BUILD=0
BUILD=-1
CODE=1