Compare commits

...

16 commits

Author SHA1 Message Date
TheClashFruit db2d06817b
feat (ci): remove gradle cache as it's broken
All checks were successful
Build Project / build (push) Successful in 15m36s
2024-07-14 17:26:45 +02:00
TheClashFruit 88783230ea
fix: remove unused imports
Some checks failed
Build Project / build (push) Has been cancelled
2024-07-14 17:25:40 +02:00
TheClashFruit 04b0ba8ae0
fix: add the enchantment books back to the tools tab for 1.21 2024-07-14 17:23:33 +02:00
TheClashFruit 5068e3ed19
docs: remove gradle genSources instruction 2024-07-14 15:31:38 +02:00
TheClashFruit 42da315531
feat: add tuff stuff 2024-07-14 15:21:15 +02:00
TheClashFruit 989adfcc19
feat: multi version dev env (#4)
All checks were successful
Build Project / build (push) Successful in 25m38s
Reviewed-on: #4
2024-07-13 16:14:21 +02:00
TheClashFruit 3a82764c52
fix (ci): java was in the wrong order
Some checks failed
Build Project / build (pull_request) Has been cancelled
2024-07-13 16:12:55 +02:00
TheClashFruit 8daf7c7309
fix (ci): install multiple javas
Some checks failed
Build Project / build (pull_request) Has been cancelled
2024-07-13 16:09:47 +02:00
TheClashFruit 7d6a6e6400
feat (ci): update to java 21
Some checks failed
Build Project / build (pull_request) Failing after 9m36s
2024-07-13 15:57:54 +02:00
TheClashFruit a98760f350
feat: finish multi version except 1.20.5
Some checks failed
Build Project / build (pull_request) Failing after 4m33s
2024-07-13 15:49:33 +02:00
TheClashFruit 9f850881b3
feat: multi version start 2024-07-13 13:57:40 +02:00
TheClashFruit c9e5b11be9
feat: add pottery sherds and smithing templates
All checks were successful
Build Project / build (push) Successful in 4m13s
2024-07-13 10:43:47 +02:00
TheClashFruit d365e4197a
docs: add curseforge downloads badge
All checks were successful
Build Project / build (push) Successful in 5m48s
2023-12-09 11:53:25 +01:00
TheClashFruit bbe3aa455a
feat: update to latest minecraft versions
All checks were successful
Build Project / build (push) Successful in 3m53s
2023-12-08 22:54:43 +01:00
TheClashFruit db414325ae
feat: better gitignore
All checks were successful
Build Project / build (push) Successful in 4m41s
2023-10-28 20:51:22 +02:00
TheClashFruit 9fa3e46210
feat: update to 1.20.2
All checks were successful
Build Project / build (push) Successful in 2m26s
2023-09-24 12:38:04 +02:00
35 changed files with 502 additions and 514 deletions

View file

@ -12,12 +12,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: 17
distribution: 'temurin'
java-version: |
17
21
- name: Make Gradle Executable
run: chmod +x ./gradlew
- name: Build with Gradle
@ -25,4 +27,4 @@ jobs:
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
path: build/libs/*.jar
path: 'versions/**/build/libs/*.jar'

56
.gitignore vendored
View file

@ -1,22 +1,40 @@
.gradle
**/build/
!src/**/build/
# gradle
.gradle/
build/
out/
classes/
# eclipse
*.launch
# idea
.idea/
*.iml
*.ipr
*.iws
# vscode
.settings/
.vscode/
bin/
.classpath
.project
# macos
*.DS_Store
# fabric
run/
# Ignore Gradle GUI config
gradle-app.setting
# java
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties
# Cache of project
.gradletasknamecache
# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath
hs_err_*.log
replay_*.log
*.hprof
*.jfr

8
.idea/.gitignore vendored
View file

@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View file

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

View file

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="LoomGlobalMinecraft" />
<option name="name" value="LoomGlobalMinecraft" />
<option name="url" value="file:/$USER_HOME$/.gradle/caches/fabric-loom/minecraftMaven/" />
</remote-repository>
<remote-repository>
<option name="id" value="Fabric" />
<option name="name" value="Fabric" />
<option name="url" value="https://maven.fabricmc.net/" />
</remote-repository>
<remote-repository>
<option name="id" value="Mojang" />
<option name="name" value="Mojang" />
<option name="url" value="https://libraries.minecraft.net/" />
</remote-repository>
<remote-repository>
<option name="id" value="LoomLocalRemappedMods" />
<option name="name" value="LoomLocalRemappedMods" />
<option name="url" value="file:/$PROJECT_DIR$/.gradle/loom-cache/remapped_mods/" />
</remote-repository>
<remote-repository>
<option name="id" value="LoomLocalMinecraft" />
<option name="name" value="LoomLocalMinecraft" />
<option name="url" value="file:/$PROJECT_DIR$/.gradle/loom-cache/minecraftMaven/" />
</remote-repository>
<remote-repository>
<option name="id" value="Modrinth" />
<option name="name" value="Modrinth" />
<option name="url" value="https://api.modrinth.com/maven" />
</remote-repository>
</component>
</project>

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/ClutteredCreative.main.iml" filepath="$PROJECT_DIR$/.idea/modules/ClutteredCreative.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/ClutteredCreative.test.iml" filepath="$PROJECT_DIR$/.idea/modules/ClutteredCreative.test.iml" />
</modules>
</component>
</project>

View file

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FABRIC</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View file

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FABRIC</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View file

@ -1,16 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" factoryName="Application" name="Minecraft Client" type="Application">
<option name="MAIN_CLASS_NAME" value="net.fabricmc.devlaunchinjector.Main"/>
<module name="ClutteredCreative.main"/>
<option name="PROGRAM_PARAMETERS" value=""/>
<option name="VM_PARAMETERS" value="-Dfabric.dli.config=D:\Projects\ClutteredCreative\.gradle\loom-cache\launch.cfg -Dfabric.dli.env=client -Dfabric.dli.main=net.fabricmc.loader.impl.launch.knot.KnotClient"/>
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run/"/>
<method v="2">
<option enabled="true" name="Make"/>
</method>
<envs>
</envs>
<shortenClasspath name="ARGS_FILE"/>
<classpathModifications/></configuration>
</component>

View file

@ -1,16 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" factoryName="Application" name="Minecraft Server" type="Application">
<option name="MAIN_CLASS_NAME" value="net.fabricmc.devlaunchinjector.Main"/>
<module name="ClutteredCreative.main"/>
<option name="PROGRAM_PARAMETERS" value="nogui"/>
<option name="VM_PARAMETERS" value="-Dfabric.dli.config=D:\Projects\ClutteredCreative\.gradle\loom-cache\launch.cfg -Dfabric.dli.env=server -Dfabric.dli.main=net.fabricmc.loader.impl.launch.knot.KnotServer"/>
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run/"/>
<method v="2">
<option enabled="true" name="Make"/>
</method>
<envs>
</envs>
<shortenClasspath name="ARGS_FILE"/>
<classpathModifications><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.1\cbac1b8d30cb4795149c1ef540f912671a8616d0\lwjgl-glfw-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j\71.1\9e7d3304c23f9ba5cb71915f7cce23231a57a445\icu4j-71.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.1\831a5533a21a5f4f81bbc51bb13e9899319b5411\lwjgl-opengl-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\com.mojang\patchy\2.2.10\da05971b07cbb379d002cf7eaec6a2048211fefc\patchy-2.2.10.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\com.mojang\text2speech\1.17.9\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\text2speech-1.17.9.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.1\ff1914111ef2e3e0110ef2dabc8d8cdaad82347\lwjgl-tinyfd-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\com.mojang\blocklist\1.0.10\5c685c5ffa94c4cd39496c7184c1d122e515ecef\blocklist-1.0.10.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.1\a817bcf213db49f710603677457567c37d53e103\lwjgl-jemalloc-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.1\ae58664f88e18a9bb2c77b063833ca7aaec484cb\lwjgl-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.21\4ec95b60d4e86b5c95a0e919cb172a0af98011ef\commons-compress-1.21.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.15\49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d\commons-codec-1.15.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.15\7f2e0c573eaa7a74bac2e89b359e1f73d92a0a1d\httpcore-4.4.15.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.1\b119297cf8ed01f247abe8685857f8e7fcf5980f\lwjgl-stb-3.3.1.jar"/><entry exclude="true" path="C:\Users\TheClashFruit\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.1\2623a6b8ae1dfcd880738656a9f0243d2e6840bd\lwjgl-openal-3.3.1.jar"/></classpathModifications></configuration>
</component>

View file

@ -1,124 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View file

@ -7,13 +7,17 @@
<p align="center">
<img alt="Issues" src="https://img.shields.io/badge/dynamic/json?color=yellow&label=issues&query=%24.open_issues_count&url=https%3A%2F%2Fgit.theclashfruit.me%2Fapi%2Fv1%2Frepos%2FTheClashFruit%2FClutteredCreative">
<img alt="Pull Requests" src="https://img.shields.io/badge/dynamic/json?color=brightgreen&label=pull+requests&query=%24.open_pr_counter&url=https%3A%2F%2Fgit.theclashfruit.me%2Fapi%2Fv1%2Frepos%2FTheClashFruit%2FClutteredCreative">
<img alt="Modrinth Downloads" src="https://img.shields.io/modrinth/dt/Fs6mB0ic">
<img alt="Version" src="https://img.shields.io/badge/dynamic/json?color=orange&label=version&query=%24%5B0%5D.name&url=https%3A%2F%2Fgit.theclashfruit.me%2Fapi%2Fv1%2Frepos%2FTheClashFruit%2FClutteredCreative%2Freleases">
<img alt="License (MIT)" src="https://img.shields.io/badge/license-MIT-green.svg">
</p>
<p align="center">
<img alt="Modrinth Downloads" src="https://img.shields.io/modrinth/dt/Fs6mB0ic?label=Modrinth%20Downloads">
<img alt="CurseForge Downloads" src="https://img.shields.io/curseforge/dt/901062?label=CurseForge%20Downloads">
</p>
<p align="center">
<a href="https://modrinth.com/mod/cluttered-creative">
<img alt="curseforge" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/modrinth_vector.svg">
@ -54,8 +58,9 @@ Development is mostly straight forward.
1. Clone the repository from your fork.
2. Open the project.
3. Run `gradle genSources` to generate the sources.
4. You can start developing!
3. You can start developing!
<!-- 3. Run `gradle genSources` to generate the sources. -->
### Git Commit Messages

View file

@ -1,96 +0,0 @@
plugins {
id 'fabric-loom' version '1.2-SNAPSHOT'
id 'maven-publish'
}
version = project.mod_version
group = project.maven_group
repositories {
// Add repositories to retrieve artifacts from in here.
// You should only use this when depending on other mods because
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modLocalRuntime("maven.modrinth:modmenu:7.0.1")
}
loom {
accessWidenerPath = file("src/main/resources/cc.accesswidener")
}
processResources {
inputs.property "version", project.version
inputs.property "minecraft_version", project.minecraft_version
inputs.property "loader_version", project.loader_version
filteringCharset "UTF-8"
filesMatching("fabric.mod.json") {
expand "version": project.version,
"minecraft_version": project.minecraft_version,
"loader_version": project.loader_version
}
}
def targetJavaVersion = 17
tasks.withType(JavaCompile).configureEach {
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
// If Javadoc is generated, this must be specified in that task too.
it.options.encoding = "UTF-8"
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
it.options.release = targetJavaVersion
}
}
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
archivesBaseName = project.archives_base_name
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
}
jar {
from("LICENSE") {
rename { "${it}_${project.archivesBaseName}"}
}
}
// configure the maven publication
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
// Notice: This block does NOT have the same function as the block in the top level.
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}

