From f289968053dc06702c625f2c810233ce97e62283 Mon Sep 17 00:00:00 2001 From: ellieisjelly Date: Tue, 2 Jan 2024 15:47:19 -0300 Subject: [PATCH] initial setup --- LICENSE | 286 ++++++++++-------- build.gradle | 10 +- gradle.properties | 9 +- .../java/com/example/ExampleModClient.java | 10 - .../mixin/client/ExampleClientMixin.java | 15 - src/client/resources/modid.client.mixins.json | 11 - src/main/java/com/example/ExampleMod.java | 22 -- .../java/com/example/mixin/ExampleMixin.java | 15 - src/main/java/me/ellieis/Sabotage.java | 22 ++ .../java/me/ellieis/game/SabotageConfig.java | 20 ++ .../java/me/ellieis/game/SabotageLobby.java | 53 ++++ .../assets/{modid => sabotage}/icon.png | Bin .../data/sabotage/games/sabotage.json | 4 + .../resources/data/sabotage/lang/en_us.json | 3 + src/main/resources/fabric.mod.json | 34 +-- src/main/resources/modid.mixins.json | 11 - 16 files changed, 288 insertions(+), 237 deletions(-) delete mode 100644 src/client/java/com/example/ExampleModClient.java delete mode 100644 src/client/java/com/example/mixin/client/ExampleClientMixin.java delete mode 100644 src/client/resources/modid.client.mixins.json delete mode 100644 src/main/java/com/example/ExampleMod.java delete mode 100644 src/main/java/com/example/mixin/ExampleMixin.java create mode 100644 src/main/java/me/ellieis/Sabotage.java create mode 100644 src/main/java/me/ellieis/game/SabotageConfig.java create mode 100644 src/main/java/me/ellieis/game/SabotageLobby.java rename src/main/resources/assets/{modid => sabotage}/icon.png (100%) create mode 100644 src/main/resources/data/sabotage/games/sabotage.json create mode 100644 src/main/resources/data/sabotage/lang/en_us.json delete mode 100644 src/main/resources/modid.mixins.json diff --git a/LICENSE b/LICENSE index 1625c17..0a04128 100644 --- a/LICENSE +++ b/LICENSE @@ -1,121 +1,165 @@ -Creative Commons Legal Code - -CC0 1.0 Universal - - 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. - -Statement of Purpose - -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"). - -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. \ No newline at end of file + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/build.gradle b/build.gradle index 910521d..8f7a553 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,9 @@ loom { } } - +repositories { + maven { url = 'https://maven.nucleoid.xyz/' } +} dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" @@ -38,11 +40,9 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - // Uncomment the following line to enable the deprecated Fabric API modules. - // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. - // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}" + // Plasmid + modImplementation("xyz.nucleoid:plasmid:${project.plasmid_version}") } processResources { diff --git a/gradle.properties b/gradle.properties index aa21e94..823596d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx4G org.gradle.parallel=true # Fabric Properties @@ -10,8 +10,9 @@ loader_version=0.15.0 # Mod Properties mod_version=1.0.0 -maven_group=com.example -archives_base_name=modid +maven_group=me.ellieis +archives_base_name=sabotage # Dependencies -fabric_version=0.91.1+1.20.4 \ No newline at end of file +fabric_version=0.91.1+1.20.4 +plasmid_version=0.5.102-SNAPSHOT+1.20.4 \ No newline at end of file diff --git a/src/client/java/com/example/ExampleModClient.java b/src/client/java/com/example/ExampleModClient.java deleted file mode 100644 index e2b0436..0000000 --- a/src/client/java/com/example/ExampleModClient.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example; - -import net.fabricmc.api.ClientModInitializer; - -public class ExampleModClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - // This entrypoint is suitable for setting up client-specific logic, such as rendering. - } -} \ No newline at end of file diff --git a/src/client/java/com/example/mixin/client/ExampleClientMixin.java b/src/client/java/com/example/mixin/client/ExampleClientMixin.java deleted file mode 100644 index 061b0ef..0000000 --- a/src/client/java/com/example/mixin/client/ExampleClientMixin.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.mixin.client; - -import net.minecraft.client.MinecraftClient; -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(MinecraftClient.class) -public class ExampleClientMixin { - @Inject(at = @At("HEAD"), method = "run") - private void run(CallbackInfo info) { - // This code is injected into the start of MinecraftClient.run()V - } -} \ No newline at end of file diff --git a/src/client/resources/modid.client.mixins.json b/src/client/resources/modid.client.mixins.json deleted file mode 100644 index 21b0fc1..0000000 --- a/src/client/resources/modid.client.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "com.example.mixin.client", - "compatibilityLevel": "JAVA_17", - "client": [ - "ExampleClientMixin" - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file diff --git a/src/main/java/com/example/ExampleMod.java b/src/main/java/com/example/ExampleMod.java deleted file mode 100644 index f97cce9..0000000 --- a/src/main/java/com/example/ExampleMod.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example; - -import net.fabricmc.api.ModInitializer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExampleMod implements ModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger("modid"); - - @Override - public void onInitialize() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - - LOGGER.info("Hello Fabric world!"); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/mixin/ExampleMixin.java b/src/main/java/com/example/mixin/ExampleMixin.java deleted file mode 100644 index 3c4212c..0000000 --- a/src/main/java/com/example/mixin/ExampleMixin.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.mixin; - -import net.minecraft.server.MinecraftServer; -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(MinecraftServer.class) -public class ExampleMixin { - @Inject(at = @At("HEAD"), method = "loadWorld") - private void init(CallbackInfo info) { - // This code is injected into the start of MinecraftServer.loadWorld()V - } -} \ No newline at end of file diff --git a/src/main/java/me/ellieis/Sabotage.java b/src/main/java/me/ellieis/Sabotage.java new file mode 100644 index 0000000..a94c4c1 --- /dev/null +++ b/src/main/java/me/ellieis/Sabotage.java @@ -0,0 +1,22 @@ +package me.ellieis; + +import me.ellieis.game.SabotageConfig; +import me.ellieis.game.SabotageLobby; +import net.fabricmc.api.ModInitializer; + +import net.minecraft.util.Identifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import xyz.nucleoid.plasmid.game.GameType; + +public class Sabotage implements ModInitializer { + public static final String MOD_ID = "sabotage"; + public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); + private static final Identifier SABOTAGE_ID = new Identifier(MOD_ID, "sabotage"); + public static final GameType GAME_TYPE = GameType.register(SABOTAGE_ID, SabotageConfig.CODEC, SabotageLobby::Open); + + @Override + public void onInitialize() { + + } +} \ No newline at end of file diff --git a/src/main/java/me/ellieis/game/SabotageConfig.java b/src/main/java/me/ellieis/game/SabotageConfig.java new file mode 100644 index 0000000..20d2877 --- /dev/null +++ b/src/main/java/me/ellieis/game/SabotageConfig.java @@ -0,0 +1,20 @@ +package me.ellieis.game; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.Identifier; + +public class SabotageConfig { + private final Identifier map; + public static final Codec CODEC = RecordCodecBuilder.create(instance -> { + return instance.group( + Identifier.CODEC.fieldOf("map").forGetter(SabotageConfig::getMap) + ).apply(instance, SabotageConfig::new); + }); + public SabotageConfig(Identifier map) { + this.map = map; + } + public Identifier getMap() { + return this.map; + } +} diff --git a/src/main/java/me/ellieis/game/SabotageLobby.java b/src/main/java/me/ellieis/game/SabotageLobby.java new file mode 100644 index 0000000..5886fef --- /dev/null +++ b/src/main/java/me/ellieis/game/SabotageLobby.java @@ -0,0 +1,53 @@ +package me.ellieis.game; + +import net.minecraft.block.Blocks; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.GameMode; +import xyz.nucleoid.fantasy.RuntimeWorldConfig; +import xyz.nucleoid.map_templates.MapTemplate; +import xyz.nucleoid.plasmid.game.GameOpenContext; +import xyz.nucleoid.plasmid.game.GameOpenProcedure; +import xyz.nucleoid.plasmid.game.GameSpace; +import xyz.nucleoid.plasmid.game.event.GamePlayerEvents; +import xyz.nucleoid.plasmid.game.player.PlayerOffer; +import xyz.nucleoid.plasmid.game.player.PlayerOfferResult; +import xyz.nucleoid.plasmid.game.world.generator.TemplateChunkGenerator; + +public class SabotageLobby { + private final SabotageConfig config; + private final GameSpace gameSpace; + private final ServerWorld world; + public SabotageLobby(SabotageConfig config, GameSpace gameSpace, ServerWorld world) { + this.config = config; + this.gameSpace = gameSpace; + this.world = world; + } + public static GameOpenProcedure Open(GameOpenContext context) { + SabotageConfig config = context.game().config(); + // create a very simple map with a stone block at (0; 64; 0) + MapTemplate template = MapTemplate.createEmpty(); + template.setBlockState(new BlockPos(0, 64, 0), Blocks.STONE.getDefaultState()); + + // create a chunk generator that will generate from this template that we just created + TemplateChunkGenerator generator = new TemplateChunkGenerator(context.server(), template); + + // set up how the world that this minigame will take place in should be constructed + RuntimeWorldConfig worldConfig = new RuntimeWorldConfig() + .setGenerator(generator) + .setTimeOfDay(6000); + + return context.openWithWorld(worldConfig, (activity, world) -> { + SabotageLobby game = new SabotageLobby(config, activity.getGameSpace(), world); + activity.listen(GamePlayerEvents.OFFER, game::onOffer); + }); + } + private PlayerOfferResult onOffer(PlayerOffer offer) { + ServerPlayerEntity plr = offer.player(); + return offer.accept(this.world, new Vec3d(0.0, 66.0, 0.0)).and(() -> { + plr.changeGameMode(GameMode.ADVENTURE); + }); + } +} diff --git a/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/sabotage/icon.png similarity index 100% rename from src/main/resources/assets/modid/icon.png rename to src/main/resources/assets/sabotage/icon.png diff --git a/src/main/resources/data/sabotage/games/sabotage.json b/src/main/resources/data/sabotage/games/sabotage.json new file mode 100644 index 0000000..f26d20d --- /dev/null +++ b/src/main/resources/data/sabotage/games/sabotage.json @@ -0,0 +1,4 @@ +{ + "type": "sabotage:sabotage", + "map": "sabotage:lobby" +} \ No newline at end of file diff --git a/src/main/resources/data/sabotage/lang/en_us.json b/src/main/resources/data/sabotage/lang/en_us.json new file mode 100644 index 0000000..43d4009 --- /dev/null +++ b/src/main/resources/data/sabotage/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "gameType.sabotage.sabotage": "Sabotage" +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index dc5a234..ee2f5ef 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,41 +1,29 @@ { "schemaVersion": 1, - "id": "modid", + "id": "sabotage", "version": "${version}", - "name": "Example mod", - "description": "This is an example description! Tell everyone what your mod is about!", + "name": "Sabotage", + "description": "An implementation of MCPvP's Sabotage, using Plasmid.", "authors": [ - "Me!" + "ellieisjelly" ], "contact": { - "homepage": "https://fabricmc.net/", - "sources": "https://github.com/FabricMC/fabric-example-mod" + "homepage": "https://github.com/ellieisjelly/Sabotage#readme", + "issues": "https://github.com/ellieisjelly/Sabotage/issues" }, - "license": "CC0-1.0", - "icon": "assets/modid/icon.png", + "license": "LGPL-3.0", + "icon": "assets/sabotage/icon.png", "environment": "*", "entrypoints": { "main": [ - "com.example.ExampleMod" - ], - "client": [ - "com.example.ExampleModClient" + "me.ellieis.Sabotage" ] }, - "mixins": [ - "modid.mixins.json", - { - "config": "modid.client.mixins.json", - "environment": "client" - } - ], "depends": { "fabricloader": ">=0.15.0", "minecraft": "~1.20.4", "java": ">=17", - "fabric-api": "*" - }, - "suggests": { - "another-mod": "*" + "fabric-api": "*", + "plasmid": ">=0.5.1" } } \ No newline at end of file diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json deleted file mode 100644 index 166e787..0000000 --- a/src/main/resources/modid.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "com.example.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [ - "ExampleMixin" - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file