diff --git a/LICENSE.md b/LICENSE.md index 477ca04..cb9b058 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,26 +1,121 @@ -# The Unlicense +Creative Commons Legal Code -This is free and unencumbered software released into the public domain. +CC0 1.0 Universal -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. +Statement of Purpose -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). -For more information, please refer to +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be + protected by copyright and related or neighboring rights ("Copyright and + Related Rights"). Copyright and Related Rights include, but are not + limited to, the following: + +i. the right to reproduce, adapt, distribute, perform, display, +communicate, and translate a Work; +ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or +likeness depicted in a Work; +iv. rights protecting against unfair competition in regards to a Work, +subject to the limitations in paragraph 4(a), below; +v. rights protecting the extraction, dissemination, use and reuse of data +in a Work; +vi. database rights (such as those arising under Directive 96/9/EC of the +European Parliament and of the Council of 11 March 1996 on the legal +protection of databases, and under any national implementation +thereof, including any amended or successor version of such +directive); and +vii. other similar, equivalent or corresponding rights throughout the +world based on applicable law or treaty, and any national +implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention + of, applicable law, Affirmer hereby overtly, fully, permanently, + irrevocably and unconditionally waives, abandons, and surrenders all of + Affirmer's Copyright and Related Rights and associated claims and causes + of action, whether now known or unknown (including existing as well as + future claims and causes of action), in the Work (i) in all territories + worldwide, (ii) for the maximum duration provided by applicable law or + treaty (including future time extensions), (iii) in any current or future + medium and for any number of copies, and (iv) for any purpose whatsoever, + including without limitation commercial, advertising or promotional + purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each + member of the public at large and to the detriment of Affirmer's heirs and + successors, fully intending that such Waiver shall not be subject to + revocation, rescission, cancellation, termination, or any other legal or + equitable action to disrupt the quiet enjoyment of the Work by the public + as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason + be judged legally invalid or ineffective under applicable law, then the + Waiver shall be preserved to the maximum extent permitted taking into + account Affirmer's express Statement of Purpose. In addition, to the + extent the Waiver is so judged Affirmer hereby grants to each affected + person a royalty-free, non transferable, non sublicensable, non exclusive, + irrevocable and unconditional license to exercise Affirmer's Copyright and + Related Rights in the Work (i) in all territories worldwide, (ii) for the + maximum duration provided by applicable law or treaty (including future + time extensions), (iii) in any current or future medium and for any number + of copies, and (iv) for any purpose whatsoever, including without + limitation commercial, advertising or promotional purposes (the + "License"). The License shall be deemed effective as of the date CC0 was + applied by Affirmer to the Work. Should any part of the License for any + reason be judged legally invalid or ineffective under applicable law, such + partial invalidity or ineffectiveness shall not invalidate the remainder + of the License, and in such case Affirmer hereby affirms that he or she + will not (i) exercise any of his or her remaining Copyright and Related + Rights in the Work or (ii) assert any associated claims and causes of + action with respect to the Work, in either case contrary to Affirmer's + express Statement of Purpose. + +4. Limitations and Disclaimers. + +a. No trademark or patent rights held by Affirmer are waived, abandoned, +surrendered, licensed or otherwise affected by this document. +b. Affirmer offers the Work as-is and makes no representations or +warranties of any kind concerning the Work, express, implied, +statutory or otherwise, including without limitation warranties of +title, merchantability, fitness for a particular purpose, non +infringement, or the absence of latent or other defects, accuracy, or +the present or absence of errors, whether or not discoverable, all to +the greatest extent permissible under applicable law. +c. Affirmer disclaims responsibility for clearing rights of other persons +that may apply to the Work or any use thereof, including without +limitation any person's Copyright and Related Rights in the Work. +Further, Affirmer disclaims responsibility for obtaining any necessary +consents, permissions or other rights required for any use of the +Work. +d. Affirmer understands and acknowledges that Creative Commons is not a +party to this document and has no duty or obligation with respect to +this CC0 or use of the Work. diff --git a/gradle.properties b/gradle.properties index 3c25bcd..6d49a5f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.parallel = true # Mod Properties version = 0.0.1 -maven_group = com.example -archives_base_name = example_mod +maven_group = xyz.limepot +archives_base_name = edible_blocks # Dependencies are managed at gradle/libs.versions.toml diff --git a/src/main/java/com/example/example_mod/mixin/TitleScreenMixin.java b/src/main/java/com/example/example_mod/mixin/TitleScreenMixin.java deleted file mode 100644 index d45fdb2..0000000 --- a/src/main/java/com/example/example_mod/mixin/TitleScreenMixin.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.example_mod.mixin; - -import com.example.example_mod.ExampleMod; -import net.minecraft.client.gui.screen.TitleScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(TitleScreen.class) -public class TitleScreenMixin { - @Inject(method = "init", at = @At("TAIL")) - public void onInit(CallbackInfo ci) { - ExampleMod.LOGGER.info("MIXED UP~! or was it supposed to be in?"); - } -} diff --git a/src/main/java/com/example/example_mod/ExampleMod.java b/src/main/java/xyz/limepot/edible_blocks/EdibleBlocks.java similarity index 57% rename from src/main/java/com/example/example_mod/ExampleMod.java rename to src/main/java/xyz/limepot/edible_blocks/EdibleBlocks.java index 672a3cf..f0ceb84 100644 --- a/src/main/java/com/example/example_mod/ExampleMod.java +++ b/src/main/java/xyz/limepot/edible_blocks/EdibleBlocks.java @@ -1,21 +1,21 @@ -package com.example.example_mod; +package xyz.limepot.edible_blocks; import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ExampleMod implements ModInitializer { +public class EdibleBlocks implements ModInitializer { - public static final String MOD_ID = "example_mod"; + public static final String MOD_ID = "edible_blocks"; // This logger is used to write text to the console and the log file. // It is considered best practice to use your mod name as the logger's name. // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger("Example Mod"); + public static final Logger LOGGER = LoggerFactory.getLogger("Edible Blocks"); @Override public void onInitialize(ModContainer mod) { - LOGGER.info("Howdy World from {}!", mod.metadata().name()); + LOGGER.info("Yo Dawg, heard you were hungry for blocks, so I gave you {}.", mod.metadata().name()); } } diff --git a/src/main/java/xyz/limepot/edible_blocks/mixin/ItemsMixin.java b/src/main/java/xyz/limepot/edible_blocks/mixin/ItemsMixin.java new file mode 100644 index 0000000..8f2056e --- /dev/null +++ b/src/main/java/xyz/limepot/edible_blocks/mixin/ItemsMixin.java @@ -0,0 +1,27 @@ +package xyz.limepot.edible_blocks.mixin; + +import net.minecraft.block.Block; +import net.minecraft.item.FoodComponent; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + + + +@Mixin(Items.class) +public abstract class ItemsMixin { + @ModifyArg( + method = "register(Lnet/minecraft/block/Block;)Lnet/minecraft/item/Item;", + at = @At(value="INVOKE",target = "Lnet/minecraft/item/BlockItem;(Lnet/minecraft/block/Block;Lnet/minecraft/item/Item$Settings;)V") + ) + private static Item.Settings ModifySettings (Block block, Item.Settings settings) { + return settings.food( + new FoodComponent.Builder() + .snack() + .hunger(1) + .alwaysEdible() + .build()); + } +} diff --git a/src/main/resources/assets/example_mod/icon.png b/src/main/resources/assets/edible_blocks/icon.png similarity index 100% rename from src/main/resources/assets/example_mod/icon.png rename to src/main/resources/assets/edible_blocks/icon.png diff --git a/src/main/resources/example_mod.mixins.json b/src/main/resources/edible_blocks.mixins.json similarity index 69% rename from src/main/resources/example_mod.mixins.json rename to src/main/resources/edible_blocks.mixins.json index a92cc78..eb4379d 100644 --- a/src/main/resources/example_mod.mixins.json +++ b/src/main/resources/edible_blocks.mixins.json @@ -1,11 +1,11 @@ { "required": true, "minVersion": "0.8", - "package": "com.example.example_mod.mixin", + "package": "xyz.limepot.edible_blocks.mixin", "compatibilityLevel": "JAVA_17", "mixins": [], "client": [ - "TitleScreenMixin" + "ItemsMixin" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/quilt.mod.json b/src/main/resources/quilt.mod.json index 06ce469..da59979 100644 --- a/src/main/resources/quilt.mod.json +++ b/src/main/resources/quilt.mod.json @@ -1,25 +1,25 @@ { "schema_version": 1, "quilt_loader": { - "group": "com.example", - "id": "example_mod", + "group": "xyz.limepot", + "id": "edible_blocks", "version": "${version}", "metadata": { - "name": "Mod Name", - "description": "A short description of your mod.", + "name": "Edible Blocks", + "description": "Every block can be consumed", "contributors": { - "Your name here": "Owner" + "LimePotato": "Owner" }, "contact": { - "homepage": "https://example.com/", - "issues": "https://github.com/QuiltMC/quilt-template-mod/issues", - "sources": "https://github.com/QuiltMC/quilt-template-mod" + "homepage": "https://limepot.xyz/", + "issues": "https://git.ouroboros.group/limepotato/edibleBlocks/issues", + "sources": "https://git.ouroboros.group/limepotato/edibleBlocks" }, - "icon": "assets/example_mod/icon.png" + "icon": "assets/edible_blocks/icon.png" }, "intermediate_mappings": "net.fabricmc:intermediary", "entrypoints": { - "init": "com.example.example_mod.ExampleMod" + "init": "xyz.limepot.edible_blocks.EdibleBlocks" }, "depends": [ { @@ -36,5 +36,5 @@ } ] }, - "mixin": "example_mod.mixins.json" + "mixin": "edible_blocks.mixins.json" }