86
build.gradle.kts Normal file
View file

@ -0,0 +1,86 @@
import dev.deftu.gradle.utils.*
import dev.deftu.gradle.tools.minecraft.CurseRelation
import dev.deftu.gradle.tools.minecraft.CurseRelationType
import com.modrinth.minotaur.dependencies.DependencyType
import com.modrinth.minotaur.dependencies.ModDependency
plugins {
java
id("dev.deftu.gradle.multiversion")
id("dev.deftu.gradle.tools")
id("dev.deftu.gradle.tools.resources")
id("dev.deftu.gradle.tools.minecraft.api")
id("dev.deftu.gradle.tools.minecraft.loom")
id("dev.deftu.gradle.tools.publishing.maven")
id("dev.deftu.gradle.tools.minecraft.releases")
}
repositories {
maven("https://api.modrinth.com/maven")
}
dependencies {
if (mcData.isFabric) {
modImplementation("net.fabricmc.fabric-api:fabric-api:${mcData.dependencies.fabric.fabricApiVersion}")
modImplementation(mcData.dependencies.fabric.modMenuDependency)
}
}
loom {
accessWidenerPath = file("../../src/main/resources/cc.accesswidener")
}
java {
base.archivesName.set(modData.id)
tasks {
if (isLoomPresent()) {
named<org.gradle.jvm.tasks.Jar>("remapJar") {
archiveBaseName.set(modData.id)
}
} else {
named<Jar>("jar") {
archiveBaseName.set(modData.id)
}
}
}
}
/*
minecraft {
accessTransformer = file("../../src/main/resources/META-INF/accesstransformer.cfg")
}
*/
toolkitReleases {
detectVersionType.set(true)
rootProject.file("changelogs/${modData.version}.md").let { file ->
if (file.exists())
changelogFile.set(file)
}
modrinth {
projectId.set("Fs6mB0ic")
if (mcData.loader == ModLoader.FABRIC) {
dependencies.addAll(listOf(
ModDependency("P7dR8mSH", DependencyType.REQUIRED), // Fabric API
ModDependency("mOgUt4GM", DependencyType.OPTIONAL) // Mod Menu
))
}
}
curseforge {
projectId.set("901062")
if (mcData.loader == ModLoader.FABRIC) {
relations.addAll(listOf(
CurseRelation("fabric-api", CurseRelationType.REQUIRED), // Fabric API
CurseRelation("modmenu", CurseRelationType.OPTIONAL) // Mod Menu
))
}
}
}

11
changelogs/2.0.0-rc.1.md Normal file
View file

@ -0,0 +1,11 @@
The mod has been revived from the dead!
### New
* 1.21 Support
* !! Enchantment books are missing from the tools tab.
### Fixes
1. Added Missing Items
* Pottery Sherds
* Smithing Templates
2. Fixed The Brewing Tab Icon

3
changelogs/2.0.0.md Normal file
View file

@ -0,0 +1,3 @@
### Fixes
* Added the tuff blocks
* Enchantment books are back in the tools tab.

View file

@ -1,17 +1,7 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
org.gradle.jvmargs=-Xmx2G
# Fabric Properties
# check these on https://modmuss50.me/fabric.html
minecraft_version=1.20
yarn_mappings=1.20+build.1
loader_version=0.14.22
# Mod Properties
mod_version = 1.0.0-rc.2
maven_group = me.theclashfruit
archives_base_name = cc
# Dependencies
# check this on https://modmuss50.me/fabric.html
fabric_version=0.83.0+1.20
mod.name=Cluttered Creative
mod.id=cc
mod.version=2.0.0
mod.group=me.theclashfruit

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

23
root.gradle.kts Normal file
View file

@ -0,0 +1,23 @@
plugins {
id("dev.deftu.gradle.multiversion-root")
}
preprocess {
val fabric_1_21 = createNode("1.21-fabric", 1210, "yarn")
val fabric_1_20_6 = createNode("1.20.6-fabric", 1206, "yarn")
val fabric_1_20_5 = createNode("1.20.5-fabric", 1205, "yarn") // broken due to upstream issues
val fabric_1_20_4 = createNode("1.20.4-fabric", 1204, "yarn")
val fabric_1_20_3 = createNode("1.20.3-fabric", 1203, "yarn")
val fabric_1_20_2 = createNode("1.20.2-fabric", 1202, "yarn")
val fabric_1_20_1 = createNode("1.20.1-fabric", 1201, "yarn")
val fabric_1_20 = createNode("1.20-fabric", 1200, "yarn")
fabric_1_21.link(fabric_1_20_6)
//fabric_1_20_6.link(fabric_1_20_5)
fabric_1_20_6.link(fabric_1_20_4)
//fabric_1_20_5.link(fabric_1_20_4)
fabric_1_20_4.link(fabric_1_20_3)
fabric_1_20_3.link(fabric_1_20_2)
fabric_1_20_2.link(fabric_1_20_1)
fabric_1_20_1.link(fabric_1_20)
}

View file

@ -1,9 +0,0 @@
pluginManagement {
repositories {
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
}
gradlePluginPortal()
}
}

44
settings.gradle.kts Normal file
View file

@ -0,0 +1,44 @@
pluginManagement {
repositories {
maven("https://maven.deftu.dev/releases")
maven("https://maven.fabricmc.net")
maven("https://maven.architectury.dev/")
maven("https://maven.minecraftforge.net")
maven("https://maven.neoforged.net/releases")
maven("https://repo.essential.gg/repository/maven-public")
maven("https://server.bbkr.space/artifactory/libs-release/")
maven("https://jitpack.io/")
maven("https://maven.deftu.dev/snapshots")
mavenLocal()
gradlePluginPortal()
mavenCentral()
}
plugins {
id("dev.deftu.gradle.multiversion-root") version("2.2.3")
}
}
val projectName: String = "Cluttered Creative"
rootProject.name = projectName
rootProject.buildFileName = "root.gradle.kts"
listOf(
"1.20-fabric",
"1.20.1-fabric",
"1.20.2-fabric",
"1.20.3-fabric",
"1.20.4-fabric",
//"1.20.5-fabric",
"1.20.6-fabric",
"1.21-fabric",
).forEach { version ->
include(":$version")
project(":$version").apply {
projectDir = file("versions/$version")
buildFileName = "../../build.gradle.kts"
}
}

View file

@ -1,14 +1,6 @@
package me.theclashfruit.cc;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.item.*;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -17,6 +9,6 @@ public class ClutteredCreative implements ModInitializer {
@Override
public void onInitialize() {
LOGGER.info("ClutteredCreative has been initialized!");
}
}

View file

@ -1,10 +0,0 @@
package me.theclashfruit.cc.client;
import net.fabricmc.api.ClientModInitializer;
public class ClutteredCreativeClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
}
}

View file

@ -1,7 +1,6 @@
package me.theclashfruit.cc.mixin;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentTarget;
import net.minecraft.item.Instrument;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
@ -12,6 +11,12 @@ import net.minecraft.registry.tag.TagKey;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
//#if MC >= 1.20.6
import net.minecraft.resource.featuretoggle.FeatureSet;
//#elseif MC < 1.20.5
//$$ import net.minecraft.enchantment.EnchantmentTarget;
//#endif
import java.util.Set;
@Mixin(ItemGroups.class)
@ -21,13 +26,42 @@ public interface ItemGroupsInterfaceMixin {
throw new AssertionError();
}
//#if MC >= 1.20.6
@Invoker("addPotions")
static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper<Potion> registryWrapper, Item item, ItemGroup.StackVisibility visibility) {
static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper<Potion> registryWrapper, Item item, ItemGroup.StackVisibility stackVisibility, FeatureSet featureSet) {
throw new AssertionError();
}
//#elseif MC >= 1.20.5
//$$ @Invoker("addPotions")
//$$ static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper<Potion> registryWrapper, Item item, ItemGroup.StackVisibility visibility) {
//$$ throw new AssertionError();
//$$ }
//#else
//$$ @Invoker("addPotions")
//$$ static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper<Potion> registryWrapper, Item item, ItemGroup.StackVisibility visibility) {
//$$ throw new AssertionError();
//$$ }
//#endif
//#if MC >= 1.21
@Invoker("addMaxLevelEnchantedBooks")
static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper<Enchantment> registryWrapper, Set<EnchantmentTarget> enchantmentTargets, ItemGroup.StackVisibility visibility) {
static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper<Enchantment> registryWrapper, ItemGroup.StackVisibility visibility) {
throw new AssertionError();
}
//#elseif MC >= 1.20.6
//$$ @Invoker("addMaxLevelEnchantedBooks")
//$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper<Enchantment> registryWrapper, Set<TagKey<Item>> set, ItemGroup.StackVisibility stackVisibility, FeatureSet featureSet) {
//$$ throw new AssertionError();
//$$ }
//#elseif MC >= 1.20.5
//$$ @Invoker("addMaxLevelEnchantedBooks")
//$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper<Enchantment> registryWrapper, Set<TagKey<Item>> enchantmentTargets, ItemGroup.StackVisibility visibility) {
//$$ throw new AssertionError();
//$$ }
//#else
//$$ @Invoker("addMaxLevelEnchantedBooks")
//$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper<Enchantment> registryWrapper, Set<EnchantmentTarget> enchantmentTargets, ItemGroup.StackVisibility visibility) {
//$$ throw new AssertionError();
//$$ }
//#endif
}

View file

@ -1,25 +1,41 @@
package me.theclashfruit.cc.mixin;
import net.minecraft.block.Blocks;
import net.minecraft.client.gui.screen.ingame.EnchantmentScreen;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.enchantment.EnchantmentLevelEntry;
import net.minecraft.enchantment.EnchantmentTarget;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.entity.Entity;
import net.minecraft.item.*;
import net.minecraft.potion.PotionUtil;
import net.minecraft.potion.Potions;
import net.minecraft.predicate.item.EnchantmentPredicate;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.tag.InstrumentTags;
import net.minecraft.registry.tag.ItemTags;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.village.raid.Raid;
import org.spongepowered.asm.mixin.*;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.gen.Invoker;
import java.util.*;
//#if MC >= 1.20.6
import net.minecraft.util.Identifier;
import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.component.type.PotionContentsComponent;
//#else
//$$ import net.minecraft.enchantment.EnchantmentTarget;
//$$ import net.minecraft.potion.PotionUtil;
//#endif
import java.util.EnumSet;
import java.util.Set;
import java.util.stream.IntStream;
import static me.theclashfruit.cc.ClutteredCreative.LOGGER;
import static net.minecraft.item.ItemGroups.*;
@ -58,12 +74,25 @@ public class ItemGroupsMixin {
.type(ItemGroup.Type.HOTBAR)
.build();
//#if MC >= 1.21
@Unique
private static final Identifier INVENTORY_TAB_TEXTURE_ID = ItemGroup.getTabTextureId("inventory");
@Unique
private static final Identifier ITEM_SEARCH_TAB_TEXTURE_ID = ItemGroup.getTabTextureId("item_search");
//#endif
@Unique
private static final ItemGroup inventoryGroup = ItemGroup
.create(ItemGroup.Row.BOTTOM, 6)
.displayName(Text.translatable("itemGroup.inventory"))
.icon(() -> new ItemStack(Blocks.CHEST))
.texture("inventory.png")
.texture(
//#if MC >= 1.21
INVENTORY_TAB_TEXTURE_ID
//#else
//$$ "inventory.png"
//#endif
)
.noRenderedName()
.special()
.type(ItemGroup.Type.INVENTORY)
@ -76,8 +105,6 @@ public class ItemGroupsMixin {
*/
@Overwrite
public static ItemGroup registerAndGetDefault(Registry<ItemGroup> registry) {
LOGGER.info("ItemGroups Working!");
final ItemGroup searchGroup = ItemGroup
.create(ItemGroup.Row.TOP, 6)
.displayName(Text.translatable("itemGroup.search"))
@ -91,7 +118,13 @@ public class ItemGroupsMixin {
content.addAll(itemGroupSet);
})
.texture("item_search.png")
.texture(
//#if MC >= 1.21
ITEM_SEARCH_TAB_TEXTURE_ID
//#else
//$$ "item_search.png"
//#endif
)
.special()
.type(ItemGroup.Type.SEARCH)
.build();
@ -364,6 +397,13 @@ public class ItemGroupsMixin {
content.add(Items.CHISELED_DEEPSLATE);
content.add(Items.REINFORCED_DEEPSLATE);
//#if MC >= 1.21
content.add(Items.CHISELED_TUFF);
content.add(Items.POLISHED_TUFF);
content.add(Items.TUFF_BRICKS);
content.add(Items.CHISELED_TUFF_BRICKS);
//#endif
content.add(Items.MELON);
content.add(Items.BRICK_STAIRS);
@ -524,6 +564,12 @@ public class ItemGroupsMixin {
content.add(Items.DEEPSLATE_BRICK_STAIRS);
content.add(Items.DEEPSLATE_TILE_STAIRS);
//#if MC >= 1.21
content.add(Items.TUFF_BRICK_STAIRS);
content.add(Items.POLISHED_TUFF_STAIRS);
content.add(Items.TUFF_STAIRS);
//#endif
content.add(Items.POLISHED_GRANITE_SLAB);
content.add(Items.SMOOTH_RED_SANDSTONE_SLAB);
content.add(Items.MOSSY_STONE_BRICK_SLAB);
@ -542,6 +588,12 @@ public class ItemGroupsMixin {
content.add(Items.DEEPSLATE_BRICK_SLAB);
content.add(Items.DEEPSLATE_TILE_SLAB);
//#if MC >= 1.21
content.add(Items.TUFF_SLAB);
content.add(Items.POLISHED_TUFF_SLAB);
content.add(Items.TUFF_BRICK_SLAB);
//#endif
content.add(Items.DRIED_KELP_BLOCK);
content.add(Items.CRYING_OBSIDIAN);
@ -592,7 +644,7 @@ public class ItemGroupsMixin {
content.add(Items.COBWEB);
content.add(Items.GRASS);
content.add(Items.SHORT_GRASS);
content.add(Items.FERN);
content.add(Items.AZALEA);
content.add(Items.FLOWERING_AZALEA);
@ -721,6 +773,12 @@ public class ItemGroupsMixin {
content.add(Items.DEEPSLATE_BRICK_WALL);
content.add(Items.DEEPSLATE_TILE_WALL);
//#if MC >= 1.21
content.add(Items.TUFF_WALL);
content.add(Items.POLISHED_TUFF_WALL);
content.add(Items.TUFF_BRICK_WALL);
//#endif
content.add(Items.ANVIL);
content.add(Items.CHIPPED_ANVIL);
content.add(Items.DAMAGED_ANVIL);
@ -902,7 +960,12 @@ public class ItemGroupsMixin {
content.add(Items.GREEN_BANNER);
content.add(Items.RED_BANNER);
content.add(Items.BLACK_BANNER);
content.add(Raid.getOminousBanner());
//#if MC >= 1.20.6
content.add(Raid.getOminousBanner(displayContext.lookup().getWrapperOrThrow(RegistryKeys.BANNER_PATTERN)));
//#else
//$$ content.add(Raid.getOminousBanner());
//#endif
content.add(Items.END_CRYSTAL);
@ -967,7 +1030,7 @@ public class ItemGroupsMixin {
Registry.register(
registry,
REDSTONE,
ItemGroupsMixin.REDSTONE,
ItemGroup
.create(ItemGroup.Row.TOP, 2)
.type(ItemGroup.Type.CATEGORY)
@ -1132,7 +1195,12 @@ public class ItemGroupsMixin {
content.add(Items.BEACON);
content.add(Items.TURTLE_EGG);
content.add(Items.CONDUIT);
content.add(Items.SCUTE);
//#if MC >= 1.20
content.add(Items.TURTLE_SCUTE);
//#else
//$$ content.add(Items.SCUTE);
//#endif
content.add(Items.COAL);
content.add(Items.CHARCOAL);
@ -1360,6 +1428,29 @@ public class ItemGroupsMixin {
content.add(Items.HONEYCOMB);
content.add(Items.FROGSPAWN);
content.add(Items.ECHO_SHARD);
//#if MC >= 1.20
content.add(Items.ANGLER_POTTERY_SHERD);
content.add(Items.ARCHER_POTTERY_SHERD);
content.add(Items.ARMS_UP_POTTERY_SHERD);
content.add(Items.BLADE_POTTERY_SHERD);
content.add(Items.BREWER_POTTERY_SHERD);
content.add(Items.BURN_POTTERY_SHERD);
content.add(Items.DANGER_POTTERY_SHERD);
content.add(Items.EXPLORER_POTTERY_SHERD);
content.add(Items.FRIEND_POTTERY_SHERD);
content.add(Items.HEART_POTTERY_SHERD);
content.add(Items.HEARTBREAK_POTTERY_SHERD);
content.add(Items.HOWL_POTTERY_SHERD);
content.add(Items.MINER_POTTERY_SHERD);
content.add(Items.MOURNER_POTTERY_SHERD);
content.add(Items.PLENTY_POTTERY_SHERD);
content.add(Items.PRIZE_POTTERY_SHERD);
content.add(Items.SHEAF_POTTERY_SHERD);
content.add(Items.SHELTER_POTTERY_SHERD);
content.add(Items.SKULL_POTTERY_SHERD);
content.add(Items.SNORT_POTTERY_SHERD);
//#endif
})
.build()
);
@ -1417,7 +1508,7 @@ public class ItemGroupsMixin {
Registry.register(
registry,
TOOLS,
ItemGroupsMixin.TOOLS,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 2)
.type(ItemGroup.Type.CATEGORY)
@ -1466,14 +1557,27 @@ public class ItemGroupsMixin {
content.add(Items.SPYGLASS);
content.add(Items.SHEARS);
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.EFFICIENCY, 5)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.SILK_TOUCH, 1)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.UNBREAKING, 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.FORTUNE, 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LUCK_OF_THE_SEA, 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LURE, 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.MENDING, 1)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.VANISHING_CURSE, 1)));
//#if MC >= 1.21
displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent(impl -> {
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.EFFICIENCY), 5)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.SILK_TOUCH), 1)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.UNBREAKING), 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.FORTUNE), 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.LUCK_OF_THE_SEA), 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.LURE), 3)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.MENDING), 1)));
content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(impl.getOrThrow(Enchantments.VANISHING_CURSE), 1)));
});
//#else
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.EFFICIENCY, 5)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.SILK_TOUCH, 1)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.UNBREAKING, 3)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.FORTUNE, 3)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LUCK_OF_THE_SEA, 3)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LURE, 3)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.MENDING, 1)));
//$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.VANISHING_CURSE, 1)));
//#endif
content.add(Items.LEAD);
content.add(Items.NAME_TAG);
@ -1531,19 +1635,58 @@ public class ItemGroupsMixin {
content.add(Items.NETHERITE_LEGGINGS);
content.add(Items.NETHERITE_BOOTS);
EnumSet<EnchantmentTarget> set = EnumSet.allOf(EnchantmentTarget.class);
displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent(wrapper -> {
ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, wrapper, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY);
//#if MC >= 1.21
displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent((impl) -> {
ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, impl, ItemGroup.StackVisibility.PARENT_TAB_ONLY);
});
//#elseif MC >= 1.20.6
//$$ Set<TagKey<Item>> set = Set.of(ItemTags.FOOT_ARMOR_ENCHANTABLE, ItemTags.LEG_ARMOR_ENCHANTABLE, ItemTags.CHEST_ARMOR_ENCHANTABLE, ItemTags.HEAD_ARMOR_ENCHANTABLE, ItemTags.ARMOR_ENCHANTABLE, ItemTags.SWORD_ENCHANTABLE, ItemTags.SHARP_WEAPON_ENCHANTABLE, ItemTags.MACE_ENCHANTABLE, ItemTags.FIRE_ASPECT_ENCHANTABLE, ItemTags.WEAPON_ENCHANTABLE, ItemTags.MINING_ENCHANTABLE, ItemTags.MINING_LOOT_ENCHANTABLE, ItemTags.FISHING_ENCHANTABLE, ItemTags.TRIDENT_ENCHANTABLE, ItemTags.DURABILITY_ENCHANTABLE, ItemTags.BOW_ENCHANTABLE, ItemTags.EQUIPPABLE_ENCHANTABLE, ItemTags.CROSSBOW_ENCHANTABLE, ItemTags.VANISHING_ENCHANTABLE);
//$$
//$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent((impl) -> {
//$$ ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, impl, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY, displayContext.comp_1251());
//$$ });
//#else
//$$ EnumSet<EnchantmentTarget> set = EnumSet.allOf(EnchantmentTarget.class);
//$$
//$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent(wrapper -> {
//$$ ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, wrapper, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY);
//$$ });
//#endif
content.add(Items.SPECTRAL_ARROW);
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS));
//#if MC >= 1.20.6
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> {
ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251());
});
//#else
//$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS));
//#endif
content.add(Items.SHIELD);
content.add(Items.TOTEM_OF_UNDYING);
content.add(Items.TRIDENT);
content.add(Items.CROSSBOW);
//#if MC >= 1.20
content.add(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
content.add(Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE);
content.add(Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE);
//#endif
})
.build()
);
@ -1555,13 +1698,24 @@ public class ItemGroupsMixin {
.create(ItemGroup.Row.BOTTOM, 4)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.brewing"))
.icon(() -> new ItemStack(PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER).getItem()))
.entries((displayContext, content) -> {
.icon(() ->
//#if MC >= 1.20.6
PotionContentsComponent.createStack(Items.POTION, Potions.WATER)
//#else
//$$ PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER)
//#endif
).entries((displayContext, content) -> {
content.add(Items.GHAST_TEAR);
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> {
ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
//#if MC >= 1.20.6
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> {
ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251());
});
//#else
//$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> {
//$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
//$$ });
//#endif
content.add(Items.GLASS_BOTTLE);
content.add(Items.FERMENTED_SPIDER_EYE);
@ -1574,10 +1728,17 @@ public class ItemGroupsMixin {
content.add(Items.RABBIT_FOOT);
content.add(Items.DRAGON_BREATH);
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> {
ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
//#if MC >= 1.20.6
displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> {
ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251());
ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251());
});
//#else
//$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> {
//$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
//$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS);
//$$ });
//#endif
content.add(Items.PHANTOM_MEMBRANE);
})

View file

@ -0,0 +1 @@
public net.minecraft.world.item.CreativeModeTab.Builder type(Lnet/minecraft/world/item/CreativeModeTab.Type;)Lnet/minecraft/world/item/CreativeModeTab/Builder;

View file

@ -0,0 +1,15 @@
modLoader="javafml"
loaderVersion="[31,)"
issueTrackerURL="https://git.theclashfruit.me/TheClashFruit/ClutteredCreative/issues"
license="MIT"
[[mods]]
modId="cc"
version="${mod_version}"
displayName="Cluttered Creative"
description="Bring back the old cluttered creative inventory."
authors="TheClashFruit"
logoFile="assets/cc/icon.png"
[[mixins]]
config = "cc.mixins.json"

View file

@ -0,0 +1,15 @@
modLoader="javafml"
loaderVersion="[1,)"
issueTrackerURL="https://git.theclashfruit.me/TheClashFruit/ClutteredCreative/issues"
license="MIT"
[[mods]]
modId="cc"
version="${mod_version}"
displayName="Cluttered Creative"
description="Bring back the old cluttered creative inventory."
authors="TheClashFruit"
logoFile="assets/cc/icon.png"
[[mixins]]
config = "cc.mixins.json"

View file

@ -1,3 +1,10 @@
accessWidener v1 named
accessible method net/minecraft/item/ItemGroup$Builder type (Lnet/minecraft/item/ItemGroup$Type;)Lnet/minecraft/item/ItemGroup$Builder;
accessible class net/minecraft/item/ItemGroup$StackVisibility
accessible method net/minecraft/item/ItemGroup$Builder type (Lnet/minecraft/item/ItemGroup$Type;)Lnet/minecraft/item/ItemGroup$Builder;
accessible field net/minecraft/item/ItemGroups INVENTORY Lnet/minecraft/registry/RegistryKey;
accessible field net/minecraft/item/ItemGroups HOTBAR Lnet/minecraft/registry/RegistryKey;
accessible field net/minecraft/item/ItemGroups SEARCH Lnet/minecraft/registry/RegistryKey;
accessible field net/minecraft/item/ItemGroups COMBAT Lnet/minecraft/registry/RegistryKey;

View file

@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "cc",
"version": "${version}",
"version": "${mod_version}",
"name": "Cluttered Creative",
"description": "Bring back the old cluttered creative inventory.",
"authors": [
@ -16,9 +16,6 @@
"icon": "assets/cc/icon.png",
"environment": "*",
"entrypoints": {
"client": [
"me.theclashfruit.cc.client.ClutteredCreativeClient"
],
"main": [
"me.theclashfruit.cc.ClutteredCreative"
]
@ -28,9 +25,9 @@
],
"accessWidener" : "cc.accesswidener",
"depends": {
"fabricloader": ">=${loader_version}",
"fabricloader": ">=0.15.1",
"fabric": "*",
"minecraft": ">=${minecraft_version}"
"minecraft": "${mc_version}"
},
"custom": {
"modmenu": {

1
versions/mainProject Normal file
View file

@ -0,0 +1 @@
1.21-fabric