diff --git a/old/Jenkinsfile b/old/Jenkinsfile deleted file mode 100644 index 301ce57..0000000 --- a/old/Jenkinsfile +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env groovy - -pipeline { - agent any - tools { - jdk "jdk-17.0.1" - } - stages { - stage('Clean') { - steps { - withCredentials([file(credentialsId: 'mod_build_secrets', variable: 'ORG_GRADLE_PROJECT_secretFile')]) { - echo 'Cleaning Project' - sh 'chmod +x gradlew' - sh './gradlew clean' - } - } - } - stage('Build and Deploy') { - steps { - withCredentials([file(credentialsId: 'mod_build_secrets', variable: 'ORG_GRADLE_PROJECT_secretFile')]) { - echo 'Building and Deploying to Maven' - sh './gradlew build publish' - } - } - } - } - post { - always { - archive 'build/libs/**.jar' - } - } -} diff --git a/old/LICENSE b/old/LICENSE deleted file mode 100644 index 65c5ca8..0000000 --- a/old/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - 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/old/README.md b/old/README.md deleted file mode 100644 index 0900fdd..0000000 --- a/old/README.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Carry On [![](http://cf.way2muchnoise.eu/carry-on.svg)](https://minecraft.curseforge.com/projects/carry-on) [![](http://cf.way2muchnoise.eu/versions/carry-on.svg)](https://minecraft.curseforge.com/projects/carry-on) - -To use CarryOn in your projects, include this in your build.gradle: -``` -repositories { - maven { - url "https://maven.blamejared.com/" - } -} - -dependencies { - deobfCompile "tschipp.carryon:carryon-MCVERSION:MODVERSION" -} -``` -Make sure to replace `MCVERSION` and `MODVERSION` with the appropriate versions. diff --git a/old/build.gradle b/old/build.gradle deleted file mode 100644 index dfebe13..0000000 --- a/old/build.gradle +++ /dev/null @@ -1,239 +0,0 @@ -buildscript { - dependencies { - classpath 'org.parchmentmc:librarian:1.+' - } -} - -plugins { - id 'eclipse' - id 'maven-publish' - id 'net.minecraftforge.gradle' version '5.1.+' -} - -apply plugin: 'org.parchmentmc.librarian.forgegradle' - - -apply from: 'https://raw.githubusercontent.com/MinecraftModDevelopment/Gradle-Collection/22e7d543a18cd30675277fbfa3669e3d9e206010/generic/secrets.gradle' -apply from: 'https://raw.githubusercontent.com/SizableShrimp/Forge-Class-Remapper/main/classremapper.gradle' - -//import net.minecraftforge.gradle.common.task.SignJar -import groovy.json.JsonSlurper -import groovy.json.JsonOutput - -if (project.hasProperty('secretFile')) { - loadSecrets(new File((String) findProperty('secretFile'))) -} - -version = "${version}" -group = "tschipp.carryon" -archivesBaseName = "carryon-${minecraft_version}" - - -if (System.getenv('BUILD_NUMBER') != null) { - version += "." + System.getenv('BUILD_NUMBER') -} - -java.toolchain.languageVersion = JavaLanguageVersion.of(17) -println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) - -minecraft { - mappings channel: 'parchment', version: "${mappings_version}" - - runs { - client { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - - property 'forge.logging.console.level', 'debug' - - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" - - mods { - carryon { - source sourceSets.main - } - } - } - - server { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - - property 'forge.logging.console.level', 'debug' - - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" - - mods { - carryon { - source sourceSets.main - } - } - } - - data { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - - property 'forge.logging.console.level', 'debug' - - args '--mod', 'carryon', '--all', '--output', file('src/generated/resources/') - - mods { - carryon { - source sourceSets.main - } - } - } - } -} - -repositories { - - maven { - url "https://maven.blamejared.com/" - } - - maven { - url "https://maven.mcmoddev.com/" - } - - flatDir { - dirs 'libs' - } - - maven { - url "https://www.cursemaven.com" - } -} - -dependencies { - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - //implementation fg.deobf("net.darkhax.gamestages:GameStages-1.16.4:6.0.1") - //implementation fg.deobf("net.darkhax.bookshelf:Bookshelf-1.16.4:9.3.18") - //implementation fg.deobf("curse.maven:obfuscate-289380:3169370") - - //fileTree("libs").matching { - // include "*.jar" - //}.each { - // String filename = it.getName(); - // filename = filename.substring(0, filename.length() - 4); - // int lastDash = filename.lastIndexOf("-"); - // filename = filename.substring(0, lastDash) + ":" + filename.substring(lastDash+1, filename.length()); - // implementation fg.deobf("blank:${filename}") - //} - -} - -// Example for how to get properties into the manifest for reading by the runtime.. -jar { - manifest { - attributes([ - "Specification-Title": "carryon", - "Specification-Vendor": "Carry On", - "Specification-Version": "1", // We are version 1 of ourselves - "Implementation-Title": project.name, - "Implementation-Version": "${version}", - "Implementation-Vendor" :"Carry On", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) - } -} - -jar.finalizedBy('reobfJar') - -task sourcesJar(type: Jar, dependsOn: classes) { - description = 'Creates a JAR containing the source code.' - from sourceSets.main.allSource - classifier = 'sources' -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - description = 'Creates a JAR containing the JavaDocs.' - from javadoc.destinationDir - classifier = 'javadoc' -} - -task deobfJar(type: Jar) { - description = 'Creates a JAR containing the non-obfuscated compiled code.' - from sourceSets.main.output - classifier = "deobf" -} - -artifacts { - archives sourcesJar - archives javadocJar - archives deobfJar -} - - -publishing { - - publications { - - mavenJava(MavenPublication) { - - groupId project.group - artifactId project.archivesBaseName - version project.version - from components.java - - // Allows the maven pom file to be modified. - pom.withXml { - - // Go through all the dependencies. - asNode().dependencies.dependency.each { dep -> - - println 'Surpressing artifact ' + dep.artifactId.last().value().last() + ' from maven dependencies.' - assert dep.parent().remove(dep) - } - } - - artifact sourcesJar { - - classifier 'sources' - } - artifact javadocJar { - - classifier 'javadoc' - } - artifact deobfJar { - - classifier 'deobf' - } - } - } - - repositories { - - maven { - - url "file://" + System.getenv("local_maven") - } - } -} - -//task signJar(type: SignJar, dependsOn: jar) { - // Skips if the keyStore property is missing. - // onlyIf { - // project.hasProperty('modkeyStore') - // } - - // findProperty allows us to reference the property without it existing. - // Using project.propName would cause the script to fail validation if - // the property did not exist. - // keyStore = project.findProperty('modkeyStore') - // alias = project.findProperty('modkeyStoreAlias') - // storePass = project.findProperty('modkeyStorePass') - // keyPass = project.findProperty('modkeyStoreKeyPass') - // inputFile = jar.archivePath - // outputFile = jar.archivePath -//} - -// Runs this task automatically when build is ran. -//build.dependsOn signJar \ No newline at end of file diff --git a/old/gradle.properties b/old/gradle.properties deleted file mode 100644 index c8d56c2..0000000 --- a/old/gradle.properties +++ /dev/null @@ -1,9 +0,0 @@ -# Sets default memory used for gradle commands. Can be overridden by user or command line properties. -# This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G -version=1.18.1 -minecraft_version=1.19 -mappings_version=1.19.2-2022.09.18 -forge_version=41.0.100 -org.gradle.daemon=false -# chorg.gradle.java.home=C:/Program Files/AdoptOpenJDK/jdk-17.0.1/ \ No newline at end of file diff --git a/old/settings.gradle b/old/settings.gradle deleted file mode 100644 index ba700c1..0000000 --- a/old/settings.gradle +++ /dev/null @@ -1,9 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven { url = 'https://maven.minecraftforge.net/' } - maven { url = 'https://maven.parchmentmc.org' } - jcenter() - mavenCentral() - } -} \ No newline at end of file diff --git a/old/src/main/java/tschipp/carryon/CarryOn.java b/old/src/main/java/tschipp/carryon/CarryOn.java deleted file mode 100644 index fe3c6f1..0000000 --- a/old/src/main/java/tschipp/carryon/CarryOn.java +++ /dev/null @@ -1,79 +0,0 @@ -package tschipp.carryon; - -import java.io.File; -import java.util.Optional; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forgespi.language.IModInfo; -import net.minecraftforge.network.NetworkDirection; -import net.minecraftforge.network.NetworkRegistry; -import net.minecraftforge.network.simple.SimpleChannel; -import tschipp.carryon.common.config.Configs; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.network.client.CarrySlotPacket; -import tschipp.carryon.network.client.ScriptReloadPacket; -import tschipp.carryon.network.server.SyncKeybindPacket; -import tschipp.carryon.proxy.ClientProxy; -import tschipp.carryon.proxy.IProxy; -import tschipp.carryon.proxy.ServerProxy; - -@Mod(CarryOn.MODID) -@EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) -public class CarryOn -{ - - public static IProxy proxy = DistExecutor.safeRunForDist(() -> ClientProxy::new, () -> ServerProxy::new); - - public static final String MODID = "carryon"; - public static final Logger LOGGER = LogManager.getFormatterLogger("CarryOn"); - public static final String DEPENDENCIES = "required-after:forge@[13.20.1.2386,);after:gamestages;"; - public static final String CERTIFICATE_FINGERPRINT = "55e88f24d04398481ae6f1ce76f65fd776f14227"; - public static File CONFIGURATION_FILE; - - public static boolean FINGERPRINT_VIOLATED = false; - - public static SimpleChannel network; - public static IModInfo info; - - public CarryOn() - { - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); - - ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Configs.CLIENT_CONFIG); - ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Configs.SERVER_CONFIG); - - info = ModLoadingContext.get().getActiveContainer().getModInfo(); - RegistrationHandler.init(); - } - - private void setup(final FMLCommonSetupEvent event) - { - String version = info.getVersion().toString(); - // PreInitevent. - CarryOn.network = NetworkRegistry.newSimpleChannel(new ResourceLocation(CarryOn.MODID, "carryonpackets"), () -> version, version::equals, version::equals); - - // CLIENT PACKETS - CarryOn.network.registerMessage(0, CarrySlotPacket.class, CarrySlotPacket::toBytes, CarrySlotPacket::new, CarrySlotPacket::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT)); - CarryOn.network.registerMessage(1, ScriptReloadPacket.class, ScriptReloadPacket::toBytes, ScriptReloadPacket::new, ScriptReloadPacket::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT)); - - // SERVER PACKETS - CarryOn.network.registerMessage(2, SyncKeybindPacket.class, SyncKeybindPacket::toBytes, SyncKeybindPacket::new, SyncKeybindPacket::handle, Optional.of(NetworkDirection.PLAY_TO_SERVER)); - - RegistrationHandler.regCommonEvents(); - - // Init - RegistrationHandler.regOverrideList(); - - proxy.setup(event); - } -} \ No newline at end of file diff --git a/old/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java b/old/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java deleted file mode 100644 index 637287d..0000000 --- a/old/src/main/java/tschipp/carryon/client/event/RenderEntityEvents.java +++ /dev/null @@ -1,157 +0,0 @@ -package tschipp.carryon.client.event; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Vector3f; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.RenderHandEvent; -import net.minecraftforge.event.level.LevelEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ModList; -import tschipp.carryon.client.helper.CarryRenderHelper; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.item.ItemCarryonEntity; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptChecker; - -public class RenderEntityEvents -{ - - public static final Map nbtEntityMap = new HashMap<>(); - - public static Entity getEntity(ItemStack carried, Level level) - { - String nbt = ItemCarryonEntity.getPersistentData(carried).toString(); - if (nbtEntityMap.containsKey(nbt)) - { - return nbtEntityMap.get(nbt); - } - - Entity entity = ItemCarryonEntity.getEntity(carried, level); - nbtEntityMap.put(nbt, entity); - - return entity; - } - - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onLevelUnload(LevelEvent.Unload event) - { - nbtEntityMap.clear(); - } - - /* - * Renders the Entity in First Person - */ - @SuppressWarnings("resource") - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void renderHand(RenderHandEvent event) - { - Level level = Minecraft.getInstance().level; - Player player = Minecraft.getInstance().player; - ItemStack stack = player.getMainHandItem(); - int perspective = CarryRenderHelper.getPerspective(); - float partialticks = event.getPartialTick(); - PoseStack matrix = event.getPoseStack(); - int light = event.getPackedLight(); - MultiBufferSource buffer = event.getMultiBufferSource(); - EntityRenderDispatcher manager = Minecraft.getInstance().getEntityRenderDispatcher(); - - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) - { - if (ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) - return; - - Entity entity = getEntity(stack, level); - - if (entity != null) - { - Vec3 playerpos = CarryRenderHelper.getExactPos(player, partialticks); - - entity.setPos(playerpos.x, playerpos.y, playerpos.z); - entity.xRotO = 0.0f; - entity.yRotO = 0.0f; - entity.setYHeadRot(0.0f); - - float height = entity.getBbHeight(); - float width = entity.getBbWidth(); - - matrix.pushPose(); - matrix.scale(0.8f, 0.8f, 0.8f); - matrix.mulPose(Vector3f.YP.rotationDegrees(180)); - matrix.translate(0.0, -height - .1, width + 0.1); - - // RenderSystem.enableAlphaTest(); - - if (perspective == 0) - { - // Lighting.en - manager.setRenderShadow(false); - - CarryOnOverride carryOverride = ScriptChecker.getOverride(player); - if (carryOverride != null) - { - CarryRenderHelper.performOverrideTransformation(matrix, carryOverride); - - String entityname = carryOverride.getRenderNameEntity(); - if (entityname != null) - { - Entity newEntity = null; - - Optional> type = EntityType.byString(entityname); - if (type.isPresent()) - newEntity = type.get().create(level); - - if (newEntity != null) - { - CompoundTag nbttag = carryOverride.getRenderNBT(); - if (nbttag != null) - newEntity.deserializeNBT(nbttag); - entity = newEntity; - entity.setPos(playerpos.x, playerpos.y, playerpos.z); - entity.xRotO = 0.0f; - entity.yRotO = 0.0f; - entity.setYHeadRot(0.0f); - } - } - } - - if (entity instanceof LivingEntity) - ((LivingEntity) entity).hurtTime = 0; - - manager.render(entity, 0, 0, 0, 0f, 0, matrix, buffer, light); - manager.setRenderShadow(true); - } - - // RenderSystem.disableAlphaTest(); - matrix.popPose(); - - // Lighting.turnOff(); - // TODO - // RenderSystem.disableRescaleNormal(); - - if (perspective == 0) - { - event.setCanceled(true); - } - } - } - } -} diff --git a/old/src/main/java/tschipp/carryon/client/event/RenderEvents.java b/old/src/main/java/tschipp/carryon/client/event/RenderEvents.java deleted file mode 100644 index c561372..0000000 --- a/old/src/main/java/tschipp/carryon/client/event/RenderEvents.java +++ /dev/null @@ -1,796 +0,0 @@ -package tschipp.carryon.client.event; - -import java.lang.reflect.InvocationTargetException; -import java.util.Optional; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; - -import net.minecraft.ChatFormatting; -import net.minecraft.client.KeyMapping; -import net.minecraft.client.Minecraft; -import net.minecraft.client.Options; -import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.MultiBufferSource.BufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.client.renderer.entity.player.PlayerRenderer; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.ClickEvent; -import net.minecraft.network.chat.ClickEvent.Action; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.Pose; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.RenderHandEvent; -import net.minecraftforge.client.event.RenderLevelLastEvent; -import net.minecraftforge.client.event.RenderPlayerEvent; -import net.minecraftforge.client.event.ScreenEvent; -import net.minecraftforge.event.TickEvent.PlayerTickEvent; -import net.minecraftforge.event.entity.EntityJoinLevelEvent; -import net.minecraftforge.eventbus.api.EventPriority; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.LogicalSide; -import net.minecraftforge.fml.ModList; -import tschipp.carryon.CarryOn; -import tschipp.carryon.client.helper.CarryRenderHelper; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.handler.ModelOverridesHandler; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.helper.KeyboardCallbackWrapper.KeyPressedEvent; -import tschipp.carryon.common.helper.ScriptParseHelper; -import tschipp.carryon.common.helper.ScrollCallbackWrapper.MouseScrolledEvent; -import tschipp.carryon.common.helper.StringParser; -import tschipp.carryon.common.item.ItemCarryonBlock; -import tschipp.carryon.common.item.ItemCarryonEntity; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptChecker; -import tschipp.carryon.network.server.SyncKeybindPacket; - -public class RenderEvents -{ - /* - * Prevents the Player from scrolling - */ - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onScroll(MouseScrolledEvent event) - { - @SuppressWarnings("resource") - Player player = Minecraft.getInstance().player; - - if (player != null) - { - ItemStack stack = player.getMainHandItem(); - - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() || stack.getItem() == RegistrationHandler.itemEntity.get())) - { - if (ItemCarryonBlock.hasTileData(stack) || ItemCarryonEntity.hasEntityData(stack)) - { - event.setCanceled(true); - } - } - } - - } - - @SubscribeEvent - @OnlyIn(Dist.CLIENT) - public void onPlayerTick(PlayerTickEvent event) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException - { - Player player = event.player; - - if (player != null && event.side == LogicalSide.CLIENT) - { - boolean keyPressed = CarryOnKeybinds.carryKey.isDown(); - boolean playerKeyPressed = CarryOnKeybinds.isKeyPressed(player); - - if (keyPressed && !playerKeyPressed) - { - CarryOnKeybinds.setKeyPressed(player, true); - CarryOn.network.sendToServer(new SyncKeybindPacket(true)); - } - else if (!keyPressed && playerKeyPressed) - { - CarryOnKeybinds.setKeyPressed(player, false); - CarryOn.network.sendToServer(new SyncKeybindPacket(false)); - } - } - } - - @SubscribeEvent - @OnlyIn(Dist.CLIENT) - public void onJoinLevel(EntityJoinLevelEvent event) - { - if (event.getEntity() instanceof Player) - { - Player player = (Player) event.getEntity(); - if (player.level.isClientSide) - { - CarryOnKeybinds.setKeyPressed(player, false); - CarryOn.network.sendToServer(new SyncKeybindPacket(false)); - - if (CarryOn.FINGERPRINT_VIOLATED) - { - Component cf = Component.literal(ChatFormatting.AQUA + "Curseforge" + ChatFormatting.RED); - cf.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://minecraft.curseforge.com/projects/carry-on")); - - player.displayClientMessage(Component.literal(ChatFormatting.RED + "[CarryOn] WARNING! Invalid fingerprint detected! The Carry On mod file may have been tampered with! If you didn't download the file from ").append(cf).append(ChatFormatting.RED + " or through any kind of mod launcher, immediately delete the file and re-download it from ").append(cf), false); - } - } - - } - } - - /* - * Prevents the Player from opening Guis - */ - @SuppressWarnings("resource") - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onGuiInit(ScreenEvent.Init.Pre event) - { - if (event.getScreen() != null) - { - boolean inventory = event.getScreen() instanceof AbstractContainerScreen; - Player player = Minecraft.getInstance().player; - - if (player != null && inventory) - { - ItemStack stack = player.getItemInHand(InteractionHand.MAIN_HAND); - - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack))) - { - Minecraft.getInstance().player.closeContainer(); - Minecraft.getInstance().screen = null; - Minecraft.getInstance().mouseHandler.grabMouse(); - - } - - } - } - } - - /* - * Prevents the Player from switching Slots - */ - @SuppressWarnings("resource") - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void inputEvent(KeyPressedEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException - { - Options settings = Minecraft.getInstance().options; - int key = event.key; - int scancode = event.scancode; - Player player = Minecraft.getInstance().player; - - if (player != null) - { - ItemStack stack = Minecraft.getInstance().player.getMainHandItem(); - - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack))) - { - if (settings.keyDrop.matches(key, scancode)) - { - event.setCanceled(true); - } - if (settings.keySwapOffhand.matches(key, scancode)) - { - event.setCanceled(true); - } - if (settings.keyPickItem.matches(key, scancode)) - { - event.setCanceled(true); - } - for (KeyMapping keyBind : settings.keyHotbarSlots) - { - if (keyBind.matches(key, scancode)) - { - event.setCanceled(true); - } - } - } - - int current = player.getInventory().selected; - - if (player.getPersistentData().contains("carrySlot") ? player.getPersistentData().getInt("carrySlot") != current : false) - { - player.getInventory().selected = player.getPersistentData().getInt("carrySlot"); - } - } - } - - /* - * Renders the Block in First Person - */ - @SuppressWarnings({ "resource", "deprecation" }) - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void renderHand(RenderHandEvent event) - { - Level level = Minecraft.getInstance().level; - Player player = Minecraft.getInstance().player; - ItemStack stack = player.getMainHandItem(); - int perspective = CarryRenderHelper.getPerspective(); - boolean f1 = Minecraft.getInstance().options.hideGui; - MultiBufferSource buffer = event.getMultiBufferSource(); - PoseStack matrix = event.getPoseStack(); - int light = event.getPackedLight(); - - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack) && perspective == 0 && !f1) - { - if (ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) - return; - - Block block = ItemCarryonBlock.getBlock(stack); - CompoundTag tag = ItemCarryonBlock.getTileData(stack); - BlockState state = ItemCarryonBlock.getBlockState(stack); - ItemStack tileStack = ItemCarryonBlock.getItemStack(stack); - - matrix.pushPose(); - matrix.scale(2.5f, 2.5f, 2.5f); - matrix.translate(0, -0.5, -1); - RenderSystem.enableBlend(); - RenderSystem.disableCull(); - - if (Settings.facePlayer.get() ? !isChest(block) : isChest(block)) - { - matrix.mulPose(Vector3f.YP.rotationDegrees(180)); - matrix.mulPose(Vector3f.XN.rotationDegrees(8)); - } - else - { - matrix.mulPose(Vector3f.XP.rotationDegrees(8)); - } - - BakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, level, player) : tileStack.isEmpty() ? Minecraft.getInstance().getBlockRenderer().getBlockModel(state) : Minecraft.getInstance().getItemRenderer().getModel(tileStack, level, player, 0); - - CarryOnOverride carryOverride = ScriptChecker.getOverride(player); - if (carryOverride != null) - { - CarryRenderHelper.performOverrideTransformation(matrix, carryOverride); - - if (!carryOverride.getRenderNameBlock().isEmpty()) - { - Block b = StringParser.getBlock(carryOverride.getRenderNameBlock()); - if (b != null) - { - ItemStack s = new ItemStack(b, 1); - s.setTag(carryOverride.getRenderNBT()); - model = Minecraft.getInstance().getItemRenderer().getModel(s, level, player, 0); - } - } - } - - RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - - CarryRenderHelper.renderItem(state, tag, stack, tileStack, matrix, buffer, light, model); - - if (perspective == 0) - { - event.setCanceled(true); - } - - RenderSystem.enableCull(); - RenderSystem.disableBlend(); - matrix.popPose(); - } - } - - // @SubscribeEvent - // public void onJoinServer(LoggedInEvent event) - // { - // ListHandler.initConfigLists(); - // } - - /* - * Render blocks and entities in third person - */ - @SuppressWarnings({ "deprecation", "resource" }) - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onRenderLevel(RenderLevelLastEvent event) - { - Minecraft mc = Minecraft.getInstance(); - Level level = mc.level; - float partialticks = event.getPartialTick(); - BufferSource buffer = MultiBufferSource.immediate(Tesselator.getInstance().getBuilder()); - PoseStack matrix = event.getPoseStack(); - int light = 0; - int perspective = CarryRenderHelper.getPerspective(); - EntityRenderDispatcher manager = mc.getEntityRenderDispatcher(); - - RenderSystem.enableBlend(); - RenderSystem.disableCull(); - RenderSystem.disableDepthTest(); - - for (Player player : level.players()) - { - if (perspective == 0 && player == mc.player) - continue; - - light = manager.getPackedLightCoords(player, partialticks); - ItemStack stack = player.getMainHandItem(); - - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack)) - { - Block block = ItemCarryonBlock.getBlock(stack); - BlockState state = ItemCarryonBlock.getBlockState(stack); - CompoundTag tag = ItemCarryonBlock.getTileData(stack); - ItemStack tileItem = ItemCarryonBlock.getItemStack(stack); - - applyBlockTransformations(player, partialticks, matrix, block); - - BakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, level, player) : tileItem.isEmpty() ? mc.getBlockRenderer().getBlockModel(state) : mc.getItemRenderer().getModel(tileItem, level, player, 0); - - CarryOnOverride carryOverride = ScriptChecker.getOverride(player); - if (carryOverride != null) - { - CarryRenderHelper.performOverrideTransformation(matrix, carryOverride); - - if (!carryOverride.getRenderNameBlock().isEmpty()) - { - Block b = StringParser.getBlock(carryOverride.getRenderNameBlock()); - if (b != null) - { - ItemStack s = new ItemStack(b, 1); - s.setTag(carryOverride.getRenderNBT()); - model = mc.getItemRenderer().getModel(s, level, player, 0); - } - } - } - - RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - RenderSystem.enableCull(); - - PoseStack.Pose p = matrix.last(); - PoseStack copy = new PoseStack(); - copy.mulPoseMatrix(p.pose()); - matrix.popPose(); - drawArms(player, partialticks, matrix, buffer, light); - - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - - CarryRenderHelper.renderItem(state, tag, stack, tileItem, copy, buffer, light, model); - buffer.endBatch(); - - matrix.popPose(); - } - else if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) - { - Entity entity = RenderEntityEvents.getEntity(stack, level); - - if (entity != null) - { - applyEntityTransformations(player, partialticks, matrix, entity); - - manager.setRenderShadow(false); - - CarryOnOverride carryOverride = ScriptChecker.getOverride(player); - if (carryOverride != null) - { - CarryRenderHelper.performOverrideTransformation(matrix, carryOverride); - - String entityname = carryOverride.getRenderNameEntity(); - if (entityname != null) - { - Entity newEntity = null; - - Optional> type = EntityType.byString(entityname); - if (type.isPresent()) - newEntity = type.get().create(level); - - if (newEntity != null) - { - CompoundTag nbttag = carryOverride.getRenderNBT(); - if (nbttag != null) - newEntity.deserializeNBT(nbttag); - entity = newEntity; - entity.yo = 0.0f; - entity.yRotO = 0.0f; - entity.setYHeadRot(0.0f); - entity.xo = 0.0f; - entity.xRotO = 0.0f; - } - } - } - - if (entity instanceof LivingEntity le) - le.hurtTime = 0; - - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - - manager.render(entity, 0, 0, 0, 0f, 0, matrix, buffer, light); - buffer.endBatch(); - - matrix.popPose(); - - drawArms(player, partialticks, matrix, buffer, light); - - manager.setRenderShadow(true); - - matrix.popPose(); - } - } - - } - RenderSystem.enableDepthTest(); - RenderSystem.enableCull(); - RenderSystem.disableBlend(); - } - - @SuppressWarnings("resource") - private void applyGeneralTransformations(Player player, float partialticks, PoseStack matrix) - { - int perspective = CarryRenderHelper.getPerspective(); - Quaternion playerrot = CarryRenderHelper.getExactBodyRotation(player, partialticks); - Vec3 playerpos = CarryRenderHelper.getExactPos(player, partialticks); - Vec3 cameraPos = Minecraft.getInstance().gameRenderer.getMainCamera().getPosition(); - Vec3 offset = playerpos.subtract(cameraPos); - Pose pose = player.getPose(); - - matrix.pushPose(); - matrix.translate(offset.x, offset.y, offset.z); - - if (perspective == 2) - playerrot.mul(Vector3f.YP.rotationDegrees(180)); - matrix.mulPose(playerrot); - - matrix.pushPose(); - matrix.scale(0.6f, 0.6f, 0.6f); - - if (perspective == 2) - matrix.translate(0, 0, -1.35); - - if (doSneakCheck(player)) - { - matrix.translate(0, -0.4, 0); - } - - if (pose == Pose.SWIMMING) - { - float f = player.getSwimAmount(partialticks); - float f3 = player.isInWater() ? -90.0F - player.xRotO : -90.0F; - float f4 = Mth.lerp(f, 0.0F, f3); - if (perspective == 2) - { - matrix.translate(0, 0, 1.35); - matrix.mulPose(Vector3f.XP.rotationDegrees(f4)); - } - else - matrix.mulPose(Vector3f.XN.rotationDegrees(f4)); - - matrix.translate(0, -1.5, -1.848); - if (perspective == 2) - matrix.translate(0, 0, 2.38); - } - - if (pose == Pose.FALL_FLYING) - { - float f1 = player.getFallFlyingTicks() + partialticks; - float f2 = Mth.clamp(f1 * f1 / 100.0F, 0.0F, 1.0F); - if (!player.isAutoSpinAttack()) - { - if (perspective == 2) - matrix.translate(0, 0, 1.35); - - if (perspective == 2) - matrix.mulPose(Vector3f.XP.rotationDegrees(f2 * (-90.0F - player.xRotO))); - else - matrix.mulPose(Vector3f.XN.rotationDegrees(f2 * (-90.0F - player.xRotO))); - } - - Vec3 Vector3d = player.getViewVector(partialticks); - Vec3 Vector3d1 = player.getDeltaMovement(); - double d0 = Vector3d1.horizontalDistanceSqr(); - double d1 = Vector3d1.horizontalDistanceSqr(); - if (d0 > 0.0D && d1 > 0.0D) - { - double d2 = (Vector3d1.x * Vector3d.x + Vector3d1.z * Vector3d.z) / (Math.sqrt(d0) * Math.sqrt(d1)); - double d3 = Vector3d1.x * Vector3d.z - Vector3d1.z * Vector3d.x; - - matrix.mulPose(Vector3f.YP.rotation((float) (Math.signum(d3) * Math.acos(d2)))); - } - - if (perspective != 2) - matrix.translate(0, 0, -1.35); - matrix.translate(0, -0.2, 0); - } - - matrix.translate(0, 1.6, 0.65); - } - - private void applyBlockTransformations(Player player, float partialticks, PoseStack matrix, Block block) - { - int perspective = CarryRenderHelper.getPerspective(); - - applyGeneralTransformations(player, partialticks, matrix); - - if (Settings.facePlayer.get() ? !isChest(block) : isChest(block)) - { - if ((ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) && perspective == 0) - matrix.translate(0, 0, -0.4); - matrix.mulPose(Vector3f.YP.rotationDegrees(180)); - } - else if ((ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) && perspective == 0) - matrix.translate(0, 0, 0.4); - } - - private void applyEntityTransformations(Player player, float partialticks, PoseStack matrix, Entity entity) - { - int perspective = CarryRenderHelper.getPerspective(); - Pose pose = player.getPose(); - - applyGeneralTransformations(player, partialticks, matrix); - - if (perspective == 2) - matrix.translate(0, -1.6, 0.65); - else - matrix.translate(0, -1.6, -0.65); - matrix.scale(1.666f, 1.666f, 1.666f); - - float height = entity.getBbHeight(); - float width = entity.getBbWidth(); - float multiplier = height * width; - entity.yo = 0.0f; - entity.yRotO = 0.0f; - entity.setYHeadRot(0.0f); - entity.xo = 0.0f; - entity.xRotO = 0.0f; - - if (perspective == 2) - matrix.mulPose(Vector3f.YP.rotationDegrees(180)); - - matrix.scale((10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f); - matrix.translate(0.0, height / 2 + -(height / 2) + 1, width - 0.1 < 0.7 ? width - 0.1 + (0.7 - (width - 0.1)) : width - 0.1); - - if (pose == Pose.SWIMMING || pose == Pose.FALL_FLYING) - { - matrix.mulPose(Vector3f.XN.rotationDegrees(90)); - matrix.translate(0, -0.2 * height, 0); - - if (pose == Pose.FALL_FLYING) - matrix.translate(0, 0, 0.2); - } - - } - - /* - * Renders correct arm rotation - */ - @OnlyIn(Dist.CLIENT) - public void drawArms(Player player, float partialticks, PoseStack matrix, MultiBufferSource buffer, int light) - { - int perspective = CarryRenderHelper.getPerspective(); - Pose pose = player.getPose(); - - if (!Settings.renderArms.get() || pose == Pose.SWIMMING || pose == Pose.FALL_FLYING) - return; - - if (handleMobends() && !ModList.get().isLoaded("obfuscate")) - { - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) - { - PlayerModel model = getPlayerModel((AbstractClientPlayer) player); - - AbstractClientPlayer aplayer = (AbstractClientPlayer) player; - ResourceLocation skinLoc = aplayer.getSkinTextureLocation(); - - matrix.pushPose(); - if (perspective == 2) - matrix.mulPose(Vector3f.YP.rotationDegrees(180)); - - RenderSystem.setShaderTexture(0, skinLoc); - - CarryOnOverride overrider = ScriptChecker.getOverride(player); - VertexConsumer builder = buffer.getBuffer(RenderType.entityCutout(skinLoc)); - - if (overrider != null) - { - float[] rotLeft = null; - float[] rotRight = null; - if (!overrider.getRenderRotationLeftArm().isEmpty()) - rotLeft = ScriptParseHelper.getXYZArray(overrider.getRenderRotationLeftArm()); - if (!overrider.getRenderRotationRightArm().isEmpty()) - rotRight = ScriptParseHelper.getXYZArray(overrider.getRenderRotationRightArm()); - - boolean renderRight = overrider.isRenderRightArm(); - boolean renderLeft = overrider.isRenderLeftArm(); - - if (renderLeft && rotLeft != null) - { - renderArmPost(model.leftArm, rotLeft[0], rotLeft[2], false, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.leftSleeve, rotLeft[0], rotLeft[2], false, doSneakCheck(player), light, matrix, builder); - } - else if (renderLeft) - { - renderArmPost(model.leftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0, false, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.leftSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0, false, doSneakCheck(player), light, matrix, builder); - } - - if (renderRight && rotRight != null) - { - renderArmPost(model.rightArm, rotRight[0], rotRight[2], true, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.rightSleeve, rotRight[0], rotRight[2], true, doSneakCheck(player), light, matrix, builder); - } - else if (renderRight) - { - renderArmPost(model.rightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0, true, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.rightSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0, true, doSneakCheck(player), light, matrix, builder); - } - } - else - { - renderArmPost(model.rightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0, true, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.leftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0, false, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.leftSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0, false, doSneakCheck(player), light, matrix, builder); - renderArmPost(model.rightSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.3f : 0), stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0, true, doSneakCheck(player), light, matrix, builder); - } - - if (buffer instanceof BufferSource) - ((BufferSource) buffer).endBatch(); - - matrix.popPose(); - } - } - } - - /* - * Hides the vanilla arm for rendering the rotation - */ - @OnlyIn(Dist.CLIENT) - @SubscribeEvent(priority = EventPriority.NORMAL) - public void onEvent(RenderPlayerEvent.Pre event) - { - if (!Settings.renderArms.get()) - return; - - if (handleMobends() && !ModList.get().isLoaded("obfuscate")) - { - Player player = event.getEntity(); - Pose pose = player.getPose(); - ItemStack stack = player.getMainHandItem(); - if (pose != Pose.SWIMMING && pose != Pose.FALL_FLYING && !stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack))) - { - PlayerModel model = event.getRenderer().getModel(); - - CarryOnOverride overrider = ScriptChecker.getOverride(player); - if (overrider != null) - { - boolean renderRight = overrider.isRenderRightArm(); - boolean renderLeft = overrider.isRenderLeftArm(); - - if (renderRight) - { - renderArmPre(model.rightArm); - renderArmPre(model.rightSleeve); - - } - - if (renderLeft) - { - renderArmPre(model.leftArm); - renderArmPre(model.leftSleeve); - } - } - else - { - renderArmPre(model.rightArm); - renderArmPre(model.leftArm); - renderArmPre(model.leftSleeve); - renderArmPre(model.rightSleeve); - } - } - } - } - - @OnlyIn(Dist.CLIENT) - private void renderArmPost(ModelPart arm, float x, float z, boolean right, boolean sneaking, int light, PoseStack matrix, VertexConsumer builder) - { - matrix.pushPose(); - arm.visible = true; - if (right) - matrix.translate(0.015, 0, 0); - else - matrix.translate(-0.015, 0, 0); - - if (!sneaking) - arm.y = 20; - else - arm.y = 15; - - arm.xRot = x; - arm.yRot = 0; - arm.zRot = -z; - arm.render(matrix, builder, light, 655360); - arm.y = 2; - matrix.popPose(); - } - - @OnlyIn(Dist.CLIENT) - private void renderArmPre(ModelPart arm) - { - arm.visible = false; - } - - public boolean handleMobends() - { - // TODO MOBENDS - // if (ModList.get().isLoaded("mobends")) - // { - // Configuration config = new Configuration(new - // File(CarryOn.CONFIGURATION_FILE.getPath().substring(0, - // CarryOn.CONFIGURATION_FILE.getPath().length() - 16), "mobends.cfg")); - // - // boolean renderPlayer = config.get("animated", "player", - // true).getBoolean(); - // return !renderPlayer; - // } - return true; - } - - public static boolean doSneakCheck(Player player) - { - if (player.getAbilities().flying) - return false; - - return player.isShiftKeyDown() || player.isCrouching(); - } - - public static boolean isChest(Block block) - { - return block == Blocks.CHEST || block == Blocks.ENDER_CHEST || block == Blocks.TRAPPED_CHEST; - } - - @OnlyIn(Dist.CLIENT) - private static PlayerRenderer getRenderPlayer(AbstractClientPlayer player) - { - Minecraft mc = Minecraft.getInstance(); - EntityRenderDispatcher manager = mc.getEntityRenderDispatcher(); - return (PlayerRenderer) manager.getSkinMap().get(player.getModelName()); - } - - @OnlyIn(Dist.CLIENT) - private static PlayerModel getPlayerModel(AbstractClientPlayer player) - { - return getRenderPlayer(player).getModel(); - } - - // @SubscribeEvent - // @OnlyIn(Dist.CLIENT) - // public void hideItems(RenderSpecificHandEvent event) - // { - // ItemStack stack = event.getItemStack(); - // - // if (stack != null && (stack.getItem() == RegistrationHandler.itemTile.get() || - // stack.getItem() == RegistrationHandler.itemEntity.get())) - // { - // event.setCanceled(true); - // } - // } -} diff --git a/old/src/main/java/tschipp/carryon/client/helper/CarryRenderHelper.java b/old/src/main/java/tschipp/carryon/client/helper/CarryRenderHelper.java deleted file mode 100644 index c96206f..0000000 --- a/old/src/main/java/tschipp/carryon/client/helper/CarryRenderHelper.java +++ /dev/null @@ -1,90 +0,0 @@ -package tschipp.carryon.client.helper; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; -import net.minecraft.client.renderer.entity.ItemRenderer; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; -import tschipp.carryon.common.handler.ModelOverridesHandler; -import tschipp.carryon.common.helper.ScriptParseHelper; -import tschipp.carryon.common.scripting.CarryOnOverride; - -public class CarryRenderHelper -{ - public static Vec3 getExactPos(Entity entity, float partialticks) - { - return new Vec3(entity.xOld + (entity.getX() - entity.xOld) * partialticks, entity.yOld + (entity.getY() - entity.yOld) * partialticks, entity.zOld + (entity.getZ() - entity.zOld) * partialticks); - } - - public static float getExactBodyRotationDegrees(LivingEntity entity, float partialticks) - { - if (entity.getVehicle() != null && entity.getVehicle() instanceof LivingEntity) - return -(entity.yHeadRotO + (entity.yHeadRot - entity.yHeadRotO) * partialticks); - else - return -(entity.yBodyRotO + (entity.yBodyRot - entity.yBodyRotO) * partialticks); - } - - public static Quaternion getExactBodyRotation(LivingEntity entity, float partialticks) - { - return Vector3f.YP.rotationDegrees(getExactBodyRotationDegrees(entity, partialticks)); - } - - public static void performOverrideTransformation(PoseStack matrix, CarryOnOverride override) - { - int perspective = getPerspective(); - - float[] translation = ScriptParseHelper.getXYZArray(override.getRenderTranslation()); - float[] rotation = ScriptParseHelper.getXYZArray(override.getRenderRotation()); - float[] scaled = ScriptParseHelper.getScaled(override.getRenderScaled()); - - Quaternion rot = Vector3f.XP.rotationDegrees(rotation[0]); - rot.mul(Vector3f.YP.rotationDegrees(rotation[1])); - rot.mul(Vector3f.ZP.rotationDegrees(rotation[2])); - matrix.mulPose(rot); - - matrix.translate(translation[0], translation[1], perspective == 1 && override.isBlock() ? -translation[2] : translation[2]); - - matrix.scale(scaled[0], scaled[1], scaled[2]); - } - - public static void renderItem(BlockState state, CompoundTag tag, ItemStack stack, ItemStack tileStack, PoseStack matrix, MultiBufferSource buffer, int light, BakedModel model) - { - ItemRenderer renderer = Minecraft.getInstance().getItemRenderer(); - if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) - { - Object override = ModelOverridesHandler.getOverrideObject(state, tag); - - if (override instanceof ItemStack) - { - renderer.render((ItemStack) override, TransformType.NONE, false, matrix, buffer, light, OverlayTexture.NO_OVERLAY, model); - return; - } - } - - renderer.render(tileStack.isEmpty() ? stack : tileStack, TransformType.NONE, false, matrix, buffer, light, OverlayTexture.NO_OVERLAY, model); - } - - @SuppressWarnings("resource") - public static int getPerspective() - { - boolean isThirdPerson = !Minecraft.getInstance().options.getCameraType().isFirstPerson(); // isThirdPerson - boolean isThirdPersonReverse = Minecraft.getInstance().options.getCameraType().isMirrored(); - - if (!isThirdPerson && !isThirdPersonReverse) - return 0; - if (isThirdPerson && !isThirdPersonReverse) - return 1; - return 2; - } -} diff --git a/old/src/main/java/tschipp/carryon/client/keybinds/CarryOnKeybinds.java b/old/src/main/java/tschipp/carryon/client/keybinds/CarryOnKeybinds.java deleted file mode 100644 index 905bdbb..0000000 --- a/old/src/main/java/tschipp/carryon/client/keybinds/CarryOnKeybinds.java +++ /dev/null @@ -1,45 +0,0 @@ -package tschipp.carryon.client.keybinds; - -import net.minecraft.client.KeyMapping; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.player.Player; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.RegisterKeyMappingsEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; -import tschipp.carryon.CarryOn; - -@EventBusSubscriber(modid = CarryOn.MODID, bus = Bus.MOD, value = Dist.CLIENT) -public class CarryOnKeybinds -{ - - public static final String KEYBIND_KEY = "carryOnKeyPressed"; - public static KeyMapping carryKey; - - - @SubscribeEvent - public static void registerKeybinds(RegisterKeyMappingsEvent event) - { - carryKey = new KeyMapping("key.carry.desc", 340, "key.carry.category"); - - event.register(carryKey); - } - - public static boolean isKeyPressed(Player player) - { - CompoundTag tag = player.getPersistentData(); - if (tag != null && tag.contains(KEYBIND_KEY)) - { - return tag.getBoolean(KEYBIND_KEY); - } - return false; - } - - public static void setKeyPressed(Player player, boolean pressed) - { - CompoundTag tag = player.getPersistentData(); - tag.putBoolean(KEYBIND_KEY, pressed); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/capabilities/IPosition.java b/old/src/main/java/tschipp/carryon/common/capabilities/IPosition.java deleted file mode 100644 index 1bc0afe..0000000 --- a/old/src/main/java/tschipp/carryon/common/capabilities/IPosition.java +++ /dev/null @@ -1,16 +0,0 @@ -package tschipp.carryon.common.capabilities; - -import net.minecraft.core.BlockPos; - -public interface IPosition -{ - - public BlockPos getPos(); - - public void setPos(BlockPos pos); - - public boolean isBlockActivated(); - - public void setBlockActivated(boolean b); - -} diff --git a/old/src/main/java/tschipp/carryon/common/capabilities/PositionProvider.java b/old/src/main/java/tschipp/carryon/common/capabilities/PositionProvider.java deleted file mode 100644 index 8221266..0000000 --- a/old/src/main/java/tschipp/carryon/common/capabilities/PositionProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -package tschipp.carryon.common.capabilities; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.CapabilityManager; -import net.minecraftforge.common.capabilities.CapabilityToken; -import net.minecraftforge.common.capabilities.ICapabilitySerializable; -import net.minecraftforge.common.util.LazyOptional; - -public class PositionProvider implements ICapabilitySerializable -{ - - public static final Capability POSITION_CAPABILITY = CapabilityManager.get(new CapabilityToken<>(){}); - - private IPosition instance = new TEPosition();// POSITION_CAPABILITY.getDefaultInstance(); - - @SuppressWarnings("unchecked") - @Override - public LazyOptional getCapability(Capability cap, Direction side) - { - if (cap == POSITION_CAPABILITY) - return (LazyOptional) LazyOptional.of(TEPosition::new); - - return LazyOptional.empty(); - } - - @Override - public CompoundTag serializeNBT() - { - CompoundTag tag = new CompoundTag(); - - tag.putBoolean("blockActivated", this.instance.isBlockActivated()); - tag.putInt("x", this.instance.getPos().getX()); - tag.putInt("y", this.instance.getPos().getY()); - tag.putInt("z", this.instance.getPos().getZ()); - - return tag; - } - - @Override - public void deserializeNBT(CompoundTag nbt) - { - CompoundTag tag = nbt; - - int x = tag.getInt("x"); - int y = tag.getInt("y"); - int z = tag.getInt("z"); - - BlockPos pos = new BlockPos(x, y, z); - - this.instance.setPos(pos); - this.instance.setBlockActivated(tag.getBoolean("blockActivated")); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/capabilities/TEPosition.java b/old/src/main/java/tschipp/carryon/common/capabilities/TEPosition.java deleted file mode 100644 index aca1862..0000000 --- a/old/src/main/java/tschipp/carryon/common/capabilities/TEPosition.java +++ /dev/null @@ -1,35 +0,0 @@ -package tschipp.carryon.common.capabilities; - -import net.minecraft.core.BlockPos; - -public class TEPosition implements IPosition -{ - - private BlockPos pos = new BlockPos(0, 0, 0); - private boolean blockActivated = false; - - @Override - public BlockPos getPos() - { - return this.pos; - } - - @Override - public void setPos(BlockPos pos) - { - this.pos = pos; - } - - @Override - public boolean isBlockActivated() - { - return this.blockActivated; - } - - @Override - public void setBlockActivated(boolean b) - { - this.blockActivated = b; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionClientEvents.java b/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionClientEvents.java deleted file mode 100644 index d3d61bf..0000000 --- a/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionClientEvents.java +++ /dev/null @@ -1,89 +0,0 @@ -package tschipp.carryon.common.capabilities.event; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.ScreenEvent; -import net.minecraftforge.event.TickEvent.PlayerTickEvent; -import net.minecraftforge.event.entity.player.PlayerContainerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.LogicalSide; -import tschipp.carryon.common.capabilities.IPosition; -import tschipp.carryon.common.capabilities.PositionProvider; -import tschipp.carryon.common.capabilities.TEPosition; - -public class PositionClientEvents -{ - - @SuppressWarnings("resource") - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onGui(ScreenEvent.BackgroundRendered event) - { - if (event.getScreen() != null) - { - Player player = Minecraft.getInstance().player; - boolean inventory = event.getScreen() instanceof AbstractContainerScreen; - - if (player != null && inventory && player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) - { - IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); - if (cap.isBlockActivated()) - { - Level level = player.level; - BlockPos pos = cap.getPos(); - if (level != null) - { - BlockEntity te = level.getBlockEntity(pos); - if (te == null) - { - // player.openContainer = null; - Minecraft.getInstance().screen = null; - // Minecraft.getInstance().fo; - cap.setBlockActivated(false); - cap.setPos(new BlockPos(0, 0, 0)); - } - } - } - } - } - } - - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onGuiClose(PlayerContainerEvent.Close event) - { - Player player = event.getEntity(); - if (player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) - { - IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); - cap.setBlockActivated(false); - cap.setPos(new BlockPos(0, 0, 0)); - } - } - - @OnlyIn(Dist.CLIENT) - @SubscribeEvent - public void onPlayerTick(PlayerTickEvent event) - { - if (event.side == LogicalSide.CLIENT) - { - Player player = event.player; - if (player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) - { - IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); - if (cap.isBlockActivated() && Minecraft.getInstance().screen == null) - { - cap.setBlockActivated(false); - cap.setPos(new BlockPos(0, 0, 0)); - } - } - } - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionCommonEvents.java b/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionCommonEvents.java deleted file mode 100644 index 81081a7..0000000 --- a/old/src/main/java/tschipp/carryon/common/capabilities/event/PositionCommonEvents.java +++ /dev/null @@ -1,50 +0,0 @@ -package tschipp.carryon.common.capabilities.event; - -import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.event.AttachCapabilitiesEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import tschipp.carryon.CarryOn; -import tschipp.carryon.common.capabilities.IPosition; -import tschipp.carryon.common.capabilities.PositionProvider; -import tschipp.carryon.common.capabilities.TEPosition; - -public class PositionCommonEvents -{ - - @SubscribeEvent - public void onAttachCaps(AttachCapabilitiesEvent event) - { - if (event.getObject() instanceof Player) - { - event.addCapability(new ResourceLocation(CarryOn.MODID, "position"), new PositionProvider()); - } - - } - - @SubscribeEvent - public void onBlockRight(PlayerInteractEvent.RightClickBlock event) - { - BlockPos pos = event.getPos(); - Level level = event.getLevel(); - Player player = event.getEntity(); - - if (event.isCanceled() || player == null || player instanceof FakePlayer) - return; - - BlockEntity te = level.getBlockEntity(pos); - if (te != null && player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) - { - IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); - cap.setBlockActivated(true); - cap.setPos(pos); - } - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/command/CommandCarryOn.java b/old/src/main/java/tschipp/carryon/common/command/CommandCarryOn.java deleted file mode 100644 index aafc3dc..0000000 --- a/old/src/main/java/tschipp/carryon/common/command/CommandCarryOn.java +++ /dev/null @@ -1,122 +0,0 @@ -package tschipp.carryon.common.command; - -import java.util.Collection; -import java.util.Collections; - -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.Commands; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.PacketDistributor; -import tschipp.carryon.CarryOn; -import tschipp.carryon.common.handler.CustomPickupOverrideHandler; -import tschipp.carryon.common.handler.ModelOverridesHandler; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.item.ItemCarryonBlock; -import tschipp.carryon.common.item.ItemCarryonEntity; -import tschipp.carryon.network.client.CarrySlotPacket; - -public class CommandCarryOn -{ - public static void register(CommandDispatcher dispatcher) - { - LiteralArgumentBuilder builder = Commands.literal("carryon") - - .then(Commands.literal("debug").executes(cmd -> handleDebug(cmd.getSource()))) - - .then(Commands.literal("clear").executes(cmd -> handleClear(cmd.getSource(), Collections.singleton(cmd.getSource().getPlayerOrException())))) - - .then(Commands.literal("clear").then(Commands.argument("target", EntityArgument.players()).requires(src -> src.hasPermission(2)).executes(cmd -> handleClear(cmd.getSource(), EntityArgument.getPlayers(cmd, "target"))))) - - ; - - dispatcher.register(builder); - - } - - private static int handleDebug(CommandSourceStack source) - { - try - { - if (source.getEntityOrException() != null) - { - ServerPlayer player = source.getPlayerOrException(); - - ItemStack main = player.getMainHandItem(); - if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemTile.get()) - { - source.sendSuccess(Component.literal("Block: " + ItemCarryonBlock.getBlock(main)), true); - source.sendSuccess(Component.literal("BlockState: " + ItemCarryonBlock.getBlockState(main)), true); - source.sendSuccess(Component.literal("ItemStack: " + ItemCarryonBlock.getItemStack(main)), true); - - if (ModelOverridesHandler.hasCustomOverrideModel(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))) - source.sendSuccess(Component.literal("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))), true); - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(main))) - source.sendSuccess(Component.literal("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(main))), true); - - CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(main)); - CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(main)); - CarryOn.LOGGER.info("ItemStack: " + ItemCarryonBlock.getItemStack(main)); - - if (ModelOverridesHandler.hasCustomOverrideModel(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))) - CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))); - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(main))) - CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(main))); - - return 1; - } - else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity.get()) - { - source.sendSuccess(Component.literal("Entity: " + ItemCarryonEntity.getEntity(main, player.level)), true); - source.sendSuccess(Component.literal("Entity Name: " + ItemCarryonEntity.getEntityName(main)), true); - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.level))) - source.sendSuccess(Component.literal("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.level))), true); - - CarryOn.LOGGER.info("Entity: " + ItemCarryonEntity.getEntity(main, player.level)); - CarryOn.LOGGER.info("Entity Name: " + ItemCarryonEntity.getEntityName(main)); - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.level))) - CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.level))); - - return 1; - } - } - - } - catch (CommandSyntaxException e) - { - } - - return 0; - } - - private static int handleClear(CommandSourceStack source, Collection players) - { - for (ServerPlayer player : players) - { - int cleared = 0; - cleared += player.getInventory().clearOrCountMatchingItems(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get(), 64, player.inventoryMenu.getCraftSlots()); // TODO - cleared += player.getInventory().clearOrCountMatchingItems(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity.get(), 64, player.inventoryMenu.getCraftSlots()); - - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> player), new CarrySlotPacket(9, player.getId())); - - if (cleared != 1) - source.sendSuccess(Component.literal("Cleared " + cleared + " Items!"), true); - else - source.sendSuccess(Component.literal("Cleared " + cleared + " Item!"), true); - - return 1; - } - - return 0; - } -} diff --git a/old/src/main/java/tschipp/carryon/common/config/CarryOnConfig.java b/old/src/main/java/tschipp/carryon/common/config/CarryOnConfig.java deleted file mode 100644 index 15151e0..0000000 --- a/old/src/main/java/tschipp/carryon/common/config/CarryOnConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package tschipp.carryon.common.config; - -public class CarryOnConfig -{ - - public static Configs.Settings settings = new Configs.Settings(); - - public static Configs.Blacklist blacklist = new Configs.Blacklist(); - - public static Configs.WhiteList whitelist = new Configs.WhiteList(); - - public static Configs.ModelOverrides modelOverrides = new Configs.ModelOverrides(); - - public static Configs.CustomPickupConditions customPickupConditions = new Configs.CustomPickupConditions(); - -} diff --git a/old/src/main/java/tschipp/carryon/common/config/Configs.java b/old/src/main/java/tschipp/carryon/common/config/Configs.java deleted file mode 100644 index 85f02c5..0000000 --- a/old/src/main/java/tschipp/carryon/common/config/Configs.java +++ /dev/null @@ -1,329 +0,0 @@ -package tschipp.carryon.common.config; - -import java.util.Arrays; -import java.util.List; - -import com.electronwill.nightconfig.core.CommentedConfig; -import com.electronwill.nightconfig.core.file.CommentedFileConfig; - -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; -import net.minecraftforge.common.ForgeConfigSpec.ConfigValue; -import net.minecraftforge.common.ForgeConfigSpec.DoubleValue; -import net.minecraftforge.common.ForgeConfigSpec.IntValue; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; -import net.minecraftforge.fml.event.config.ModConfigEvent; -import tschipp.carryon.CarryOn; -import tschipp.carryon.common.handler.ListHandler; - -@Mod.EventBusSubscriber(modid = CarryOn.MODID, bus = Bus.MOD) -public class Configs { - - private static final ForgeConfigSpec.Builder SERVER_BUILDER = new ForgeConfigSpec.Builder(); - private static final ForgeConfigSpec.Builder CLIENT_BUILDER = new ForgeConfigSpec.Builder(); - - public static final ForgeConfigSpec SERVER_CONFIG; - public static final ForgeConfigSpec CLIENT_CONFIG; - - public static boolean SERVER_LOADED = false; - - static { - - Settings.init(SERVER_BUILDER, CLIENT_BUILDER); - Blacklist.init(SERVER_BUILDER, CLIENT_BUILDER); - WhiteList.init(SERVER_BUILDER, CLIENT_BUILDER); - ModelOverrides.init(SERVER_BUILDER, CLIENT_BUILDER); - CustomPickupConditions.init(SERVER_BUILDER, CLIENT_BUILDER); - - SERVER_CONFIG = SERVER_BUILDER.build(); - CLIENT_CONFIG = CLIENT_BUILDER.build(); - } - - @SubscribeEvent - public static void onLoad(final ModConfigEvent event) { - if (event.getConfig().getModId().equals(CarryOn.MODID) && event.getConfig().getSpec() == SERVER_CONFIG) { - SERVER_LOADED = true; - - CommentedConfig cfg = event.getConfig().getConfigData(); - - if (cfg instanceof CommentedFileConfig cfig) { - cfig.load(); - ListHandler.initConfigLists(); - } - } - } - -// @SubscribeEvent -// public static void onConfigChanged(ModConfigEvent.Reloading event) { -// if (event.getConfig().getModId().equals(CarryOn.MODID) && event.getConfig().getSpec() == SERVER_CONFIG) { -// -// CommentedConfig cfg = event.getConfig().getConfigData(); -// -// if (cfg instanceof CommentedFileConfig) -// { -// ((CommentedFileConfig) cfg).load(); -// ListHandler.initConfigLists(); -// } -// } -// } - - public static class Settings { - public static BooleanValue facePlayer; - - public static BooleanValue heavyTiles; - - public static BooleanValue pickupAllBlocks; - - public static BooleanValue slownessInCreative; - - public static DoubleValue maxDistance; - - public static DoubleValue maxEntityWidth; - - public static DoubleValue maxEntityHeight; - - public static BooleanValue pickupHostileMobs; - - public static BooleanValue heavyEntities; - - public static DoubleValue blockSlownessMultiplier; - - public static DoubleValue entitySlownessMultiplier; - - public static BooleanValue renderArms; - - public static BooleanValue allowBabies; - - public static BooleanValue useWhitelistBlocks; - - public static BooleanValue useWhitelistEntities; - - public static BooleanValue useWhitelistStacking; - - public static BooleanValue hitWhileCarrying; - - public static BooleanValue dropCarriedWhenHit; - - public static BooleanValue useScripts; - - public static BooleanValue stackableEntities; - - public static IntValue maxEntityStackLimit; - - public static BooleanValue entitySizeMattersStacking; - - public static void init(ForgeConfigSpec.Builder s, ForgeConfigSpec.Builder c) { - c.comment("Settings"); - s.comment("Settings"); - - s.push("settings"); - c.push("settings"); - - maxDistance = s.comment("Maximum distance from where Blocks and Entities can be picked up") - .defineInRange("maxDistance", 2.5, 0, Double.MAX_VALUE); - - maxEntityWidth = s.comment("Max width of entities that can be picked up in survival mode") - .defineInRange("maxEntityWidth", 1.5, 0, 10); - - maxEntityHeight = s.comment("Max height of entities that can be picked up in survival mode") - .defineInRange("maxEntityHeight", 2.0, 0, 10); - - blockSlownessMultiplier = s.comment("Slowness multiplier for blocks") - .defineInRange("blockSlownessMultiplier", 1, 0, Double.MAX_VALUE); - - entitySlownessMultiplier = s.comment("Slowness multiplier for entities") - .defineInRange("entitySlownessMultiplier", 1, 0, Double.MAX_VALUE); - - maxEntityStackLimit = s.comment("Maximum stack limit for entities").defineInRange("maxEntityStackLimit", 10, - 1, Integer.MAX_VALUE); - - facePlayer = c.comment("If the front of the Tile Entities should face the player or should face outward") - .define("facePlayer", false); - - heavyTiles = s.comment("More complex Tile Entities slow down the player more").define("heavyTiles", true); - - pickupAllBlocks = s.comment("Allow all blocks to be picked up, not just Tile Entites") - .define("pickupAllBlocks", false); - - slownessInCreative = s.comment("Whether Blocks and Entities slow the creative player down when carried") - .define("slownessInCreative", true); - - pickupHostileMobs = s.comment("Whether hostile mobs should be able to picked up in survival mode") - .define("pickupHostileMobs", false); - - heavyEntities = s.comment("Larger Entities slow down the player more").define("heavyEntities", true); - - renderArms = c.comment("Arms should render on sides when carrying").define("renderArms", true); - - allowBabies = s - .comment("Allow babies to be carried even when adult mob is blacklisted (or not whitelisted)") - .define("allowBabies", false); - - useWhitelistBlocks = s.comment("Use Whitelist instead of Blacklist for Blocks").define("useWhitelistBlocks", - false); - - useWhitelistEntities = s.comment("Use Whitelist instead of Blacklist for Entities") - .define("useWhitelistEntities", false); - - useWhitelistStacking = s.comment("Use Whitelist instead of Blacklist for Stacking") - .define("useWhitelistStacking", false); - - hitWhileCarrying = s.comment("Whether the player can hit blocks and entities while carrying or not") - .define("hitWhileCarrying", false); - - dropCarriedWhenHit = s.comment("Whether the player drops the carried object when hit or not") - .define("dropCarriedWhenHit", false); - - useScripts = s.comment( - "Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will increase your performance") - .worldRestart().define("useScripts", false); - - stackableEntities = s.comment("Allows entities to be stacked using Carry On").define("stackableEntities", - true); - - entitySizeMattersStacking = s.comment("Whether entities' size matters when stacking or not") - .define("stackableEntities", true); - - s.pop(); - c.pop(); - - } - - } - - public static class WhiteList { - public static ConfigValue> allowedEntities; - - public static ConfigValue> allowedBlocks; - - public static ConfigValue> allowedStacking; - - public static void init(ForgeConfigSpec.Builder s, ForgeConfigSpec.Builder c) { - s.comment( - "Whitelist. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Black---and-Whitelist-Config"); - - allowedEntities = s.comment("Entities that CAN be picked up (useWhitelistEntities must be true)") - .defineList("whitelist.allowedEntities", Arrays.asList(), - obj -> obj instanceof String ? true : false); - - allowedBlocks = s.comment("Blocks that CAN be picked up (useWhitelistBlocks must be true)").defineList( - "whitelist.allowedBlocks", Arrays.asList(), obj -> obj instanceof String ? true : false); - - allowedStacking = s.comment( - "Entities that CAN have other entities stacked on top of them (useWhitelistStacking must be true)") - .defineList("whitelist.allowedStacking", Arrays.asList(), - obj -> obj instanceof String ? true : false); - } - } - - public static class Blacklist { - public static ConfigValue> forbiddenTiles; - - public static ConfigValue> forbiddenEntities; - - public static ConfigValue> forbiddenStacking; - - public static void init(ForgeConfigSpec.Builder s, ForgeConfigSpec.Builder c) { - s.comment( - "Blacklist. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Black---and-Whitelist-Config"); - - forbiddenTiles = s.comment("Blocks that cannot be picked up").defineList("blacklist.forbiddenTiles", - Arrays.asList("#forge:immovable", "#forge:relocation_not_supported", "minecraft:end_portal", - "minecraft:end_gateway", "minecraft:tall_grass", "minecraft:large_fern", "minecraft:peony", - "minecraft:rose_bush", "minecraft:lilac", "minecraft:sunflower", "minecraft:*_bed", - "minecraft:oak_door", "minecraft:iron_door", "minecraft:spruce_door", - "minecraft:birch_door", "minecraft:jungle_door", "minecraft:acacia_door", - "minecraft:dark_oak_door", "minecraft:waterlily", "minecraft:cake", - "minecraft:nether_portal", "minecraft:tall_seagrass", "animania:block_trough", - "animania:block_invisiblock", "colossalchests:*", "ic2:*", "bigreactors:*", "forestry:*", - "tconstruct:*", "rustic:*", "botania:*", "astralsorcery:*", "quark:colored_bed_*", - "immersiveengineering:*", "embers:block_furnace", "embers:ember_bore", - "embers:ember_activator", "embers:mixer", "embers:heat_coil", "embers:large_tank", - "embers:crystal_cell", "embers:alchemy_pedestal", "embers:boiler", "embers:combustor", - "embers:catalzyer", "embers:field_chart", "embers:inferno_forge", - "storagedrawers:framingtable", "skyresources:*", "lootbags:*", "exsartagine:*", - "aquamunda:tank", "opencomputers:*", "malisisdoors:*", "industrialforegoing:*", - "minecolonies:*", "thaumcraft:pillar*", "thaumcraft:infernal_furnace", - "thaumcraft:placeholder*", "thaumcraft:infusion_matrix", "thaumcraft:golem_builder", - "thaumcraft:thaumatorium*", "magneticraft:oil_heater", "magneticraft:solar_panel", - "magneticraft:steam_engine", "magneticraft:shelving_unit", "magneticraft:grinder", - "magneticraft:sieve", "magneticraft:solar_tower", "magneticraft:solar_mirror", - "magneticraft:container", "magneticraft:pumpjack", "magneticraft:solar_panel", - "magneticraft:refinery", "magneticraft:oil_heater", "magneticraft:hydraulic_press", - "magneticraft:multiblock_gap", "refinedstorage:*", "mcmultipart:*", "enderstorage:*", - "betterstorage:*", "practicallogistics2:*", "wearablebackpacks:*", "rftools:screen", - "rftools:creative_screen", "create:*", "magic_doorknob:*", "iceandfire:*", "ftbquests:*", - "waystones:*"), - obj -> obj instanceof String); - - forbiddenEntities = s.comment("Entities that cannot be picked up").defineList("blacklist.forbiddenEntities", - Arrays.asList("minecraft:end_crystal", "minecraft:ender_dragon", "minecraft:ghast", - "minecraft:shulker", "minecraft:leash_knot", "minecraft:armor_stand", - "minecraft:item_frame", "minecraft:painting", "minecraft:shulker_bullet", - "animania:hamster", "animania:ferret*", "animania:hedgehog*", "animania:cart", - "animania:wagon", "mynko:*", "pixelmon:*", "mocreatures:*", "quark:totem", "vehicle:*"), - obj -> obj instanceof String ? true : false); - - forbiddenStacking = s.comment("Entities that cannot have other entities stacked on top of them").defineList( - "blacklist.forbiddenStacking", Arrays.asList("minecraft:horse"), - obj -> obj instanceof String ? true : false); - } - - } - - public static class ModelOverrides { - public static ConfigValue> modelOverrides; - - public static void init(ForgeConfigSpec.Builder s, ForgeConfigSpec.Builder c) { - c.comment( - "Model Overrides. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Model-Override-Config"); - - modelOverrides = c.comment("Model Overrides based on NBT or on Meta. Advanced Users Only!").defineList( - "modeloverrides.overrides", - Arrays.asList("minecraft:hopper->(block)minecraft:hopper", - "minecraft:comparator->(block)minecraft:comparator", - "minecraft:repeater->(block)minecraft:repeater", - "minecraft:cauldron->(block)minecraft:cauldron", - "minecraft:brewing_stand->(item)minecraft:brewing_stand", - "minecraft:flower_pot->(block)minecraft:flower_pot", - "minecraft:sugar_cane->(block)minecraft:sugar_cane", - "minecraft:redstone_wire->(item)minecraft:redstone", - "animania:block_nest->(block)animania:block_nest", - "animania:cheese_mold;0->(block)animania:cheese_mold;0", - "animania:cheese_mold;1->(block)animania:cheese_mold;1", - "animania:cheese_mold;2->(block)animania:cheese_mold;2", - "animania:cheese_mold;3->(block)animania:cheese_mold;3", - "animania:cheese_mold;4->(block)animania:cheese_mold;4", - "animania:cheese_mold;5->(block)animania:cheese_mold;5", - "animania:cheese_mold;6->(block)animania:cheese_mold;6", - "animania:cheese_mold;7->(block)animania:cheese_mold;7", - "animania:cheese_mold;8->(block)animania:cheese_mold;8", - "animania:cheese_mold;9->(block)animania:cheese_mold;9", - "animania:cheese_mold;10->(block)animania:cheese_mold;10"), - obj -> obj instanceof String ? true : false); - } - } - - public static class CustomPickupConditions { - - public static ConfigValue> customPickupConditionsBlocks; - - public static ConfigValue> customPickupConditionsEntities; - - public static void init(ForgeConfigSpec.Builder s, ForgeConfigSpec.Builder c) { - s.comment( - "Custom Pickup Conditions. Read about the format here: https://github.com/Tschipp/CarryOn/wiki/Custom-Pickup-Condition-Config"); - - customPickupConditionsBlocks = s.comment("Custom Pickup Conditions for Blocks").defineList( - "custom_pickup_conditions.customPickupConditionsBlocks", Arrays.asList(), - obj -> obj instanceof String ? true : false); - - customPickupConditionsEntities = s.comment("Custom Pickup Conditions for Entities").defineList( - "custom_pickup_conditions.customPickupConditionsEntities", Arrays.asList(), - obj -> obj instanceof String ? true : false); - } - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/event/IMCEvents.java b/old/src/main/java/tschipp/carryon/common/event/IMCEvents.java deleted file mode 100644 index 21d8926..0000000 --- a/old/src/main/java/tschipp/carryon/common/event/IMCEvents.java +++ /dev/null @@ -1,59 +0,0 @@ -package tschipp.carryon.common.event; - -import java.util.stream.Stream; - -import net.minecraftforge.eventbus.api.EventPriority; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.InterModComms; -import net.minecraftforge.fml.InterModComms.IMCMessage; -import net.minecraftforge.fml.event.lifecycle.FMLDedicatedServerSetupEvent; -import tschipp.carryon.CarryOn; -import tschipp.carryon.common.handler.ListHandler; -import tschipp.carryon.common.handler.ModelOverridesHandler; - -public class IMCEvents -{ - - @SubscribeEvent(priority = EventPriority.LOW) - public void serverLoad(FMLDedicatedServerSetupEvent event) - { - Stream messages = InterModComms.getMessages(CarryOn.MODID); - - messages.forEach(msg -> { - - String method = msg.method(); - Object obj = msg.messageSupplier().get(); - - if (!(obj instanceof String str)) - return; - - switch (method) - { - case "blacklistBlock": - ListHandler.FORBIDDEN_TILES.add(str); - break; - case "blacklistEntity": - ListHandler.FORBIDDEN_ENTITIES.add(str); - break; - case "whitelistBlock": - ListHandler.ALLOWED_TILES.add(str); - break; - case "whitelistEntity": - ListHandler.ALLOWED_ENTITIES.add(str); - break; - case "blacklistStacking": - ListHandler.FORBIDDEN_STACKING.add(str); - break; - case "whitelistStacking": - ListHandler.ALLOWED_STACKING.add(str); - break; - case "addModelOverride": - ModelOverridesHandler.parseOverride(str, 0); - break; - } - - }); - - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/event/ItemEntityEvents.java b/old/src/main/java/tschipp/carryon/common/event/ItemEntityEvents.java deleted file mode 100644 index b85ec59..0000000 --- a/old/src/main/java/tschipp/carryon/common/event/ItemEntityEvents.java +++ /dev/null @@ -1,270 +0,0 @@ -package tschipp.carryon.common.event; - -import java.util.List; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.animal.Animal; -import net.minecraft.world.entity.animal.horse.Horse; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.material.Material; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.event.entity.EntityJoinLevelEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.eventbus.api.Event.Result; -import net.minecraftforge.eventbus.api.EventPriority; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.handler.ListHandler; -import tschipp.carryon.common.handler.PickupHandler; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.item.ItemCarryonEntity; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptChecker; - -public class ItemEntityEvents -{ - - @SubscribeEvent(priority = EventPriority.HIGH) - public void onBlockClick(PlayerInteractEvent.RightClickBlock event) - { - Player player = event.getEntity(); - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) - { - player.getPersistentData().remove("carrySlot"); - event.setUseBlock(Result.DENY); - - if (!player.level.isClientSide) - { - CarryOnOverride override = ScriptChecker.getOverride(player); - if (override != null) - { - String command = override.getCommandPlace(); - - if (command != null) - player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command); - } - } - } - - } - - @SubscribeEvent(priority = EventPriority.HIGH) - public void onItemDropped(EntityJoinLevelEvent event) - { - Entity e = event.getEntity(); - Level level = event.getLevel(); - if (e instanceof net.minecraft.world.entity.item.ItemEntity eitem) - { - ItemStack stack = eitem.getItem(); - Item item = stack.getItem(); - if (item == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) - { - BlockPos pos = eitem.blockPosition(); - Entity entity = ItemCarryonEntity.getEntity(stack, level); - entity.setPos(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); - level.addFreshEntity(entity); - - ItemCarryonEntity.clearEntityData(stack); - eitem.setItem(ItemStack.EMPTY); - } - } - } - - @SubscribeEvent(priority = EventPriority.HIGH) - public void onEntityRightClick(PlayerInteractEvent.EntityInteract event) - { - Player player = event.getEntity(); - - if (player instanceof ServerPlayer) - { - ItemStack main = player.getMainHandItem(); - ItemStack off = player.getOffhandItem(); - Level level = event.getLevel(); - Entity entity = event.getTarget(); - BlockPos pos = entity.blockPosition(); - - if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player)) - { - ItemStack stack = new ItemStack(RegistrationHandler.itemEntity.get()); - - if (entity.invulnerableTime == 0) - { - if (entity instanceof Animal) - ((Animal) entity).dropLeash(true, true); - - if (PickupHandler.canPlayerPickUpEntity((ServerPlayer) player, entity) && ItemCarryonEntity.storeEntityData(entity, level, stack)) - { - LazyOptional handler = entity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); - - handler.ifPresent(hand -> { - for (int i = 0; i < hand.getSlots(); i++) - { - hand.extractItem(i, 64, false); - } - }); - - CarryOnOverride override = ScriptChecker.inspectEntity(entity); - int overrideHash = 0; - if (override != null) - overrideHash = override.hashCode(); - - ItemEvents.sendPacket(player, player.getInventory().selected, overrideHash); - - if (entity instanceof LivingEntity) - ((LivingEntity) entity).setHealth(0); - - entity.ejectPassengers(); - entity.setPos(entity.getX(), 0, entity.getZ()); - entity.discard(); - player.setItemInHand(InteractionHand.MAIN_HAND, stack); - event.setCanceled(true); - event.setCancellationResult(InteractionResult.FAIL); - } - } - - } - else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(main) && !CarryOnKeybinds.isKeyPressed(player) && Settings.stackableEntities.get()) - { - Entity entityHeld = ItemCarryonEntity.getEntity(main, level); - - if (entity.invulnerableTime == 0 && entityHeld instanceof LivingEntity) - { - - if (!level.isClientSide && entityHeld.getUUID() != entity.getUUID() && entity.isAlive()) - { - - double sizeHeldEntity = entityHeld.getBbHeight() * entityHeld.getBbWidth(); - double distance = pos.distSqr(player.blockPosition()); - Entity lowestEntity = entity.getRootVehicle(); - int numPassengers = getAllPassengers(lowestEntity); - if (numPassengers < Settings.maxEntityStackLimit.get() - 1) - { - Entity topEntity = getTopPassenger(lowestEntity); - - if (Settings.useWhitelistStacking.get() ? ListHandler.isStackingAllowed(topEntity) : !ListHandler.isStackingForbidden(topEntity)) - { - double sizeEntity = topEntity.getBbHeight() * topEntity.getBbWidth(); - if (Settings.entitySizeMattersStacking.get() && sizeHeldEntity <= sizeEntity || !Settings.entitySizeMattersStacking.get()) - { - if (topEntity instanceof Horse horse) - { - horse.setTamed(true); - } - - if (distance < 6) - { - double tempX = entity.getX(); - double tempY = entity.getY(); - double tempZ = entity.getZ(); - entityHeld.setPos(tempX, tempY + 2.6, tempZ); - level.addFreshEntity(entityHeld); - entityHeld.startRiding(topEntity, false); - entityHeld.teleportTo(tempX, tempY, tempZ); - } - else - { - entityHeld.setPos(entity.getX(), entity.getY(), entity.getZ()); - level.addFreshEntity(entityHeld); - entityHeld.startRiding(topEntity, false); - } - - ItemCarryonEntity.clearEntityData(main); - player.setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); - ItemEvents.sendPacket(player, 9, 0); - event.setCanceled(true); - event.setCancellationResult(InteractionResult.FAIL); - level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.HORSE_SADDLE, SoundSource.PLAYERS, 0.5F, 1.5F); - } - else - { - level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BASS, SoundSource.PLAYERS, 0.5F, 1.5F); - } - } - } - else - { - level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BASS, SoundSource.PLAYERS, 0.5F, 1.5F); - } - } - - } - - } - } - - } - - public static int getAllPassengers(Entity entity) - { - int passengers = 0; - while (entity.isVehicle()) - { - List pass = entity.getPassengers(); - if (!pass.isEmpty()) - { - entity = pass.get(0); - passengers++; - } - } - - return passengers; - } - - public static Entity getTopPassenger(Entity entity) - { - Entity top = entity; - while (entity.isVehicle()) - { - List pass = entity.getPassengers(); - if (!pass.isEmpty()) - { - entity = pass.get(0); - top = entity; - } - } - - return top; - } - - @SubscribeEvent - public void onLivingUpdate(LivingTickEvent event) - { - LivingEntity entity = event.getEntity(); - Level level = entity.level; - ItemStack main = entity.getMainHandItem(); - if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(main)) - { - BlockPos pos = entity.blockPosition(); - BlockPos below = pos.relative(Direction.DOWN); - - if (level.getBlockState(pos).getMaterial() == Material.WATER || level.getBlockState(below).getMaterial() == Material.WATER) - { - Entity contained = ItemCarryonEntity.getEntity(main, level); - if (contained != null) - { - float height = contained.getBbWidth(); - float width = contained.getBbWidth(); - - entity.push(0, -0.01 * height * width, 0); - } - } - } - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/event/ItemEvents.java b/old/src/main/java/tschipp/carryon/common/event/ItemEvents.java deleted file mode 100644 index cba0ba7..0000000 --- a/old/src/main/java/tschipp/carryon/common/event/ItemEvents.java +++ /dev/null @@ -1,547 +0,0 @@ -package tschipp.carryon.common.event; - -import java.util.Optional; - -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.ClickEvent; -import net.minecraft.network.chat.ClickEvent.Action; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.Container; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.context.DirectionalPlaceContext; -import net.minecraft.world.level.GameRules; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.event.RegisterCommandsEvent; -import net.minecraftforge.event.TagsUpdatedEvent; -import net.minecraftforge.event.entity.EntityJoinLevelEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; -import net.minecraftforge.event.entity.player.AttackEntityEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; -import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent; -import net.minecraftforge.event.entity.player.PlayerEvent.StartTracking; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.level.BlockEvent.BreakEvent; -import net.minecraftforge.event.level.LevelEvent; -import net.minecraftforge.eventbus.api.Event.Result; -import net.minecraftforge.eventbus.api.EventPriority; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.event.lifecycle.FMLDedicatedServerSetupEvent; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.network.PacketDistributor; -import net.minecraftforge.network.PacketDistributor.TargetPoint; -import tschipp.carryon.CarryOn; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.command.CommandCarryOn; -import tschipp.carryon.common.config.Configs; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.handler.CustomPickupOverrideHandler; -import tschipp.carryon.common.handler.ListHandler; -import tschipp.carryon.common.handler.PickupHandler; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.item.ItemCarryonBlock; -import tschipp.carryon.common.item.ItemCarryonEntity; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptChecker; -import tschipp.carryon.common.scripting.ScriptReader; -import tschipp.carryon.network.client.CarrySlotPacket; -import tschipp.carryon.network.client.ScriptReloadPacket; - -@EventBusSubscriber(modid = CarryOn.MODID) -public class ItemEvents -{ - @SubscribeEvent(priority = EventPriority.HIGH) - public void onBlockClick(PlayerInteractEvent.RightClickBlock event) - { - if (event.isCanceled()) - return; - - Player player = event.getEntity(); - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack)) - { - player.getPersistentData().remove("carrySlot"); - event.setUseBlock(Result.DENY); - - if (!player.level.isClientSide) - { - CarryOnOverride override = ScriptChecker.getOverride(player); - if (override != null) - { - String command = override.getCommandPlace(); - - if (command != null && !command.isEmpty()) - player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command); - } - } - } - - } - - @SubscribeEvent(priority = EventPriority.HIGH) - public void onItemDropped(EntityJoinLevelEvent event) - { - Entity e = event.getEntity(); - Level level = event.getLevel(); - if (e instanceof net.minecraft.world.entity.item.ItemEntity eitem) - { - ItemStack stack = eitem.getItem(); - Item item = stack.getItem(); - if (item == RegistrationHandler.itemTile.get() && ItemCarryonBlock.hasTileData(stack)) - { - BlockPos pos = eitem.blockPosition(); - BlockPos finalPos = pos; - BlockPlaceContext context = new DirectionalPlaceContext(level, pos, Direction.DOWN, stack, Direction.UP); - - if (!level.getBlockState(pos).canBeReplaced(context) || !context.canPlace()) - { - for (Direction facing : Direction.values()) - { - BlockPos offsetPos = pos.relative(facing); - BlockPlaceContext newContext = new DirectionalPlaceContext(level, offsetPos, Direction.DOWN, stack, Direction.UP); - if (level.getBlockState(offsetPos).canBeReplaced(newContext) && newContext.canPlace()) - { - finalPos = offsetPos; - break; - } - } - } - level.setBlockAndUpdate(finalPos, ItemCarryonBlock.getBlockState(stack)); - BlockEntity tile = level.getBlockEntity(finalPos); - if (tile != null) - { - var nbt = ItemCarryonBlock.getTileData(stack); - ItemCarryonBlock.updateTileLocation(nbt, finalPos); - tile.load(nbt); - } - ItemCarryonBlock.clearTileData(stack); - eitem.setItem(ItemStack.EMPTY); - } - - // BlockPos pos = new BlockPos(Math.floor(eitem.getPosX()), - // Math.floor(eitem.getPosY()), Math.floor(eitem.getPosZ())); - // if (positions.containsKey(pos)) - // { - // event.setCanceled(true); - // } - } - - } - - @SubscribeEvent - public void onPlayerLogin(PlayerLoggedInEvent event) - { - if (event.getEntity() instanceof Player) - { - Player player = event.getEntity(); - Level level = player.getCommandSenderWorld(); - - ItemStack carried = player.getMainHandItem(); - if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile.get() || carried.getItem() == RegistrationHandler.itemEntity.get()) - { - if (carried.getItem() == RegistrationHandler.itemTile.get()) - { - CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), level, player.blockPosition(), ItemCarryonBlock.getTileData(carried)); - if (override != null) - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new CarrySlotPacket(player.getInventory().selected, player.getId(), override.hashCode())); - else - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new CarrySlotPacket(player.getInventory().selected, player.getId())); - } - else - { - CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, level)); - if (override != null) - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new CarrySlotPacket(player.getInventory().selected, player.getId(), override.hashCode())); - else - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new CarrySlotPacket(player.getInventory().selected, player.getId())); - - } - } - - } - if (event.getEntity() instanceof ServerPlayer) - { - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) event.getEntity()), new ScriptReloadPacket(ScriptReader.OVERRIDES.values())); - } - } - - @SubscribeEvent - public void serverLoad(RegisterCommandsEvent event) - { - CommandCarryOn.register(event.getDispatcher()); - } - - @SubscribeEvent - public void serverLoad(FMLDedicatedServerSetupEvent event) - { - CustomPickupOverrideHandler.initPickupOverrides(); - } - - @SubscribeEvent - public void reloadTags(TagsUpdatedEvent event) - { - ListHandler.initConfigLists(); - } - - @SubscribeEvent - public void unloadWorld(LevelEvent.Unload event) - { - Configs.SERVER_LOADED = false; - } - - @SubscribeEvent - public void onEntityStartTracking(StartTracking event) - { - Entity e = event.getTarget(); - Player tracker = event.getEntity(); - - if (e instanceof Player player && tracker instanceof ServerPlayer) - { - Level level = player.getCommandSenderWorld(); - - ItemStack carried = player.getMainHandItem(); - if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile.get() || carried.getItem() == RegistrationHandler.itemEntity.get()) - { - if (carried.getItem() == RegistrationHandler.itemTile.get()) - { - CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), level, player.blockPosition(), ItemCarryonBlock.getTileData(carried)); - if (override != null) - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) tracker), new CarrySlotPacket(player.getInventory().selected, player.getId(), override.hashCode())); - else - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) tracker), new CarrySlotPacket(player.getInventory().selected, player.getId())); - } - else - { - CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, level)); - if (override != null) - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) tracker), new CarrySlotPacket(player.getInventory().selected, player.getId(), override.hashCode())); - else - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) tracker), new CarrySlotPacket(player.getInventory().selected, player.getId())); - } - } - - } - } - - @SubscribeEvent - public void harvestSpeed(BreakSpeed event) - { - Player player = event.getEntity(); - if (player != null && !Settings.hitWhileCarrying.get()) - { - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() || stack.getItem() == RegistrationHandler.itemEntity.get())) - event.setNewSpeed(0); - } - } - - @SubscribeEvent - public void attackEntity(AttackEntityEvent event) - { - Player player = event.getEntity(); - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && !Settings.hitWhileCarrying.get() && (stack.getItem() == RegistrationHandler.itemTile.get() || stack.getItem() == RegistrationHandler.itemEntity.get())) - { - event.setCanceled(true); - } - } - - @SubscribeEvent - public void harvestSpeed(BreakEvent event) - { - Player player = event.getPlayer(); - if (player != null && !Settings.hitWhileCarrying.get()) - { - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() || stack.getItem() == RegistrationHandler.itemEntity.get())) - event.setCanceled(true); - } - } - - @SubscribeEvent - public void playerAttack(LivingAttackEvent event) - { - LivingEntity eliving = event.getEntity(); - if (eliving instanceof Player player && Settings.dropCarriedWhenHit.get()) - { - ItemStack stack = player.getMainHandItem(); - if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile.get() || stack.getItem() == RegistrationHandler.itemEntity.get()) && !player.level.isClientSide) - { - player.setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); - ItemEntity item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), stack); - sendPacket(player, 9, 0); - player.level.addFreshEntity(item); - } - - } - } - - @SubscribeEvent(priority = EventPriority.HIGH) - public static void onBlockRightClick(PlayerInteractEvent.RightClickBlock event) - { - Player player = event.getEntity(); - - if (event.isCanceled()) - return; - - if (!player.level.isClientSide) - { - - ItemStack main = player.getMainHandItem(); - ItemStack off = player.getOffhandItem(); - Level level = event.getLevel(); - BlockPos pos = event.getPos(); - BlockState state = level.getBlockState(pos); - - if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player)) - { - - ItemStack stack = new ItemStack(RegistrationHandler.itemTile.get()); - - BlockEntity te = level.getBlockEntity(pos); - if (PickupHandler.canPlayerPickUpBlock((ServerPlayer) player, te, level, pos)) - { - player.closeContainer(); - level.levelEvent(1010, pos, 0); - - if (ItemCarryonBlock.storeTileData(te, level, pos, state, stack)) - { - - BlockState statee = level.getBlockState(pos); - CompoundTag tag = new CompoundTag(); - tag = level.getBlockEntity(pos) != null ? level.getBlockEntity(pos).saveWithId() : tag; - CarryOnOverride override = ScriptChecker.inspectBlock(state, level, pos, tag); - int overrideHash = 0; - if (override != null) - overrideHash = override.hashCode(); - - boolean success = false; - - try - { - sendPacket(player, player.getInventory().selected, overrideHash); - - level.removeBlockEntity(pos); - level.removeBlock(pos, false); - player.setItemInHand(InteractionHand.MAIN_HAND, stack); - event.setUseBlock(Result.DENY); - event.setUseItem(Result.DENY); - event.setCanceled(true); - success = true; - } - catch (Exception e) - { - try - { - sendPacket(player, player.getInventory().selected, overrideHash); - emptyTileEntity(te); - level.removeBlock(pos, false); - player.setItemInHand(InteractionHand.MAIN_HAND, stack); - event.setUseBlock(Result.DENY); - event.setUseItem(Result.DENY); - event.setCanceled(true); - success = true; - } - catch (Exception ex) - { - sendPacket(player, 9, 0); - level.setBlockAndUpdate(pos, statee); - if (!tag.isEmpty()) - { - BlockEntity.loadStatic(pos, statee, tag); - } - - player.displayClientMessage(Component.literal(ChatFormatting.RED + "Error detected. Cannot pick up block."), false); - Component s = Component.literal(ChatFormatting.GOLD + "here"); - s.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); - player.displayClientMessage(Component.literal(ChatFormatting.RED + "Please report this error ").append(s), false); - } - - } - - if (success && override != null) - { - String command = override.getCommandInit(); - - if (command != null) - player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command); - } - - } - } - } - } - } - - public static void emptyTileEntity(BlockEntity te) - { - if (te != null) - { - for (Direction facing : Direction.values()) - { - LazyOptional itemHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, facing); - - itemHandler.ifPresent(handler -> { - - for (int i = 0; i < handler.getSlots(); i++) - { - handler.extractItem(i, 64, false); - } - - }); - - } - - LazyOptional itemHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); - - itemHandler.ifPresent(handler -> { - - for (int i = 0; i < handler.getSlots(); i++) - { - handler.extractItem(i, 64, false); - } - - }); - - if (te instanceof Container inv) - { - inv.clearContent(); - } - - if (te instanceof IItemHandler itemHandler1) - { - for (int i = 0; i < itemHandler1.getSlots(); i++) - { - itemHandler1.extractItem(i, 64, false); - } - } - - te.setChanged(); - } - } - - @SubscribeEvent - public void onRespawn(PlayerEvent.Clone event) - { - Player original = event.getOriginal(); - Player player = event.getEntity(); - boolean wasDead = event.isWasDeath(); - GameRules rules = player.level.getGameRules(); - boolean keepInv = rules.getBoolean(GameRules.RULE_KEEPINVENTORY); - boolean wasCarrying = player.getInventory().contains(new ItemStack(RegistrationHandler.itemTile.get())) || player.getInventory().contains(new ItemStack(RegistrationHandler.itemEntity.get())); - - if ((wasDead ? keepInv : true) && wasCarrying) - { - int carrySlot = original.getInventory().selected; - - ItemStack stack = player.getInventory().removeItemNoUpdate(carrySlot); - Level level = player.level; - - ItemEntity item = new ItemEntity(level, 0, 0, 0, stack); - BlockPos pos = null; - Optional bedpos = original.getSleepingPos(); - if (bedpos.isPresent()) - pos = bedpos.get(); - if (pos == null) - pos = player.blockPosition(); - item.setPos(pos.getX(), pos.getY(), pos.getZ()); - level.addFreshEntity(item); - } - - } - - @SubscribeEvent - public void dropNonHotbarItems(LivingTickEvent event) - { - LivingEntity entity = event.getEntity(); - if (entity instanceof Player player && !entity.level.isClientSide) - { - boolean hasCarried = player.getInventory().contains(new ItemStack(RegistrationHandler.itemTile.get())) || player.getInventory().contains(new ItemStack(RegistrationHandler.itemEntity.get())); - ItemStack inHand = player.getMainHandItem(); - - if (hasCarried && inHand.getItem() != RegistrationHandler.itemTile.get() && inHand.getItem() != RegistrationHandler.itemEntity.get() && player.getDimensionChangingDelay() == 0) - { - int slotBlock = this.getSlot(player, RegistrationHandler.itemTile.get()); - int slotEntity = this.getSlot(player, RegistrationHandler.itemEntity.get()); - - ItemEntity item = null; - if (slotBlock != -1) - { - ItemStack dropped = player.getInventory().removeItemNoUpdate(slotBlock); - item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), dropped); - } - if (slotEntity != -1) - { - ItemStack dropped = player.getInventory().removeItemNoUpdate(slotEntity); - item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), dropped); - } - if (item != null) - { - player.level.addFreshEntity(item); - sendPacket(player, 9, 0); - } - } - - CarryOnOverride override = ScriptChecker.getOverride(player); - - if (override != null) - { - String command = override.getCommandLoop(); - - if (command != null) - player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command); - } - - } - } - - public int getSlot(Player player, Item item) - { - for (int i = 0; i < player.getInventory().getContainerSize(); i++) - { - ItemStack stack = player.getInventory().getItem(i); - if (stack.getItem() == item) - return i; - } - return -1; - } - - public static void sendPacket(Player player, int currentItem, int hash) - { - if (player instanceof ServerPlayer) - { - CarryOn.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(player.getX(), player.getY(), player.getZ(), 128, player.level.dimension())), new CarrySlotPacket(currentItem, player.getId(), hash)); - CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new CarrySlotPacket(currentItem, player.getId(), hash)); - - if (currentItem >= 9) - { - player.getPersistentData().remove("carrySlot"); - player.getPersistentData().remove("overrideKey"); - } - else - { - player.getPersistentData().putInt("carrySlot", currentItem); - if (hash != 0) - ScriptChecker.setCarryOnOverride(player, hash); - } - } - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/handler/CustomPickupOverrideHandler.java b/old/src/main/java/tschipp/carryon/common/handler/CustomPickupOverrideHandler.java deleted file mode 100644 index 9cb629a..0000000 --- a/old/src/main/java/tschipp/carryon/common/handler/CustomPickupOverrideHandler.java +++ /dev/null @@ -1,117 +0,0 @@ -package tschipp.carryon.common.handler; - -import java.util.HashMap; -import java.util.List; - -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.registries.ForgeRegistries; -import tschipp.carryon.common.config.Configs.CustomPickupConditions; -import tschipp.carryon.common.helper.InvalidConfigException; -import tschipp.carryon.common.helper.StringParser; - -public class CustomPickupOverrideHandler -{ - - public static HashMap PICKUP_CONDITIONS = new HashMap<>(); - public static HashMap PICKUP_CONDITIONS_ENTITIES = new HashMap<>(); - - @SuppressWarnings("unchecked") - public static void initPickupOverrides() - { - if (ModList.get().isLoaded("gamestages")) - { - - List conditions = (List) CustomPickupConditions.customPickupConditionsBlocks.get(); - - for (int i = 0; i < conditions.size(); i++) - { - String line = conditions.get(i); - - if (!line.contains("(") || !line.contains(")")) - new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException(); - - String condition = line.substring(line.indexOf("(")); - String blockname = line.replace(condition, ""); - condition = condition.replace("(", ""); - condition = condition.replace(")", ""); - - if (blockname.contains("*")) - { - String modid = blockname.replace("*", ""); - for (int k = 0; k < ForgeRegistries.BLOCKS.getKeys().size(); k++) - { - if (ForgeRegistries.BLOCKS.getKeys().toArray()[k].toString().contains(modid)) - { - PICKUP_CONDITIONS.put(ForgeRegistries.BLOCKS.getKeys().toArray()[k].toString(), condition); - } - } - } - else - { - - PICKUP_CONDITIONS.put(blockname, condition); - } - } - - List entityConditions = (List) CustomPickupConditions.customPickupConditionsEntities.get(); - - for (int i = 0; i < entityConditions.size(); i++) - { - String line = entityConditions.get(i); - - if (!line.contains("(") || !line.contains(")")) - new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException(); - - String condition = line.substring(line.indexOf("(")); - String entityname = line.replace(condition, ""); - condition = condition.replace("(", ""); - condition = condition.replace(")", ""); - - PICKUP_CONDITIONS_ENTITIES.put(entityname, condition); - - } - } - } - - public static boolean hasSpecialPickupConditions(BlockState state) - { - if (!ModList.get().isLoaded("gamestages")) - return false; - - for (String cond : PICKUP_CONDITIONS.keySet()) - { - if(state == StringParser.getBlockState(cond)); - return true; - } - - return false; - } - - public static String getPickupCondition(BlockState state) - { - for (String cond : PICKUP_CONDITIONS.keySet()) - { - if(state == StringParser.getBlockState(cond)); - return PICKUP_CONDITIONS.get(cond); - } - return null; - } - - public static boolean hasSpecialPickupConditions(Entity entity) - { - if (!ModList.get().isLoaded("gamestages")) - return false; - - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - return PICKUP_CONDITIONS_ENTITIES.containsKey(name); - } - - public static String getPickupCondition(Entity entity) - { - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - return PICKUP_CONDITIONS_ENTITIES.get(name); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/handler/ListHandler.java b/old/src/main/java/tschipp/carryon/common/handler/ListHandler.java deleted file mode 100644 index a8ec5eb..0000000 --- a/old/src/main/java/tschipp/carryon/common/handler/ListHandler.java +++ /dev/null @@ -1,367 +0,0 @@ -package tschipp.carryon.common.handler; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.registries.ForgeRegistries; -import tschipp.carryon.common.config.Configs; -import tschipp.carryon.common.config.Configs.Blacklist; -import tschipp.carryon.common.config.Configs.WhiteList; - -public class ListHandler -{ - public static List FORBIDDEN_TILES = new ArrayList<>(); - public static List FORBIDDEN_ENTITIES = new ArrayList<>(); - public static List ALLOWED_ENTITIES = new ArrayList<>(); - public static List ALLOWED_TILES = new ArrayList<>(); - public static List FORBIDDEN_STACKING = new ArrayList<>(); - public static List ALLOWED_STACKING = new ArrayList<>(); - - public static List> FORBIDDEN_TILES_TAGS = new ArrayList<>(); - public static List>> FORBIDDEN_ENTITIES_TAGS = new ArrayList<>(); - public static List>> ALLOWED_ENTITIES_TAGS = new ArrayList<>(); - public static List> ALLOWED_TILES_TAGS = new ArrayList<>(); - public static List>> FORBIDDEN_STACKING_TAGS = new ArrayList<>(); - public static List>> ALLOWED_STACKING_TAGS = new ArrayList<>(); - - public static boolean isForbidden(Block block) - { - String name = ForgeRegistries.BLOCKS.getKey(block).toString(); - if (FORBIDDEN_TILES.contains(name)) - return true; - else - { - boolean contains = false; - for (String s : FORBIDDEN_TILES) - { - if (s.contains("*")) - { - String[] filter = s.replace("*", ",").split(","); - if (containsAll(name, filter)) - contains = true; - } - } - - for (TagKey tag : FORBIDDEN_TILES_TAGS) - { - if (block.defaultBlockState().is(tag)) - return true; - } - - return contains; - } - } - - public static boolean isForbidden(Entity entity) - { - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - boolean contains = FORBIDDEN_ENTITIES.contains(name); - - for (TagKey> tag : FORBIDDEN_ENTITIES_TAGS) - { - if (entity.getType().is(tag)) - return true; - } - - return contains; - } - - public static boolean isAllowed(Entity entity) - { - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - boolean contains = ALLOWED_ENTITIES.contains(name); - - for (TagKey> tag : ALLOWED_ENTITIES_TAGS) - { - if (entity.getType().is(tag)) - return true; - } - - return contains; - } - - public static boolean isStackingForbidden(Entity entity) - { - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - boolean contains = FORBIDDEN_STACKING.contains(name); - - for (TagKey> tag : FORBIDDEN_STACKING_TAGS) - { - if (entity.getType().is(tag)) - return true; - } - - return contains; - } - - public static boolean isStackingAllowed(Entity entity) - { - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - boolean contains = ALLOWED_STACKING.contains(name); - - for (TagKey> tag : ALLOWED_STACKING_TAGS) - { - if (entity.getType().is(tag)) - return true; - } - - return contains; - } - - public static boolean isAllowed(Block block) - { - String name = ForgeRegistries.BLOCKS.getKey(block).toString(); - if (ALLOWED_TILES.contains(name)) - return true; - else - { - boolean contains = false; - for (String s : ALLOWED_TILES) - { - if (s.contains("*")) - { - String[] filter = s.replace("*", ",").split(","); - if (containsAll(name, filter)) - contains = true; - } - } - - for (TagKey tag : ALLOWED_TILES_TAGS) - { - if (block.defaultBlockState().is(tag)) - return true; - } - - return contains; - } - - } - - @SuppressWarnings("deprecation") - public static void initConfigLists() - { - if(!Configs.SERVER_LOADED) - return; - - FORBIDDEN_ENTITIES.clear(); - FORBIDDEN_ENTITIES_TAGS.clear(); - FORBIDDEN_STACKING.clear(); - FORBIDDEN_STACKING_TAGS.clear(); - FORBIDDEN_TILES.clear(); - FORBIDDEN_TILES_TAGS.clear(); - ALLOWED_ENTITIES.clear(); - ALLOWED_ENTITIES_TAGS.clear(); - ALLOWED_STACKING.clear(); - ALLOWED_STACKING_TAGS.clear(); - ALLOWED_TILES.clear(); - ALLOWED_TILES_TAGS.clear(); - - List forbidden = new ArrayList<>(Blacklist.forbiddenTiles.get()); - forbidden.add("#carryon:block_blacklist"); - FORBIDDEN_TILES = new ArrayList<>(); - - for (int i = 0; i < forbidden.size(); i++) - { - if (!forbidden.get(i).startsWith("#")) - FORBIDDEN_TILES.add(forbidden.get(i)); - } - - List forbiddenEntity = new ArrayList<>(Blacklist.forbiddenEntities.get()); - forbiddenEntity.add("#carryon:entity_blacklist"); - FORBIDDEN_ENTITIES = new ArrayList<>(); - - for (int i = 0; i < forbiddenEntity.size(); i++) - { - if (!forbiddenEntity.get(i).startsWith("#")) - { - if (forbiddenEntity.get(i).contains("*")) - { - String[] filter = forbiddenEntity.get(i).replace("*", ",").split(","); - - ResourceLocation[] keys = ForgeRegistries.ENTITY_TYPES.getKeys().toArray(new ResourceLocation[0]); - for (ResourceLocation key : keys) - { - if (containsAll(key.toString(), filter)) - { - FORBIDDEN_ENTITIES.add(key.toString()); - } - } - } - FORBIDDEN_ENTITIES.add(forbiddenEntity.get(i)); - } - } - - List allowedEntities = new ArrayList<>(WhiteList.allowedEntities.get()); - allowedEntities.add("#carryon:entity_whitelist"); - ALLOWED_ENTITIES = new ArrayList<>(); - for (int i = 0; i < allowedEntities.size(); i++) - { - if (!allowedEntities.get(i).startsWith("#")) - { - if (allowedEntities.get(i).contains("*")) - { - String[] filter = allowedEntities.get(i).replace("*", ",").split(","); - - ResourceLocation[] keys = ForgeRegistries.ENTITY_TYPES.getKeys().toArray(new ResourceLocation[0]); - for (ResourceLocation key : keys) - { - if (containsAll(key.toString(), filter)) - { - ALLOWED_ENTITIES.add(key.toString()); - } - } - } - ALLOWED_ENTITIES.add(allowedEntities.get(i)); - } - } - - List allowedBlocks = new ArrayList<>(WhiteList.allowedBlocks.get()); - allowedBlocks.add("#carryon:block_whitelist"); - ALLOWED_TILES = new ArrayList<>(); - for (int i = 0; i < allowedBlocks.size(); i++) - { - if (!allowedBlocks.get(i).startsWith("#")) - ALLOWED_TILES.add(allowedBlocks.get(i)); - } - - List forbiddenStacking = new ArrayList<>(Blacklist.forbiddenStacking.get()); - forbiddenStacking.add("#carryon:stacking_blacklist"); - FORBIDDEN_STACKING = new ArrayList<>(); - - for (int i = 0; i < forbiddenStacking.size(); i++) - { - if (!forbiddenStacking.get(i).startsWith("#")) - { - if (forbiddenStacking.get(i).contains("*")) - { - String[] filter = forbiddenStacking.get(i).replace("*", ",").split(","); - - ResourceLocation[] keys = ForgeRegistries.ENTITY_TYPES.getKeys().toArray(new ResourceLocation[0]); - for (ResourceLocation key : keys) - { - if (containsAll(key.toString(), filter)) - { - FORBIDDEN_STACKING.add(key.toString()); - } - } - } - FORBIDDEN_STACKING.add(forbiddenStacking.get(i)); - } - } - - List allowedStacking = new ArrayList<>(WhiteList.allowedStacking.get()); - allowedStacking.add("#carryon:stacking_whitelist"); - ALLOWED_STACKING = new ArrayList<>(); - for (int i = 0; i < allowedStacking.size(); i++) - { - if (!allowedStacking.get(i).startsWith("#")) - { - if (allowedStacking.get(i).contains("*")) - { - String[] filter = allowedStacking.get(i).replace("*", ",").split(","); - - ResourceLocation[] keys = ForgeRegistries.ENTITY_TYPES.getKeys().toArray(new ResourceLocation[0]); - for (ResourceLocation key : keys) - { - if (containsAll(key.toString(), filter)) - { - ALLOWED_STACKING.add(key.toString()); - } - } - } - ALLOWED_STACKING.add(allowedStacking.get(i)); - } - } - - - Map> blocktags = Registry.BLOCK.getTagNames().collect(Collectors.toMap(t -> t.location(), t -> t)); - Map>> entitytags = Registry.ENTITY_TYPE.getTagNames().collect(Collectors.toMap(t -> t.location(), t -> t)); - - - -// System.out.println(blocktags.getAvailableTags()); - - for (String s : forbidden) - { - if (s.startsWith("#")) - { - String sub = s.substring(1); - TagKey tag = blocktags.get(new ResourceLocation(sub)); - if (tag != null) - FORBIDDEN_TILES_TAGS.add(tag); - } - } - - for (String s : allowedBlocks) - { - if (s.startsWith("#")) - { - TagKey tag = blocktags.get(new ResourceLocation(s.substring(1))); - if (tag != null) - ALLOWED_TILES_TAGS.add(tag); - } - } - - for (String s : forbiddenEntity) - { - if (s.startsWith("#")) - { - TagKey> tag = entitytags.get(new ResourceLocation(s.substring(1))); - if (tag != null) - FORBIDDEN_ENTITIES_TAGS.add(tag); - } - } - - for (String s : allowedEntities) - { - if (s.startsWith("#")) - { - TagKey> tag = entitytags.get(new ResourceLocation(s.substring(1))); - if (tag != null) - ALLOWED_ENTITIES_TAGS.add(tag); - } - } - - for (String s : forbiddenStacking) - { - if (s.startsWith("#")) - { - TagKey> tag = entitytags.get(new ResourceLocation(s.substring(1))); - if (tag != null) - FORBIDDEN_STACKING_TAGS.add(tag); - } - } - - for (String s : allowedStacking) - { - if (s.startsWith("#")) - { - TagKey> tag = entitytags.get(new ResourceLocation(s.substring(1))); - if (tag != null) - ALLOWED_STACKING_TAGS.add(tag); - } - } - } - - public static boolean containsAll(String str, String... strings) - { - boolean containsAll = true; - - for (String s : strings) - { - if (!str.contains(s)) - containsAll = false; - } - - return containsAll; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java b/old/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java deleted file mode 100644 index d5df5da..0000000 --- a/old/src/main/java/tschipp/carryon/common/handler/ModelOverridesHandler.java +++ /dev/null @@ -1,270 +0,0 @@ -package tschipp.carryon.common.handler; - -import java.util.HashMap; -import java.util.List; -import java.util.Set; - -import org.apache.commons.lang3.StringUtils; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.nbt.TagParser; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.registries.ForgeRegistries; -import tschipp.carryon.common.config.Configs.ModelOverrides; -import tschipp.carryon.common.helper.InvalidConfigException; -import tschipp.carryon.common.helper.StringParser; - -public class ModelOverridesHandler -{ - public static HashMap OVERRIDE_OBJECTS = new HashMap<>(); - - /* - * This class is really ugly, will probably be replaced by something else - - * Tschipp - */ - public static void parseOverride(String overrideString, int i) - { - boolean errored = false; - - Object toOverrideObject; - Object overrideObject; - CompoundTag tag = new CompoundTag(); - - String currentline = overrideString; - if (StringUtils.isEmpty(currentline) || !StringUtils.contains(currentline, "->")) - new InvalidConfigException("Missing Override Model at line " + i + " : " + currentline).printException(); - - String[] sa = currentline.split("->"); - String toOverride = ""; - String override = ""; - try - { - toOverride = sa[0]; - override = sa[1]; - } - catch (ArrayIndexOutOfBoundsException e) - { - errored = true; - new InvalidConfigException("Missing Override Model at line " + i + " : " + currentline).printException(); - } - - if (toOverride.contains("{")) - { - if (!toOverride.contains("}")) - { - errored = true; - new InvalidConfigException("Missing } at line " + i + " : " + currentline).printException(); - } - - String nbt = toOverride.substring(toOverride.indexOf("{")); - toOverride = toOverride.replace(nbt, ""); - try - { - tag = TagParser.parseTag(nbt); - } - catch (Exception e) - { - errored = true; - new InvalidConfigException("Error while parsing NBT at line " + i + " : " + e.getMessage()).printException(); - } - - } - else if (toOverride.contains("}")) - { - errored = true; - new InvalidConfigException("Missing { at line " + i + " : " + currentline).printException(); - } - - String overridetype = "item"; - if (override.contains("(")) - { - if (!override.contains(")")) - { - errored = true; - new InvalidConfigException("Missing ) at line " + i + " : " + currentline).printException(); - } - - overridetype = override.substring(0, override.indexOf(")") + 1); - override = override.replace(overridetype, ""); - overridetype = overridetype.replace("(", ""); - overridetype = overridetype.replace(")", ""); - - } - else if (override.contains(")")) - { - errored = true; - new InvalidConfigException("Missing ( at line " + i + " : " + currentline).printException(); - } - - String modidToOverride = "minecraft"; - String modidOverride = "minecraft"; - - if (toOverride.contains(":")) - modidToOverride = toOverride.replace(toOverride.substring(toOverride.indexOf(":")), ""); - - if (override.contains(":")) - modidOverride = override.replace(override.substring(override.indexOf(":")), ""); - - if ((ModList.get().isLoaded(modidOverride) || modidOverride.equals("minecraft")) && (ModList.get().isLoaded(modidToOverride) || modidToOverride.equals("minecraft")) && !errored) - { - toOverrideObject = StringParser.getBlockState(toOverride); - - if (toOverrideObject != null) - { - if (overridetype.equals("block")) - overrideObject = StringParser.getBlockState(override); - else - overrideObject = StringParser.getItemStack(override); - - if (overrideObject != null) - { - CompoundTag keyComp = new CompoundTag(); - keyComp.put("nbttag", tag); - if (toOverrideObject instanceof Block) - { - keyComp.putString("block", ForgeRegistries.BLOCKS.getKey(((Block) toOverrideObject)).toString()); - } - else - { - keyComp.putInt("stateid", Block.getId((BlockState) toOverrideObject)); - keyComp.putString("block", ForgeRegistries.BLOCKS.getKey(((BlockState) toOverrideObject).getBlock()).toString()); - } - OVERRIDE_OBJECTS.put(keyComp, overrideObject); - } - } - } - } - - public static void initOverrides() - { - @SuppressWarnings("unchecked") - List overrides = (List) ModelOverrides.modelOverrides.get(); - - for (int i = 0; i < overrides.size(); i++) - { - parseOverride(overrides.get(i), i); - } - } - - public static boolean hasCustomOverrideModel(BlockState state, CompoundTag tag) - { - if (OVERRIDE_OBJECTS.isEmpty()) - return false; - - int stateid = Block.getId(state); - CompoundTag[] keys = new CompoundTag[OVERRIDE_OBJECTS.size()]; - OVERRIDE_OBJECTS.keySet().toArray(keys); - for (CompoundTag key : keys) - { - int id = key.getInt("stateid"); - Block block = StringParser.getBlock(key.getString("block")); - if (id == 0 ? block == state.getBlock() : id == stateid) - { - CompoundTag toCheckForCompound = key.getCompound("nbttag"); - Set kSetToCheck = toCheckForCompound.getAllKeys(); - Set kSetTile = tag.getAllKeys(); - - boolean flag = true; - if (kSetTile.containsAll(kSetToCheck)) - { - for (String skey : kSetToCheck) - { - if (!NbtUtils.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true)) - flag = false; - } - if (flag) - return true; - } - } - } - - return false; - } - - @OnlyIn(Dist.CLIENT) - public static BakedModel getCustomOverrideModel(BlockState state, CompoundTag tag, Level level, Player player) - { - int stateid = Block.getId(state); - CompoundTag[] keys = new CompoundTag[OVERRIDE_OBJECTS.size()]; - OVERRIDE_OBJECTS.keySet().toArray(keys); - for (CompoundTag key : keys) - { - int id = key.getInt("stateid"); - Block block = StringParser.getBlock(key.getString("block")); - if (id == 0 ? block == state.getBlock() : id == stateid) - { - CompoundTag toCheckForCompound = key.getCompound("nbttag"); - Set kSetToCheck = toCheckForCompound.getAllKeys(); - Set kSetTile = tag.getAllKeys(); - - boolean flag = true; - if (kSetTile.containsAll(kSetToCheck)) - { - for (String skey : kSetToCheck) - { - if (!NbtUtils.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true)) - flag = false; - } - if (flag) - { - Object override = OVERRIDE_OBJECTS.get(key); - - if (override == null) - return null; - - if (override instanceof BlockState) - return Minecraft.getInstance().getBlockRenderer().getBlockModel((BlockState) override); - else - return Minecraft.getInstance().getItemRenderer().getModel((ItemStack) override, level, player, 0); - } - } - } - } - return null; - - } - - public static Object getOverrideObject(BlockState state, CompoundTag tag) - { - int stateid = Block.getId(state); - CompoundTag[] keys = new CompoundTag[OVERRIDE_OBJECTS.size()]; - OVERRIDE_OBJECTS.keySet().toArray(keys); - for (CompoundTag key : keys) - { - int id = key.getInt("stateid"); - Block block = StringParser.getBlock(key.getString("block")); - if (id == 0 ? block == state.getBlock() : id == stateid) - { - CompoundTag toCheckForCompound = key.getCompound("nbttag"); - Set kSetToCheck = toCheckForCompound.getAllKeys(); - Set kSetTile = tag.getAllKeys(); - - boolean flag = true; - if (kSetTile.containsAll(kSetToCheck)) - { - for (String skey : kSetToCheck) - { - if (!NbtUtils.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true)) - flag = false; - } - if (flag) - { - return OVERRIDE_OBJECTS.get(key); - } - } - } - } - return null; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/handler/PickupHandler.java b/old/src/main/java/tschipp/carryon/common/handler/PickupHandler.java deleted file mode 100644 index 49cf777..0000000 --- a/old/src/main/java/tschipp/carryon/common/handler/PickupHandler.java +++ /dev/null @@ -1,201 +0,0 @@ -package tschipp.carryon.common.handler; - -import java.util.UUID; - -import javax.annotation.Nullable; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.AgeableMob; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.entity.TamableAnimal; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.GameType; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.AttackEntityEvent; -import net.minecraftforge.event.level.BlockEvent; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.helper.CarryonGamestageHelper; -import tschipp.carryon.common.item.ItemCarryonBlock; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptChecker; - -public class PickupHandler -{ - - public static boolean canPlayerPickUpBlock(ServerPlayer player, @Nullable BlockEntity tile, Level level, BlockPos pos) - { - if (player.gameMode.getGameModeForPlayer() == GameType.SPECTATOR || player.gameMode.getGameModeForPlayer() == GameType.ADVENTURE) - return false; - - BlockState state = level.getBlockState(pos); - CompoundTag tag = new CompoundTag(); - if (tile != null) - tile.saveWithId(); - - CarryOnOverride override = ScriptChecker.inspectBlock(level.getBlockState(pos), level, pos, tag); - if (override != null) - { - return ScriptChecker.fulfillsConditions(override, player) && handleProtections(player, level, pos, state); - } - else - { - if (Settings.useWhitelistBlocks.get()) - { - if (!ListHandler.isAllowed(level.getBlockState(pos).getBlock())) - { - return false; - } - } - else if (ListHandler.isForbidden(level.getBlockState(pos).getBlock())) - { - return false; - } - - if (state.getDestroySpeed(level, pos) != -1 || player.isCreative()) - { - double distance = Vec3.atLowerCornerOf(pos).distanceTo(player.position()); - double maxDist = Settings.maxDistance.get(); - - if (distance < maxDist && !ItemCarryonBlock.isLocked(pos, level)) - { - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(state)) - { - return CarryonGamestageHelper.hasGamestage(CustomPickupOverrideHandler.getPickupCondition(state), player) && handleProtections(player, level, pos, state); - } - else if (Settings.pickupAllBlocks.get() ? true : tile != null) - { - return handleProtections(player, level, pos, state); - } - - } - } - } - - return false; - } - - public static boolean canPlayerPickUpEntity(ServerPlayer player, Entity toPickUp) - { - if (player.gameMode.getGameModeForPlayer() == GameType.SPECTATOR || player.gameMode.getGameModeForPlayer() == GameType.ADVENTURE) - return false; - - Vec3 pos = toPickUp.position(); - - if (toPickUp instanceof Player) - return false; - - CarryOnOverride override = ScriptChecker.inspectEntity(toPickUp); - if (override != null) - { - return ScriptChecker.fulfillsConditions(override, player) && handleProtections(player, toPickUp); - } - else - { - if (toPickUp instanceof AgeableMob living && Settings.allowBabies.get() && (living.getAge() < 0 || living.isBaby())) - { - - double distance = pos.distanceToSqr(player.position()); - if (distance <= Math.pow(Settings.maxDistance.get(), 2) && toPickUp instanceof TamableAnimal tame && tame.getOwnerUUID() != null && tame.getOwnerUUID() != player.getGameProfile().getId()) - return false; - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp)) - { - return CarryonGamestageHelper.hasGamestage(CustomPickupOverrideHandler.getPickupCondition(toPickUp), player) && handleProtections(player, toPickUp); - } - else - return handleProtections(player, toPickUp); - } - - if (Settings.useWhitelistEntities.get()) - { - if (!ListHandler.isAllowed(toPickUp)) - { - return false; - } - } - else if (ListHandler.isForbidden(toPickUp)) - { - return false; - } - - if ((Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getCategory() != MobCategory.MONSTER || player.isCreative()) && (Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getCategory() != MobCategory.MONSTER || player.isCreative())) - { - if (toPickUp.getBbHeight() <= Settings.maxEntityHeight.get() && toPickUp.getBbWidth() <= Settings.maxEntityWidth.get() || player.isCreative()) - { - double distance = pos.distanceToSqr(player.position()); - if (distance < Math.pow(Settings.maxDistance.get(), 2)) - { - if (toPickUp instanceof TamableAnimal tame) - { - UUID owner = tame.getOwnerUUID(); - UUID playerID = player.getGameProfile().getId(); - if (owner != null && !owner.equals(playerID)) - return false; - } - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp)) - { - return CarryonGamestageHelper.hasGamestage(CustomPickupOverrideHandler.getPickupCondition(toPickUp), player) && handleProtections(player, toPickUp); - } - else - return handleProtections(player, toPickUp); - } - - } - } - } - - return false; - } - - public static class PickUpBlockEvent extends BlockEvent.BreakEvent - { - public PickUpBlockEvent(Level level, BlockPos pos, BlockState state, Player player) - { - super(level, pos, state, player); - } - } - - public static class PickUpEntityEvent extends AttackEntityEvent - { - public PickUpEntityEvent(Player player, Entity target) - { - super(player, target); - } - } - - private static boolean handleProtections(ServerPlayer player, Level level, BlockPos pos, BlockState state) - { - boolean breakable = true; - - PickUpBlockEvent event = new PickUpBlockEvent(level, pos, state, player); - MinecraftForge.EVENT_BUS.post(event); - - if (event.isCanceled()) - breakable = false; - - return breakable; - } - - private static boolean handleProtections(ServerPlayer player, Entity entity) - { - boolean canPickup = true; - - PickUpEntityEvent event = new PickUpEntityEvent(player, entity); - MinecraftForge.EVENT_BUS.post(event); - - if (event.isCanceled()) - canPickup = false; - - return canPickup; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/handler/RegistrationHandler.java b/old/src/main/java/tschipp/carryon/common/handler/RegistrationHandler.java deleted file mode 100644 index 08c120c..0000000 --- a/old/src/main/java/tschipp/carryon/common/handler/RegistrationHandler.java +++ /dev/null @@ -1,71 +0,0 @@ -package tschipp.carryon.common.handler; - -import net.minecraft.world.item.Item; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; -import tschipp.carryon.CarryOn; -import tschipp.carryon.client.event.RenderEntityEvents; -import tschipp.carryon.client.event.RenderEvents; -import tschipp.carryon.common.capabilities.IPosition; -import tschipp.carryon.common.capabilities.event.PositionClientEvents; -import tschipp.carryon.common.capabilities.event.PositionCommonEvents; -import tschipp.carryon.common.event.IMCEvents; -import tschipp.carryon.common.event.ItemEntityEvents; -import tschipp.carryon.common.event.ItemEvents; -import tschipp.carryon.common.item.ItemCarryonBlock; -import tschipp.carryon.common.item.ItemCarryonEntity; - -@EventBusSubscriber(modid = CarryOn.MODID, bus = Bus.MOD) -public class RegistrationHandler -{ - - private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, CarryOn.MODID); - - public static final RegistryObject itemTile = ITEMS.register("tile_item", () -> new ItemCarryonBlock()); - public static final RegistryObject itemEntity = ITEMS.register("entity_item", () -> new ItemCarryonEntity()); - - - public static void init() { - ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); - } - - public static void regCommonEvents() - { - MinecraftForge.EVENT_BUS.register(new ItemEvents()); - MinecraftForge.EVENT_BUS.register(new ItemEntityEvents()); - MinecraftForge.EVENT_BUS.register(new PositionCommonEvents()); - MinecraftForge.EVENT_BUS.register(new IMCEvents()); - } - - public static void regClientEvents() - { - MinecraftForge.EVENT_BUS.register(new RenderEvents()); - MinecraftForge.EVENT_BUS.register(new RenderEntityEvents()); - MinecraftForge.EVENT_BUS.register(new PositionClientEvents()); - - // if(ModList.get().isLoaded("obfuscate")) - // MinecraftForge.EVENT_BUS.register(new ObfuscateEvents()); - - } - - public static void regOverrideList() - { - ModelOverridesHandler.initOverrides(); - CustomPickupOverrideHandler.initPickupOverrides(); - // ListHandler.initConfigLists(); - } - - @SubscribeEvent - public static void regCaps(RegisterCapabilitiesEvent event) - { - event.register(IPosition.class); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/helper/CarryonGamestageHelper.java b/old/src/main/java/tschipp/carryon/common/helper/CarryonGamestageHelper.java deleted file mode 100644 index be0c725..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/CarryonGamestageHelper.java +++ /dev/null @@ -1,13 +0,0 @@ -package tschipp.carryon.common.helper; - -//import net.darkhax.gamestages.GameStageHelper; -import net.minecraft.world.entity.player.Player; - -public class CarryonGamestageHelper -{ - public static boolean hasGamestage(String stage, Player player) - { - // return GameStageHelper.hasStage(player, stage); - return true; - } -} diff --git a/old/src/main/java/tschipp/carryon/common/helper/InvalidConfigException.java b/old/src/main/java/tschipp/carryon/common/helper/InvalidConfigException.java deleted file mode 100644 index 67cca97..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/InvalidConfigException.java +++ /dev/null @@ -1,33 +0,0 @@ -package tschipp.carryon.common.helper; - -import tschipp.carryon.CarryOn; - -public class InvalidConfigException extends Exception -{ - - private static final long serialVersionUID = -7161004674405185407L; - - public InvalidConfigException(String cause) - { - super(cause); - } - - public void printException() - { - CarryOn.LOGGER.error(this.getMessage()); - for (int i = 0; i < this.getStackTrace().length; i++) - { - StackTraceElement element = this.getStackTrace()[i]; - CarryOn.LOGGER.error(element.toString()); - - if (i >= 10) - { - CarryOn.LOGGER.error(this.getStackTrace().length - 10 + " more..."); - break; - } - } - - CarryOn.LOGGER.info(""); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/helper/KeyboardCallbackWrapper.java b/old/src/main/java/tschipp/carryon/common/helper/KeyboardCallbackWrapper.java deleted file mode 100644 index 854a50a..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/KeyboardCallbackWrapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package tschipp.carryon.common.helper; - -import org.lwjgl.glfw.GLFW; -import org.lwjgl.glfw.GLFWKeyCallback; - -import net.minecraft.client.Minecraft; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; -import net.minecraftforge.eventbus.api.Event; - -public class KeyboardCallbackWrapper -{ - GLFWKeyCallback oldCallback; - - public void setup(Minecraft mc) - { - this.oldCallback = GLFW.glfwSetKeyCallback(mc.getWindow().getWindow(), this::keyCallback); - } - - private void keyCallback(long window, int key, int scancode, int action, int mods) - { - KeyPressedEvent event = new KeyPressedEvent(key, scancode); - MinecraftForge.EVENT_BUS.post(event); - - if (event.isCanceled()) - return; - - if (this.oldCallback != null) - this.oldCallback.invoke(window, key, scancode, action, mods); - } - - @Cancelable - public static class KeyPressedEvent extends Event - { - public int key; - public int scancode; - - public KeyPressedEvent(int key, int scancode) - { - this.key = key; - this.scancode = scancode; - } - - } -} \ No newline at end of file diff --git a/old/src/main/java/tschipp/carryon/common/helper/ReflectionHelper.java b/old/src/main/java/tschipp/carryon/common/helper/ReflectionHelper.java deleted file mode 100644 index e12d6d8..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/ReflectionHelper.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Minecraft Forge - * Copyright (c) 2016. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation version 2.1 - * of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -package tschipp.carryon.common.helper; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import com.google.common.base.Preconditions; - -/** - * Some reflection helper code. - * - * @author cpw - * - */ -public class ReflectionHelper -{ - public static class UnableToFindMethodException extends RuntimeException - { - private static final long serialVersionUID = 1L; - // private String[] methodNames; - - public UnableToFindMethodException(String[] methodNames, Exception failed) - { - super(failed); - // this.methodNames = methodNames; - } - - public UnableToFindMethodException(Throwable failed) - { - super(failed); - } - - } - - public static class UnableToFindClassException extends RuntimeException - { - private static final long serialVersionUID = 1L; - // private String[] classNames; - - public UnableToFindClassException(String[] classNames, @Nullable Exception err) - { - super(err); - // this.classNames = classNames; - } - - } - - public static class UnableToAccessFieldException extends RuntimeException - { - private static final long serialVersionUID = 1L; - // private String[] fieldNameList; - - public UnableToAccessFieldException(String[] fieldNames, Exception e) - { - super(e); - // this.fieldNameList = fieldNames; - } - } - - public static class UnableToFindFieldException extends RuntimeException - { - private static final long serialVersionUID = 1L; - - // private String[] fieldNameList; - public UnableToFindFieldException(String[] fieldNameList, Exception e) - { - super(e); - // this.fieldNameList = fieldNameList; - } - } - - @SuppressWarnings("serial") - public static class UnknownConstructorException extends RuntimeException - { - public UnknownConstructorException(final String message) - { - super(message); - } - } - - public static Field findField(Class clazz, String... fieldNames) - { - Exception failed = null; - for (String fieldName : fieldNames) - { - try - { - Field f = clazz.getDeclaredField(fieldName); - f.setAccessible(true); - return f; - } - catch (Exception e) - { - failed = e; - } - } - throw new UnableToFindFieldException(fieldNames, failed); - } - - @SuppressWarnings("unchecked") - public static T getPrivateValue(Class classToAccess, @Nullable E instance, int fieldIndex) - { - try - { - Field f = classToAccess.getDeclaredFields()[fieldIndex]; - f.setAccessible(true); - return (T) f.get(instance); - } - catch (Exception e) - { - throw new UnableToAccessFieldException(new String[0], e); - } - } - - @SuppressWarnings("unchecked") - public static T getPrivateValue(Class classToAccess, E instance, String... fieldNames) - { - try - { - return (T) findField(classToAccess, fieldNames).get(instance); - } - catch (Exception e) - { - throw new UnableToAccessFieldException(fieldNames, e); - } - } - - public static void setPrivateValue(Class classToAccess, T instance, E value, int fieldIndex) - { - try - { - Field f = classToAccess.getDeclaredFields()[fieldIndex]; - f.setAccessible(true); - f.set(instance, value); - } - catch (Exception e) - { - throw new UnableToAccessFieldException(new String[0], e); - } - } - - public static void setPrivateValue(Class classToAccess, T instance, E value, String... fieldNames) - { - try - { - findField(classToAccess, fieldNames).set(instance, value); - } - catch (Exception e) - { - throw new UnableToAccessFieldException(fieldNames, e); - } - } - - @SuppressWarnings("unchecked") - public static Class getClass(ClassLoader loader, String... classNames) - { - Exception err = null; - for (String className : classNames) - { - try - { - return (Class) Class.forName(className, false, loader); - } - catch (Exception e) - { - err = e; - } - } - - throw new UnableToFindClassException(classNames, err); - } - - /** - * Finds a method with the specified name and parameters in the given class - * and makes it accessible. Note: for performance, store the returned value - * and avoid calling this repeatedly. - *

- * Throws an exception if the method is not found. - * - * @param clazz - * The class to find the method on. - * @param methodName - * The name of the method to find (used in developer - * environments, i.e. "getLevelTime"). - * @param methodObfName - * The obfuscated name of the method to find (used in obfuscated - * environments, i.e. "getLevelTime"). If the name you are - * looking for is on a class that is never obfuscated, this - * should be null. - * @param parameterTypes - * The parameter types of the method to find. - * @return The method with the specified name and parameters in the given - * class. - */ - - /** - * Finds a constructor in the specified class that has matching parameter - * types. - * - * @param klass - * The class to find the constructor in - * @param parameterTypes - * The parameter types of the constructor. - * @param - * The type - * @return The constructor - * @throws NullPointerException - * if {@code klass} is null - * @throws NullPointerException - * if {@code parameterTypes} is null - * @throws UnknownConstructorException - * if the constructor could not be found - */ - @Nonnull - public static Constructor findConstructor(@Nonnull final Class klass, @Nonnull final Class... parameterTypes) - { - Preconditions.checkNotNull(klass, "class"); - Preconditions.checkNotNull(parameterTypes, "parameter types"); - - final Constructor constructor; - try - { - constructor = klass.getDeclaredConstructor(parameterTypes); - constructor.setAccessible(true); - } - catch (final NoSuchMethodException e) - { - final StringBuilder desc = new StringBuilder(); - desc.append(klass.getSimpleName()).append('('); - for (int i = 0, length = parameterTypes.length; i < length; i++) - { - desc.append(parameterTypes[i].getName()); - if (i > length) - { - desc.append(',').append(' '); - } - } - desc.append(')'); - throw new UnknownConstructorException("Could not find constructor '" + desc.toString() + "' in " + klass); - } - return constructor; - } -} \ No newline at end of file diff --git a/old/src/main/java/tschipp/carryon/common/helper/ReflectionUtil.java b/old/src/main/java/tschipp/carryon/common/helper/ReflectionUtil.java deleted file mode 100644 index d53d31d..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/ReflectionUtil.java +++ /dev/null @@ -1,90 +0,0 @@ -package tschipp.carryon.common.helper; - -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import javax.annotation.Nullable; - -import net.minecraftforge.fml.util.ObfuscationReflectionHelper; - -/** - * Utility methods for reflection. - * - * @author Choonster - */ -public class ReflectionUtil -{ - /** - * Get a {@link MethodHandle} for a method. - * - * @param clazz - * The class - * @param methodName - * The possible names of the method - * @param methodObfName - * The obfuscated method name - * @param parameterTypes - * The argument types of the method - * @return The MethodHandle - */ - public static MethodHandle findMethod(final Class clazz, final String methodName, @Nullable final String methodObfName, final Class... parameterTypes) - { - final Method method = ObfuscationReflectionHelper.findMethod(clazz, methodName, parameterTypes); - try - { - return MethodHandles.lookup().unreflect(method); - } - catch (IllegalAccessException e) - { - throw new ObfuscationReflectionHelper.UnableToFindMethodException(e); - } - } - - /** - * Get a {@link MethodHandle} for a field's getter. - * - * @param clazz - * The class - * @param fieldNames - * The possible names of the field - * @return The MethodHandle - */ - public static MethodHandle findFieldGetter(Class clazz, String... fieldNames) - { - final Field field = ReflectionHelper.findField(clazz, fieldNames); - - try - { - return MethodHandles.lookup().unreflectGetter(field); - } - catch (IllegalAccessException e) - { - throw new ReflectionHelper.UnableToAccessFieldException(fieldNames, e); - } - } - - /** - * Get a {@link MethodHandle} for a field's setter. - * - * @param clazz - * The class - * @param fieldNames - * The possible names of the field - * @return The MethodHandle - */ - public static MethodHandle findFieldSetter(Class clazz, String... fieldNames) - { - final Field field = ReflectionHelper.findField(clazz, fieldNames); - - try - { - return MethodHandles.lookup().unreflectSetter(field); - } - catch (IllegalAccessException e) - { - throw new ReflectionHelper.UnableToAccessFieldException(fieldNames, e); - } - } -} \ No newline at end of file diff --git a/old/src/main/java/tschipp/carryon/common/helper/ScriptParseHelper.java b/old/src/main/java/tschipp/carryon/common/helper/ScriptParseHelper.java deleted file mode 100644 index f08f2ad..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/ScriptParseHelper.java +++ /dev/null @@ -1,355 +0,0 @@ -package tschipp.carryon.common.helper; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.material.Material; -import net.minecraft.world.scores.Objective; -import net.minecraft.world.scores.Score; -import net.minecraft.world.scores.Scoreboard; -import net.minecraftforge.registries.ForgeRegistries; - -public class ScriptParseHelper -{ - - - - public static boolean matches(double number, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - try - { - if (cond.contains("<=")) - { - return number <= Double.parseDouble(cond.replace("<=", "")); - } - if (cond.contains(">=")) - { - return number >= Double.parseDouble(cond.replace(">=", "")); - } - if (cond.contains("<")) - { - return number < Double.parseDouble(cond.replace("<", "")); - } - if (cond.contains(">")) - { - return number > Double.parseDouble(cond.replace(">", "")); - } - if (cond.contains("=")) - { - return number == Double.parseDouble(cond.replace("=", "")); - } - else - return number == Double.parseDouble(cond); - - } - catch (Exception e) - { - new InvalidConfigException(e.getMessage()).printException(); - } - - return false; - } - - public static boolean matches(Block block, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - Block toCheck = StringParser.getBlock(cond); - if (toCheck != null) - return block == toCheck; - - return false; - } - - public static boolean matches(CompoundTag toCheck, CompoundTag toMatch) - { - if (toCheck == null || toMatch == null || toMatch.isEmpty()) - return true; - - boolean matching = true; - for (String key : toMatch.getAllKeys()) - { - Tag tag = toMatch.get(key); - key = key.replace("\"", ""); - Tag tagToCheck = toCheck.get(key); - if (!tag.equals(tagToCheck)) - matching = false; - } - - return matching; - } - - public static float[] getXYZArray(String s) - { - float[] d = new float[3]; - d[0] = getValueFromString(s, "x"); - d[1] = getValueFromString(s, "y"); - d[2] = getValueFromString(s, "z"); - - return d; - } - - public static float[] getScaled(String s) - { - float[] d = new float[3]; - d[0] = getScaledValueFromString(s, "x"); - d[1] = getScaledValueFromString(s, "y"); - d[2] = getScaledValueFromString(s, "z"); - - return d; - } - - public static float getScaledValueFromString(String toGetFrom, String key) - { - if (toGetFrom == null || toGetFrom.isEmpty()) - return 1; - - String[] s = toGetFrom.split(","); - for (String string : s) - { - if (string.contains(key) && string.contains("=")) - { - float numb = 1; - string = string.replace(key + "=", ""); - - try - { - numb = Float.parseFloat(string); - } - catch (Exception e) - { - } - - return numb; - } - } - - return 1; - } - - public static boolean matchesScore(Player player, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - Scoreboard score = player.getScoreboard(); - String numb; - String scorename; - int iE = cond.indexOf("="); - int iG = cond.indexOf(">"); - int iL = cond.indexOf("<"); - - if (iG == -1 ? true : iE < iG && iL == -1 ? true : iE < iL && iE != -1) - numb = cond.substring(iE); - else if (iE == -1 ? true : iG < iE && iL == -1 ? true : iG < iL && iG != -1) - numb = cond.substring(iG); - else - numb = cond.substring(iL); - - scorename = cond.replace(numb, ""); - Map o = score.getPlayerScores(player.getGameProfile().getName()); - if (o != null) - { - Score sc = o.get(score.getObjective(scorename)); - if (sc != null) - { - int points = sc.getScore(); - - return matches(points, numb); - } - } - - return false; - } - - public static boolean matches(BlockPos pos, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - BlockPos blockpos = new BlockPos(getValueFromString(cond, "x"), getValueFromString(cond, "y"), getValueFromString(cond, "z")); - BlockPos expand = new BlockPos(getValueFromString(cond, "dx"), getValueFromString(cond, "dy"), getValueFromString(cond, "dz")); - BlockPos expanded = blockpos.offset(expand); - - boolean x = pos.getX() >= blockpos.getX() && pos.getX() <= expanded.getX() || blockpos.getX() == 0; - boolean y = pos.getY() >= blockpos.getY() && pos.getY() <= expanded.getY() || blockpos.getY() == 0; - boolean z = pos.getZ() >= blockpos.getZ() && pos.getZ() <= expanded.getZ() || blockpos.getZ() == 0; - - return x && y && z; - } - - public static float getValueFromString(String toGetFrom, String key) - { - if (toGetFrom == null || toGetFrom.isEmpty()) - return 0; - - String[] s = toGetFrom.split(","); - for (String string : s) - { - if (string.contains(key) && string.contains("=")) - { - float numb = 0; - string = string.replace(key + "=", ""); - - try - { - numb = Float.parseFloat(string); - } - catch (Exception e) - { - } - - return numb; - } - } - - return 0; - } - - public static boolean hasEffects(Player player, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - Collection effects = player.getActiveEffects(); - String[] potions = cond.split(","); - - List names = new ArrayList<>(); - List levels = new ArrayList<>(); - - for (String pot : potions) - { - if (pot.contains("#")) - { - String level = pot.substring(pot.indexOf("#")); - String name = pot.substring(0, pot.indexOf("#")); - level = level.replace("#", ""); - int lev = 0; - try - { - lev = Integer.parseInt(level); - } - catch (Exception e) - { - } - - levels.add(lev); - names.add(name); - } - else - { - levels.add(0); - names.add(pot); - } - } - - int matches = 0; - for (MobEffectInstance effect : effects) - { - int amp = effect.getAmplifier(); - String name = ForgeRegistries.MOB_EFFECTS.getKey(effect.getEffect()).toString(); - - if (names.contains(name)) - { - int idx = names.indexOf(name); - int lev = levels.get(idx); - - if (lev == amp) - matches++; - } - } - - return matches == potions.length; - } - - public static boolean matches(Material material, String cond) - { - if (cond == null || cond.isEmpty()) - return true; - - switch (cond) - { - case "air": - return material == Material.AIR; - case "anvil": - return material == Material.HEAVY_METAL; - case "barrier": - return material == Material.BARRIER; - case "cactus": - return material == Material.CACTUS; - case "cake": - return material == Material.CAKE; - case "carpet": - return material == Material.CLOTH_DECORATION; - case "clay": - return material == Material.CLAY; - case "cloth": - return material == Material.WOOL; - case "dragon_egg": - return material == Material.EGG; - case "fire": - return material == Material.FIRE; - case "glass": - return material == Material.GLASS; - case "gourd": - return material == Material.VEGETABLE; - case "grass": - return material == Material.GRASS; - case "ground": - return material == Material.GRASS; - case "ice": - return material == Material.ICE; - case "iron": - return material == Material.METAL; - case "lava": - return material == Material.LAVA; - case "leaves": - return material == Material.LEAVES; - case "packed_ice": - return material == Material.ICE_SOLID; - case "piston": - return material == Material.PISTON; - case "plants": - return material == Material.PLANT; - case "portal": - return material == Material.PORTAL; - case "redstone_light": - return material == Material.BUILDABLE_GLASS; - case "rock": - return material == Material.STONE; - case "sand": - return material == Material.SAND; - case "snow": - return material == Material.TOP_SNOW; - case "sponge": - return material == Material.SPONGE; - case "structure_void": - return material == Material.STRUCTURAL_AIR; - case "tnt": - return material == Material.EXPLOSIVE; - case "vine": - return material == Material.PLANT; - case "water": - return material == Material.WATER; - case "web": - return material == Material.WEB; - case "wood": - return material == Material.WOOD; - default: - return false; - } - - } -} diff --git a/old/src/main/java/tschipp/carryon/common/helper/ScrollCallbackWrapper.java b/old/src/main/java/tschipp/carryon/common/helper/ScrollCallbackWrapper.java deleted file mode 100644 index b71e8e9..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/ScrollCallbackWrapper.java +++ /dev/null @@ -1,38 +0,0 @@ -package tschipp.carryon.common.helper; - -import org.lwjgl.glfw.GLFW; -import org.lwjgl.glfw.GLFWScrollCallback; - -import net.minecraft.client.Minecraft; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; -import net.minecraftforge.eventbus.api.Event; - -//Thanks to gigaherz for the help! -public class ScrollCallbackWrapper -{ - GLFWScrollCallback oldCallback; - - public void setup(Minecraft mc) - { - this.oldCallback = GLFW.glfwSetScrollCallback(mc.getWindow().getWindow(), this::scrollCallback); - } - - private void scrollCallback(long window, double xoffset, double yoffset) - { - MouseScrolledEvent event = new MouseScrolledEvent(); - MinecraftForge.EVENT_BUS.post(event); - - if (event.isCanceled()) - return; - - if (this.oldCallback != null) - this.oldCallback.invoke(window, xoffset, yoffset); - } - - @Cancelable - public static class MouseScrolledEvent extends Event - { - - } -} diff --git a/old/src/main/java/tschipp/carryon/common/helper/StringParser.java b/old/src/main/java/tschipp/carryon/common/helper/StringParser.java deleted file mode 100644 index 668ffa7..0000000 --- a/old/src/main/java/tschipp/carryon/common/helper/StringParser.java +++ /dev/null @@ -1,133 +0,0 @@ -package tschipp.carryon.common.helper; - -import javax.annotation.Nullable; - -import com.mojang.brigadier.StringReader; - -import net.minecraft.commands.arguments.blocks.BlockStateParser; -import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult; -import net.minecraft.commands.arguments.item.ItemParser; -import net.minecraft.commands.arguments.item.ItemParser.ItemResult; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.Registry; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.TagParser; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -public class StringParser -{ - - @Nullable - public static Block getBlock(String string) - { - BlockState state = getBlockState(string); - if (state != null) - return state.getBlock(); - - return null; - } - - @Nullable - public static BlockState getBlockState(String string) - { - if (string == null) - return null; - - - try - { - BlockResult result = BlockStateParser.parseForBlock(HolderLookup.forRegistry(Registry.BLOCK), new StringReader(string), false); - return result.blockState(); - } - catch (Exception e) - { - new InvalidConfigException("Blockstate parsing Exception at: " + string + " : " + e.getMessage()).printException(); - return null; - } - } - - @Nullable - public static Item getItem(String string) - { - if (string == null) - return null; - - - try - { - ItemResult res = ItemParser.parseForItem(HolderLookup.forRegistry(Registry.ITEM), new StringReader(string)); - return res.item().get(); - } - catch (Exception e) - { - new InvalidConfigException("Item parsing Exception at: " + string + " : " + e.getMessage()).printException(); - return null; - } - } - - public static ItemStack getItemStack(String string) - { - if (string == null) - return null; - - - try - { - ItemResult res = ItemParser.parseForItem(HolderLookup.forRegistry(Registry.ITEM), new StringReader(string)); - - Item item = res.item().get(); - CompoundTag nbt = res.nbt(); - - ItemStack stack = new ItemStack(item, 1); - - if (nbt != null) - { - stack.setTag(nbt); - } - - return stack; - } - catch (Exception e) - { - new InvalidConfigException("Item parsing Exception at: " + string + " : " + e.getMessage()).printException(); - return ItemStack.EMPTY; - - } - - } - - @Nullable - public static CompoundTag getTagCompound(String string) - { - CompoundTag tag = null; - if (string == null) - return null; - - if (string.contains("{")) - { - if (!string.contains("}")) - new InvalidConfigException("Missing } at : " + string).printException(); - - String nbt = string.substring(string.indexOf("{")); - string = string.replace(nbt, ""); - try - { - tag = TagParser.parseTag(nbt); - } - catch (Exception e) - { - new InvalidConfigException("Error while parsing NBT: " + e.getMessage()).printException(); - return null; - } - - } - else if (string.contains("}")) - new InvalidConfigException("Missing { at : " + string).printException(); - - return tag; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/item/ItemCarryonBlock.java b/old/src/main/java/tschipp/carryon/common/item/ItemCarryonBlock.java deleted file mode 100644 index 356084e..0000000 --- a/old/src/main/java/tschipp/carryon/common/item/ItemCarryonBlock.java +++ /dev/null @@ -1,389 +0,0 @@ -package tschipp.carryon.common.item; - -import java.util.Set; - -import javax.annotation.Nullable; - -import com.google.common.base.CharMatcher; - -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.ClickEvent; -import net.minecraft.network.chat.ClickEvent.Action; -import net.minecraft.network.chat.Component; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.BlockSnapshot; -import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.registries.ForgeRegistries; -import tschipp.carryon.CarryOn; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.event.ItemEvents; -import tschipp.carryon.common.handler.CustomPickupOverrideHandler; -import tschipp.carryon.common.handler.ModelOverridesHandler; - -public class ItemCarryonBlock extends Item -{ - - public static final String TILE_DATA_KEY = "tileData"; - public static final String[] FACING_KEYS = { "rotation", "rot", "facing", "face", "direction", "dir", "front", "forward" }; - - public ItemCarryonBlock() - { - super(new Item.Properties().stacksTo(1)); - } - - @Override - public Component getName(ItemStack stack) - { - if (hasTileData(stack)) - { - BlockState state = getBlockState(stack); - CompoundTag nbt = getTileData(stack); - - if (ModelOverridesHandler.hasCustomOverrideModel(state, nbt)) - { - Object override = ModelOverridesHandler.getOverrideObject(state, nbt); - if (override instanceof ItemStack) - return ((ItemStack) override).getHoverName(); - else - { - BlockState ostate = (BlockState) override; - return ostate.getBlock().getName(); - } - } - - return getItemStack(stack).getHoverName(); - } - - return Component.literal(""); - } - - @Override - public InteractionResult useOn(UseOnContext context) - { - Direction facing = context.getClickedFace(); - Player player = context.getPlayer(); - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - ItemStack stack = context.getItemInHand(); - - if (ModList.get().isLoaded("betterplacement") && CarryOnKeybinds.isKeyPressed(player)) - return InteractionResult.FAIL; - - if (hasTileData(stack)) - { - try - { - Vec3 vec = player.getLookAngle(); - Direction facing2 = Direction.getNearest((float) vec.x, 0f, (float) vec.z); - BlockPos pos2 = pos; - Block containedblock = getBlock(stack); - BlockState containedstate = getBlockState(stack); - if (!level.getBlockState(pos2).canBeReplaced(new BlockPlaceContext(context))) - { - pos2 = pos.relative(facing); - } - - if (level.getBlockState(pos2).canBeReplaced(new BlockPlaceContext(context)) && containedblock != null) - { - boolean canPlace = containedstate.canSurvive(level, pos2); - - if (canPlace && player.mayUseItemAt(pos, facing, stack) && level.mayInteract(player, pos2)) - { - - BlockState placementState = containedblock.getStateForPlacement(new BlockPlaceContext(context)); - - BlockState actualState = placementState == null ? containedstate : placementState; - - // Attempted fix for #287 - // for (IProperty prop : - // placementState.getValues().keySet()) - // { - // if (prop instanceof DirectionProperty) - // actualState = actualState.with((DirectionProperty) - // prop, placementState.get((DirectionProperty) prop)); - // else if (prop == BlockStateProperties.WATERLOGGED) - // actualState = actualState.with((BooleanProperty) - // prop, placementState.get((BooleanProperty) prop)); - // else if(prop instanceof EnumProperty) - // { - // Object value = placementState.get(prop); - // if(value instanceof Direction.Axis) - // { - // actualState = actualState.with((EnumProperty)prop, - // (Direction.Axis)value); - // } - // } - // } - - BlockSnapshot snapshot = BlockSnapshot.create(level.dimension(), level, pos2); - EntityPlaceEvent event = new EntityPlaceEvent(snapshot, level.getBlockState(pos), player); - MinecraftForge.EVENT_BUS.post(event); - - if (!event.isCanceled()) - { - level.setBlockAndUpdate(pos2, actualState); - - // If the blockstate doesn't handle rotation, - // try to - // change rotation via NBT - if (!getTileData(stack).isEmpty()) - { - CompoundTag tag = getTileData(stack); - Set keys = tag.getAllKeys(); - keytester: for (String key : keys) - { - for (String facingKey : FACING_KEYS) - { - if (key.toLowerCase().equals(facingKey)) - { - byte type = tag.getTagType(key); - switch (type) - { - case 8: - tag.putString(key, CharMatcher.javaUpperCase().matchesAllOf(tag.getString(key)) ? facing2.getOpposite().getName().toUpperCase() : facing2.getOpposite().getName()); - break; - case 3: - tag.putInt(key, facing2.getOpposite().get3DDataValue()); - break; - case 1: - tag.putByte(key, (byte) facing2.getOpposite().get3DDataValue()); - break; - default: - break; - } - - break keytester; - } - } - } - } - - BlockEntity tile = level.getBlockEntity(pos2); - if (tile != null) - { - CompoundTag data = getTileData(stack); - updateTileLocation(data, pos2); - tile.load(data); - } - clearTileData(stack); - player.playSound(actualState.getSoundType(level, pos2, player).getPlaceSound(), 1.0f, 0.5f); - player.setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); - player.getPersistentData().remove("overrideKey"); - ItemEvents.sendPacket(player, 9, 0); - return InteractionResult.SUCCESS; - - } - } - } - } - catch (Exception e) - { - e.printStackTrace(); - - if (level != null && level.isClientSide) - { - CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(stack)); - CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(stack)); - // CarryOn.LOGGER.info("Meta: " + itemTile.get().getMeta(stack)); - CarryOn.LOGGER.info("ItemStack: " + ItemCarryonBlock.getItemStack(stack)); - - if (ModelOverridesHandler.hasCustomOverrideModel(ItemCarryonBlock.getBlockState(stack), ItemCarryonBlock.getTileData(stack))) - CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemCarryonBlock.getBlockState(stack), ItemCarryonBlock.getTileData(stack))); - - if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(stack))) - CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(stack))); - - player.displayClientMessage(Component.literal(ChatFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"), false); - Component s = Component.literal(ChatFormatting.GOLD + "here"); - s.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); - player.displayClientMessage(Component.literal(ChatFormatting.RED + "Please report this error ").append(s), false); - - } - } - - } - - return InteractionResult.FAIL; - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int itemSlot, boolean isSelected) - { - if (hasTileData(stack)) - { - if (entity instanceof LivingEntity) - { - if (entity instanceof Player && Settings.slownessInCreative.get() ? false : ((Player) entity).isCreative()) - return; - - ((LivingEntity) entity).addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 1, potionLevel(stack), false, false)); - } - } - else - { - stack = ItemStack.EMPTY; - } - } - - public static boolean hasTileData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - return tag.contains(TILE_DATA_KEY) && tag.contains("block") && tag.contains("stateid"); - } - return false; - } - - public static boolean storeTileData(@Nullable BlockEntity tile, Level level, BlockPos pos, BlockState state, ItemStack stack) - { - if (stack.isEmpty()) - return false; - - CompoundTag tileTag = new CompoundTag(); - if (tile != null) - tileTag = tile.saveWithId(); - - CompoundTag tag = stack.hasTag() ? stack.getTag() : new CompoundTag(); - if (tag.contains(TILE_DATA_KEY)) - return false; - - tag.put(TILE_DATA_KEY, tileTag); - - // ItemStack drop = new ItemStack(state.getBlock().getItemDropped(state, - // itemRand, 0), 1, state.getBlock().damageDropped(state)); - - tag.putString("block", ForgeRegistries.BLOCKS.getKey(state.getBlock()).toString()); - // Item item = Item.getItemFromBlock(state.getBlock()); - // tag.setInt("meta", drop.getItemDamage()); - tag.putInt("stateid", Block.getId(state)); - stack.setTag(tag); - return true; - } - - public static void updateTileLocation(CompoundTag tag, BlockPos pos) - { - tag.putInt("x", pos.getX()); - tag.putInt("y", pos.getY()); - tag.putInt("z", pos.getZ()); - } - - public static void clearTileData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - tag.remove(TILE_DATA_KEY); - tag.remove("block"); - tag.remove("stateid"); - } - } - - public static CompoundTag getTileData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - return tag.getCompound(TILE_DATA_KEY); - } - return null; - } - - public static Block getBlock(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - int id = tag.getInt("stateid"); - return Block.stateById(id).getBlock(); - } - return Blocks.AIR; - } - - // public static int getMeta(ItemStack stack) - // { - // if (stack.hasTag()) - // { - // CompoundTag tag = stack.getTag(); - // int meta = tag.getInt("meta"); - // return meta; - // } - // return 0; - // } - - public static ItemStack getItemStack(ItemStack stack) - { - return new ItemStack(getBlock(stack), 1); - } - - public static BlockState getBlockState(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - int id = tag.getInt("stateid"); - return Block.stateById(id); - } - return Blocks.AIR.defaultBlockState(); - } - - public static boolean isLocked(BlockPos pos, Level level) - { - BlockEntity te = level.getBlockEntity(pos); - if (te != null) - { - CompoundTag tag = new CompoundTag(); - te.saveWithId(); - return tag.contains("Lock") ? !tag.getString("Lock").equals("") : false; - } - - return false; - } - - // private boolean equal(Object[] a, Object[] b) - // { - // if (a.length != b.length) - // return false; - // - // List lA = Arrays.asList(a); - // List lB = Arrays.asList(b); - // - // return lA.containsAll(lB); - // } - - private int potionLevel(ItemStack stack) - { - String nbt = getTileData(stack).toString(); - int i = nbt.length() / 500; - - if (i > 4) - i = 4; - - if (!Settings.heavyTiles.get()) - i = 1; - - return (int) (i * Settings.blockSlownessMultiplier.get()); - } -} diff --git a/old/src/main/java/tschipp/carryon/common/item/ItemCarryonEntity.java b/old/src/main/java/tschipp/carryon/common/item/ItemCarryonEntity.java deleted file mode 100644 index 531d217..0000000 --- a/old/src/main/java/tschipp/carryon/common/item/ItemCarryonEntity.java +++ /dev/null @@ -1,280 +0,0 @@ -package tschipp.carryon.common.item; - -import java.lang.reflect.Method; -import java.util.Optional; - -import javax.annotation.Nonnull; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.util.ObfuscationReflectionHelper; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.event.ItemEvents; - -public class ItemCarryonEntity extends Item -{ - - private static final Method initGoals; - - static - { - initGoals = ObfuscationReflectionHelper.findMethod(Mob.class, "m_8099_"); - initGoals.setAccessible(true); - } - - public static final String ENTITY_DATA_KEY = "entityData"; - - public ItemCarryonEntity() - { - super(new Item.Properties().stacksTo(1)); - } - - @Override - public Component getName(ItemStack stack) - { - if (hasEntityData(stack)) - { - - return Component.translatable(getEntityType(stack).getDescriptionId()); - } - - return Component.literal(""); - } - - public static boolean hasEntityData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - return tag.contains(ENTITY_DATA_KEY) && tag.contains("entity"); - } - return false; - } - - public static boolean storeEntityData(@Nonnull Entity entity, Level level, ItemStack stack) - { - if (entity == null || stack.isEmpty()) - return false; - - CompoundTag entityData = new CompoundTag(); - entity.saveWithoutId(entityData); - - String name = EntityType.getKey(entity.getType()).toString(); - - CompoundTag tag = stack.hasTag() ? stack.getTag() : new CompoundTag(); - if (tag.contains(ENTITY_DATA_KEY)) - return false; - - tag.put(ENTITY_DATA_KEY, entityData); - tag.putString("entity", name); - stack.setTag(tag); - return true; - } - - @Override - public InteractionResult useOn(UseOnContext context) - { - Player player = context.getPlayer(); - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - Direction facing = context.getClickedFace(); - - ItemStack stack = context.getItemInHand(); - - BlockState state = level.getBlockState(pos); - - if (ModList.get().isLoaded("betterplacement") && CarryOnKeybinds.isKeyPressed(player)) - return InteractionResult.FAIL; - - if (hasEntityData(stack)) - { - BlockPos finalPos = pos; - - if (!state.canBeReplaced(new BlockPlaceContext(context))) - { - finalPos = pos.relative(facing); - } - - Entity entity = getEntity(stack, level); - if (entity != null) - { - if (!level.isClientSide) - { - entity.absMoveTo(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5, 180 + player.yHeadRot, 0.0f); - level.addFreshEntity(entity); - if (entity instanceof Mob) - { - ((Mob) entity).playAmbientSound(); - } - clearEntityData(stack); - player.setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); - ItemEvents.sendPacket(player, 9, 0); - - } - player.getPersistentData().remove("overrideKey"); - return InteractionResult.SUCCESS; - } - } - - return InteractionResult.FAIL; - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int itemSlot, boolean isSelected) - { - if (hasEntityData(stack)) - { - if (getEntity(stack, level) == null) - stack = ItemStack.EMPTY; - - if (entity instanceof LivingEntity) - { - if (entity instanceof Player && Settings.slownessInCreative.get() ? false : ((Player) entity).isCreative()) - return; - - ((LivingEntity) entity).addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 1, this.potionLevel(stack, level), false, false)); - } - - } - else - { - stack = ItemStack.EMPTY; - } - } - - public static void clearEntityData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - tag.remove(ENTITY_DATA_KEY); - tag.remove("entity"); - } - } - - public static CompoundTag getPersistentData(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - return tag.getCompound(ENTITY_DATA_KEY); - } - return null; - } - - public static Entity getEntity(ItemStack stack, Level level) - { - if (level == null) - return null; - - String name = getEntityName(stack); - - CompoundTag e = getPersistentData(stack); - Optional> type = EntityType.byString(name); - Entity entity = null; - - if (type.isPresent()) - { - entity = type.get().create(level); - } - - if (entity != null) - { - try - { - if (entity instanceof Mob) - initGoals.invoke(entity); - entity.deserializeNBT(e); - } - catch (Exception e1) - { - try - { - entity.deserializeNBT(e); - } - catch (Exception e2) - { - } - } - } - - return entity; - } - - public static String getEntityName(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - return tag.getString("entity"); - } - return null; - } - - public static String getCustomName(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - if (tag.contains("CustomName") && !tag.getString("CustomName").isEmpty()) - { - return tag.toString(); - } - else - { - return tag.toString(); - } - } - return null; - } - - public static EntityType getEntityType(ItemStack stack) - { - if (stack.hasTag()) - { - CompoundTag tag = stack.getTag(); - String name = tag.getString("entity"); - Optional> type = EntityType.byString(name); - if (type.isPresent()) - return type.get(); - } - return null; - } - - private int potionLevel(ItemStack stack, Level level) - { - Entity e = getEntity(stack, level); - if (e == null) - return 1; - - int i = (int) (e.getBbHeight() * e.getBbWidth()); - if (i > 4) - i = 4; - - if (!Settings.heavyEntities.get()) - i = 1; - - double multiplier = Settings.entitySlownessMultiplier.get(); - - return (int) (multiplier * i); - } -} diff --git a/old/src/main/java/tschipp/carryon/common/scripting/CarryOnOverride.java b/old/src/main/java/tschipp/carryon/common/scripting/CarryOnOverride.java deleted file mode 100644 index 511119b..0000000 --- a/old/src/main/java/tschipp/carryon/common/scripting/CarryOnOverride.java +++ /dev/null @@ -1,767 +0,0 @@ -package tschipp.carryon.common.scripting; - -import java.util.Objects; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.TagParser; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; -import tschipp.carryon.common.helper.InvalidConfigException; - -public class CarryOnOverride -{ - // BLOCKS - private CompoundTag typeBlockTag = new CompoundTag(); - private String typeNameBlock = ""; - private String typeMaterial = ""; - private String typeHardness = ""; - private String typeResistance = ""; - - // ENTITIES - private CompoundTag typeEntityTag; - private String typeNameEntity = ""; - private String typeHeight = ""; - private String typeWidth = ""; - private String typeHealth = ""; - - // CONDITIONS - private String conditionGamestage = ""; - private String conditionAchievement = ""; - private String conditionXp = ""; - private String conditionGamemode = ""; - private String conditionScoreboard = ""; - private String conditionPosition = ""; - private String conditionEffects = ""; - - // RENDER - private String renderNameBlock = ""; - private String renderNameEntity = ""; - private CompoundTag renderNBT = new CompoundTag(); - private String renderTranslation = ""; - private String renderRotation = ""; - private String renderscaled = ""; - private String renderRotationLeftArm = ""; - private String renderRotationRightArm = ""; - private boolean renderLeftArm = true; - private boolean renderRightArm = true; - - // EFFECTS - private String commandInit = ""; - private String commandLoop = ""; - private String commandPlace = ""; - - private boolean isBlock; - private boolean isEntity; - private String resourceLocation = ""; - public boolean isInvalid = false; - - public CarryOnOverride(String path) - { - this.resourceLocation = path; - } - - public CarryOnOverride(JsonElement jsonElem, ResourceLocation loc) - { - boolean errored = false; - this.resourceLocation = loc.toString(); - - if (jsonElem != null && jsonElem.isJsonObject()) - { - try - { - JsonObject json = jsonElem.getAsJsonObject(); - JsonObject object = (JsonObject) json.get("object"); - JsonObject conditions = (JsonObject) json.get("conditions"); - JsonObject render = (JsonObject) json.get("render"); - JsonObject effects = (JsonObject) json.get("effects"); - - if (object != null && (conditions != null || render != null || effects != null)) - { - JsonObject block = (JsonObject) object.get("block"); - JsonObject entity = (JsonObject) object.get("entity"); - - if (block == null && entity == null || block != null && entity != null) - errored = true; - - if (!errored) - { - if (block != null) - { - this.setBlock(true); - JsonElement name = block.get("name"); - JsonElement material = block.get("material"); - JsonElement hardness = block.get("hardness"); - JsonElement resistance = block.get("resistance"); - JsonObject nbt = (JsonObject) block.get("nbt"); - - if (name != null) - this.setTypeNameBlock(name.getAsString()); - if (material != null) - this.setTypeMaterial(material.getAsString()); - if (hardness != null) - this.setTypeHardness(hardness.getAsString()); - if (resistance != null) - this.setTypeResistance(resistance.getAsString()); - if (nbt != null) - this.setTypeBlockTag(TagParser.parseTag(nbt.toString())); - } - else - { - this.setEntity(true); - JsonElement name = entity.get("name"); - JsonElement health = entity.get("health"); - JsonElement height = entity.get("height"); - JsonElement width = entity.get("width"); - JsonObject nbt = (JsonObject) entity.get("nbt"); - - if (name != null) - this.setTypeNameEntity(name.getAsString()); - if (health != null) - this.setTypeHealth(health.getAsString()); - if (height != null) - this.setTypeHeight(height.getAsString()); - if (width != null) - this.setTypeWidth(width.getAsString()); - if (nbt != null) - this.setTypeEntityTag(TagParser.parseTag(nbt.toString())); - } - - if (conditions != null) - { - JsonElement gamestage = conditions.get("gamestage"); - JsonElement achievement = conditions.get("advancement"); - JsonElement xp = conditions.get("xp"); - JsonElement gamemode = conditions.get("gamemode"); - JsonElement scoreboard = conditions.get("scoreboard"); - JsonElement position = conditions.get("position"); - JsonElement potionEffects = conditions.get("effects"); - - if (gamestage != null) - this.setConditionGamestage(gamestage.getAsString()); - if (achievement != null) - this.setConditionAchievement(achievement.getAsString()); - if (xp != null) - this.setConditionXp(xp.getAsString()); - if (gamemode != null) - this.setConditionGamemode(gamemode.getAsString()); - if (scoreboard != null) - this.setConditionScoreboard(scoreboard.getAsString()); - if (position != null) - this.setConditionPosition(position.getAsString()); - if (potionEffects != null) - this.setConditionEffects(potionEffects.getAsString()); - } - - if (render != null) - { - JsonElement name_block = render.get("name_block"); - JsonElement name_entity = render.get("name_entity"); - JsonObject nbt = (JsonObject) render.get("nbt"); - JsonElement translation = render.get("translation"); - JsonElement rotation = render.get("rotation"); - JsonElement scaled = render.get("scale"); - JsonElement rotationLeftArm = render.get("rotation_left_arm"); - JsonElement rotationRightArm = render.get("rotation_right_arm"); - JsonElement renderLeftArm = render.get("render_left_arm"); - JsonElement renderRightArm = render.get("render_right_arm"); - - if (name_block != null) - this.setRenderNameBlock(name_block.getAsString()); - if (name_entity != null) - this.setRenderNameEntity(name_entity.getAsString()); - if (translation != null) - this.setRenderTranslation(translation.getAsString()); - if (rotation != null) - this.setRenderRotation(rotation.getAsString()); - if (scaled != null) - this.setRenderscaled(scaled.getAsString()); - if (nbt != null) - this.setRenderNBT(TagParser.parseTag(nbt.toString())); - if (rotationLeftArm != null) - this.setRenderRotationLeftArm(rotationLeftArm.getAsString()); - if (rotationRightArm != null) - this.setRenderRotationRightArm(rotationRightArm.getAsString()); - if (renderLeftArm != null) - this.setRenderLeftArm(renderLeftArm.getAsBoolean()); - if (renderRightArm != null) - this.setRenderRightArm(renderRightArm.getAsBoolean()); - } - - if (effects != null) - { - JsonElement commandInit = effects.get("commandPickup"); - JsonElement commandLoop = effects.get("commandLoop"); - JsonElement commandPlace = effects.get("commandPlace"); - - if (commandInit != null) - this.setCommandInit(commandInit.getAsString()); - if (commandLoop != null) - this.setCommandLoop(commandLoop.getAsString()); - if (commandPlace != null) - this.setCommandPlace(commandPlace.getAsString()); - } - } - else - this.isInvalid = true; - } - } - catch (Exception e) - { - this.isInvalid = true; - } - } - else - this.isInvalid = true; - - if (!this.isBlock && !this.isEntity) - this.isInvalid = true; - - if (this.isInvalid) - new InvalidConfigException("The script parsing for " + this.resourceLocation + " has failed! Please double check!").printException(); - } - - public String getCommandInit() - { - return this.commandInit; - } - - public void setCommandInit(String commandInit) - { - this.commandInit = commandInit; - } - - public String getCommandLoop() - { - return this.commandLoop; - } - - public void setCommandLoop(String commandLoop) - { - this.commandLoop = commandLoop; - } - - public String getConditionEffects() - { - return this.conditionEffects; - } - - public void setConditionEffects(String conditionEffects) - { - this.conditionEffects = conditionEffects; - } - - public String getRenderRotationLeftArm() - { - return this.renderRotationLeftArm; - } - - public void setRenderRotationLeftArm(String renderRotationLeftArm) - { - this.renderRotationLeftArm = renderRotationLeftArm; - } - - public String getRenderRotationRightArm() - { - return this.renderRotationRightArm; - } - - public void setRenderRotationRightArm(String renderRotationRightArm) - { - this.renderRotationRightArm = renderRotationRightArm; - } - - public boolean isRenderLeftArm() - { - return this.renderLeftArm; - } - - public void setRenderLeftArm(boolean renderLeftArm) - { - this.renderLeftArm = renderLeftArm; - } - - public boolean isRenderRightArm() - { - return this.renderRightArm; - } - - public void setRenderRightArm(boolean renderRightArm) - { - this.renderRightArm = renderRightArm; - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - return prime * result + (this.resourceLocation == null ? 0 : this.resourceLocation.hashCode()); - } - - @Override - public String toString() - { - return "Code: " + this.hashCode(); - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null || this.getClass() != obj.getClass()) - return false; - CarryOnOverride other = (CarryOnOverride) obj; - if (!Objects.equals(this.commandInit, other.commandInit) || !Objects.equals(this.commandLoop, other.commandLoop) || !Objects.equals(this.commandPlace, other.commandPlace) || !Objects.equals(this.conditionAchievement, other.conditionAchievement)) - { - return false; - } - if (!Objects.equals(this.conditionEffects, other.conditionEffects) || !Objects.equals(this.conditionGamemode, other.conditionGamemode) || !Objects.equals(this.conditionGamestage, other.conditionGamestage) || !Objects.equals(this.conditionPosition, other.conditionPosition)) - { - return false; - } - if (!Objects.equals(this.conditionScoreboard, other.conditionScoreboard)) - { - return false; - } - if (!Objects.equals(this.conditionXp, other.conditionXp)) - { - return false; - } - if (this.isBlock != other.isBlock) - return false; - if (this.isEntity != other.isEntity) - return false; - if (!Objects.equals(this.resourceLocation, other.resourceLocation)) - { - return false; - } - if (this.renderLeftArm != other.renderLeftArm) - return false; - if (!Objects.equals(this.renderNBT, other.renderNBT)) - { - return false; - } - if (!Objects.equals(this.renderNameBlock, other.renderNameBlock)) - { - return false; - } - if (!Objects.equals(this.renderNameEntity, other.renderNameEntity)) - { - return false; - } - if (this.renderRightArm != other.renderRightArm) - return false; - if (!Objects.equals(this.renderRotation, other.renderRotation)) - { - return false; - } - if (!Objects.equals(this.renderRotationLeftArm, other.renderRotationLeftArm)) - { - return false; - } - if (!Objects.equals(this.renderRotationRightArm, other.renderRotationRightArm)) - { - return false; - } - if (!Objects.equals(this.renderscaled, other.renderscaled)) - { - return false; - } - if (!Objects.equals(this.renderTranslation, other.renderTranslation)) - { - return false; - } - if (!Objects.equals(this.typeBlockTag, other.typeBlockTag)) - { - return false; - } - if (!Objects.equals(this.typeEntityTag, other.typeEntityTag)) - { - return false; - } - if (!Objects.equals(this.typeHardness, other.typeHardness)) - { - return false; - } - if (!Objects.equals(this.typeHealth, other.typeHealth)) - { - return false; - } - if (!Objects.equals(this.typeHeight, other.typeHeight)) - { - return false; - } - if (!Objects.equals(this.typeMaterial, other.typeMaterial)) - { - return false; - } - if (!Objects.equals(this.typeNameBlock, other.typeNameBlock)) - { - return false; - } - if (!Objects.equals(this.typeNameEntity, other.typeNameEntity)) - { - return false; - } - if (!Objects.equals(this.typeResistance, other.typeResistance)) - { - return false; - } - if (!Objects.equals(this.typeWidth, other.typeWidth)) - { - return false; - } - return true; - } - - public boolean isBlock() - { - return this.isBlock; - } - - public void setBlock(boolean isBlock) - { - this.isBlock = isBlock; - } - - public boolean isEntity() - { - return this.isEntity; - } - - public void setEntity(boolean isEntity) - { - this.isEntity = isEntity; - } - - public CompoundTag getTypeBlockTag() - { - return this.typeBlockTag; - } - - public String getTypeNameBlock() - { - return this.typeNameBlock; - } - - public String getTypeMaterial() - { - return this.typeMaterial; - } - - public String getTypeHardness() - { - return this.typeHardness; - } - - public String getTypeResistance() - { - return this.typeResistance; - } - - public CompoundTag getTypeEntityTag() - { - return this.typeEntityTag; - } - - public String getTypeNameEntity() - { - return this.typeNameEntity; - } - - public String getTypeHeight() - { - return this.typeHeight; - } - - public String getTypeWidth() - { - return this.typeWidth; - } - - public String getTypeHealth() - { - return this.typeHealth; - } - - public String getConditionGamestage() - { - return this.conditionGamestage; - } - - public String getConditionAchievement() - { - return this.conditionAchievement; - } - - public String getConditionXp() - { - return this.conditionXp; - } - - public String getConditionGamemode() - { - return this.conditionGamemode; - } - - public String getConditionScoreboard() - { - return this.conditionScoreboard; - } - - public String getConditionPosition() - { - return this.conditionPosition; - } - - public String getRenderNameBlock() - { - return this.renderNameBlock; - } - - public String getRenderNameEntity() - { - return this.renderNameEntity; - } - - public CompoundTag getRenderNBT() - { - return this.renderNBT; - } - - public String getRenderTranslation() - { - return this.renderTranslation; - } - - public String getRenderRotation() - { - return this.renderRotation; - } - - public String getRenderScaled() - { - return this.renderscaled; - } - - public void setTypeBlockTag(CompoundTag typeBlockTag) - { - this.typeBlockTag = typeBlockTag; - } - - public void setTypeNameBlock(String typeNameBlock) - { - this.typeNameBlock = typeNameBlock; - } - - public void setTypeMaterial(String typeMaterial) - { - this.typeMaterial = typeMaterial; - } - - public void setTypeHardness(String typeHardness) - { - this.typeHardness = typeHardness; - } - - public void setTypeResistance(String typeResistance) - { - this.typeResistance = typeResistance; - } - - public void setTypeEntityTag(CompoundTag typeEntityTag) - { - this.typeEntityTag = typeEntityTag; - } - - public void setTypeNameEntity(String typeNameEntity) - { - this.typeNameEntity = typeNameEntity; - } - - public void setTypeHeight(String typeHeight) - { - this.typeHeight = typeHeight; - } - - public void setTypeWidth(String typeWidth) - { - this.typeWidth = typeWidth; - } - - public void setTypeHealth(String typeHealth) - { - this.typeHealth = typeHealth; - } - - public void setConditionGamestage(String conditionGamestage) - { - this.conditionGamestage = conditionGamestage; - } - - public void setConditionAchievement(String conditionAchievement) - { - this.conditionAchievement = conditionAchievement; - } - - public void setConditionXp(String conditionXp) - { - this.conditionXp = conditionXp; - } - - public void setConditionGamemode(String conditionGamemode) - { - this.conditionGamemode = conditionGamemode; - } - - public void setConditionScoreboard(String conditionScoreboard) - { - this.conditionScoreboard = conditionScoreboard; - } - - public void setConditionPosition(String conditionPosition) - { - this.conditionPosition = conditionPosition; - } - - public void setRenderNameBlock(String renderNameBlock) - { - this.renderNameBlock = renderNameBlock; - } - - public void setRenderNameEntity(String renderNameEntity) - { - this.renderNameEntity = renderNameEntity; - } - - public void setRenderNBT(CompoundTag renderNBT) - { - this.renderNBT = renderNBT; - } - - public void setRenderTranslation(String renderTranslation) - { - this.renderTranslation = renderTranslation; - } - - public void setRenderRotation(String renderRotation) - { - this.renderRotation = renderRotation; - } - - public void setRenderscaled(String renderscaled) - { - this.renderscaled = renderscaled; - } - - public String getCommandPlace() - { - return this.commandPlace; - } - - public void setCommandPlace(String commandPlace) - { - this.commandPlace = commandPlace; - } - - public void serialize(FriendlyByteBuf buf) - { - // BLOCKS - buf.writeNbt(this.typeBlockTag); - buf.writeUtf(this.typeNameBlock); - buf.writeUtf(this.typeMaterial); - buf.writeUtf(this.typeHardness); - buf.writeUtf(this.typeResistance); - - // ENTITIES - buf.writeNbt(this.typeEntityTag); - buf.writeUtf(this.typeNameEntity); - buf.writeUtf(this.typeHeight); - buf.writeUtf(this.typeWidth); - buf.writeUtf(this.typeHealth); - - // CONDITIONS - buf.writeUtf(this.conditionGamestage); - buf.writeUtf(this.conditionAchievement); - buf.writeUtf(this.conditionXp); - buf.writeUtf(this.conditionGamemode); - buf.writeUtf(this.conditionScoreboard); - buf.writeUtf(this.conditionPosition); - buf.writeUtf(this.conditionEffects); - - // RENDER - buf.writeUtf(this.renderNameBlock); - buf.writeUtf(this.renderNameEntity); - buf.writeNbt(this.renderNBT); - buf.writeUtf(this.renderTranslation); - buf.writeUtf(this.renderRotation); - buf.writeUtf(this.renderscaled); - buf.writeUtf(this.renderRotationLeftArm); - buf.writeUtf(this.renderRotationRightArm); - buf.writeBoolean(this.renderLeftArm); - buf.writeBoolean(this.renderRightArm); - - // EFFECTS - buf.writeUtf(this.commandInit); - buf.writeUtf(this.commandLoop); - buf.writeUtf(this.commandPlace); - - buf.writeBoolean(this.isBlock); - buf.writeBoolean(this.isEntity); - buf.writeUtf(this.resourceLocation); - } - - public static CarryOnOverride deserialize(FriendlyByteBuf buf) - { - CarryOnOverride override = new CarryOnOverride(""); - override.typeBlockTag = buf.readNbt(); - override.typeNameBlock = buf.readUtf(); - override.typeMaterial = buf.readUtf(); - override.typeHardness = buf.readUtf(); - override.typeResistance = buf.readUtf(); - - // ENTITIES - override.typeEntityTag = buf.readNbt(); - override.typeNameEntity = buf.readUtf(); - override.typeHeight = buf.readUtf(); - override.typeWidth = buf.readUtf(); - override.typeHealth = buf.readUtf(); - - // CONDITIONS - override.conditionGamestage = buf.readUtf(); - override.conditionAchievement = buf.readUtf(); - override.conditionXp = buf.readUtf(); - override.conditionGamemode = buf.readUtf(); - override.conditionScoreboard = buf.readUtf(); - override.conditionPosition = buf.readUtf(); - override.conditionEffects = buf.readUtf(); - - // RENDER - override.renderNameBlock = buf.readUtf(); - override.renderNameEntity = buf.readUtf(); - override.renderNBT = buf.readNbt(); - override.renderTranslation = buf.readUtf(); - override.renderRotation = buf.readUtf(); - override.renderscaled = buf.readUtf(); - override.renderRotationLeftArm = buf.readUtf(); - override.renderRotationRightArm = buf.readUtf(); - override.renderLeftArm = buf.readBoolean(); - override.renderRightArm = buf.readBoolean(); - - // EFFECTS - override.commandInit = buf.readUtf(); - override.commandLoop = buf.readUtf(); - override.commandPlace = buf.readUtf(); - - override.isBlock = buf.readBoolean(); - override.isEntity = buf.readBoolean(); - override.resourceLocation = buf.readUtf(); - - return override; - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/scripting/ScriptChecker.java b/old/src/main/java/tschipp/carryon/common/scripting/ScriptChecker.java deleted file mode 100644 index 9095910..0000000 --- a/old/src/main/java/tschipp/carryon/common/scripting/ScriptChecker.java +++ /dev/null @@ -1,179 +0,0 @@ -package tschipp.carryon.common.scripting; - -import java.lang.reflect.Method; - -import javax.annotation.Nullable; - -import net.minecraft.advancements.Advancement; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.ServerAdvancementManager; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.util.ObfuscationReflectionHelper; -import net.minecraftforge.registries.ForgeRegistries; -import tschipp.carryon.common.config.Configs.Settings; -import tschipp.carryon.common.handler.ListHandler; -import tschipp.carryon.common.helper.ScriptParseHelper; - -public class ScriptChecker -{ - @Nullable - public static CarryOnOverride inspectBlock(BlockState state, Level level, BlockPos pos, @Nullable CompoundTag tag) - { - if (!Settings.useScripts.get()) - return null; - - Block block = state.getBlock(); - Material material = state.getMaterial(); - float hardness = state.getDestroySpeed(level, pos); - @SuppressWarnings("deprecation") - float resistance = block.getExplosionResistance(); - CompoundTag nbt = tag; - - boolean isAllowed = Settings.useWhitelistBlocks.get() ? ListHandler.isAllowed(block) : !ListHandler.isForbidden(block); - - if (isAllowed) - { - for (CarryOnOverride override : ScriptReader.OVERRIDES.values()) - { - if (override.isBlock() && matchesAll(override, block, material, hardness, resistance, nbt)) - return override; - } - } - - return null; - } - - @Nullable - public static CarryOnOverride inspectEntity(Entity entity) - { - if (!Settings.useScripts.get()) - return null; - - String name = ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()).toString(); - float height = entity.getBbHeight(); - float width = entity.getBbWidth(); - float health = entity instanceof LivingEntity ? ((LivingEntity) entity).getHealth() : 0.0f; - CompoundTag tag = entity.serializeNBT(); - - boolean isAllowed = Settings.useWhitelistEntities.get() ? ListHandler.isAllowed(entity) : !ListHandler.isForbidden(entity); - - if (isAllowed) - { - for (CarryOnOverride override : ScriptReader.OVERRIDES.values()) - { - if (override.isEntity() && matchesAll(override, name, height, width, health, tag)) - return override; - } - } - - return null; - } - - public static boolean matchesAll(CarryOnOverride override, String name, float height, float width, float health, CompoundTag tag) - { - boolean matchname = override.getTypeNameEntity().isEmpty() ? true : name.equals(override.getTypeNameEntity()); - boolean matchheight = ScriptParseHelper.matches(height, override.getTypeHeight()); - boolean matchwidth = ScriptParseHelper.matches(width, override.getTypeWidth()); - boolean matchhealth = ScriptParseHelper.matches(health, override.getTypeHealth()); - boolean matchnbt = ScriptParseHelper.matches(tag, override.getTypeEntityTag()); - - return matchname && matchheight && matchwidth && matchhealth && matchnbt; - } - - public static boolean matchesAll(CarryOnOverride override, Block block, Material material, float hardness, float resistance, CompoundTag nbt) - { - boolean matchnbt = ScriptParseHelper.matches(nbt, override.getTypeBlockTag()); - boolean matchblock = ScriptParseHelper.matches(block, override.getTypeNameBlock()); - boolean matchmaterial = ScriptParseHelper.matches(material, override.getTypeMaterial()); - boolean matchhardness = ScriptParseHelper.matches(hardness, override.getTypeHardness()); - boolean matchresistance = ScriptParseHelper.matches(resistance, override.getTypeResistance()); - - return matchnbt && matchblock && matchmaterial && matchhardness && matchresistance; - } - - public static boolean fulfillsConditions(CarryOnOverride override, Player player) - { - ServerAdvancementManager manager = ((ServerPlayer) player).server.getAdvancements(); - Advancement adv = manager.getAdvancement(new ResourceLocation(override.getConditionAchievement().isEmpty() ? "" : override.getConditionAchievement())); - - boolean achievement = adv == null ? true : ((ServerPlayer) player).getAdvancements().getOrStartProgress(adv).isDone(); - boolean gamemode = ScriptParseHelper.matches(((ServerPlayer) player).gameMode.getGameModeForPlayer().getId(), override.getConditionGamemode()); - boolean gamestage = true; - if (ModList.get().isLoaded("gamestages") && !override.getConditionGamestage().isEmpty()) - { - try - { - Class gameStageHelper = Class.forName("net.darkhax.gamestages.GameStageHelper"); - Class iStageData = Class.forName("net.darkhax.gamestages.data.IStageData"); - - Method getPlayerData = ObfuscationReflectionHelper.findMethod(gameStageHelper, "getPlayerData", Player.class); - Method hasStage = ObfuscationReflectionHelper.findMethod(iStageData, "hasStage", String.class); - - Object stageData = getPlayerData.invoke(null, player); - String condition = override.getConditionGamestage(); - gamestage = (boolean) hasStage.invoke(stageData, condition); - } - catch (Exception e) - { - try - { - Class playerDataHandler = Class.forName("net.darkhax.gamestages.capabilities.PlayerDataHandler"); - Class iStageData = Class.forName("net.darkhax.gamestages.capabilities.PlayerDataHandler$IStageData"); - - Method getStageData = ObfuscationReflectionHelper.findMethod(playerDataHandler, "getStageData", Player.class); - Method hasUnlockedStage = ObfuscationReflectionHelper.findMethod(iStageData, "hasUnlockedStage", String.class); - - Object stageData = getStageData.invoke(null, player); - String condition = override.getConditionGamestage(); - gamestage = (boolean) hasUnlockedStage.invoke(stageData, condition); - - } - catch (Exception ex) - { - } - } - - } - - boolean position = ScriptParseHelper.matches(player.blockPosition(), override.getConditionPosition()); - boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp()); - boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard()); - boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects()); - - return achievement && gamemode && gamestage && position && xp && scoreboard && effects; - } - - @Nullable - public static CarryOnOverride getOverride(Player player) - { - CompoundTag tag = player.getPersistentData(); - - if (tag != null && tag.contains("overrideKey")) - { - int key = tag.getInt("overrideKey"); - - return ScriptReader.OVERRIDES.get(key); - } - - return null; - } - - public static void setCarryOnOverride(Player player, int i) - { - CompoundTag tag = player.getPersistentData(); - - if (tag != null) - tag.putInt("overrideKey", i); - } - -} diff --git a/old/src/main/java/tschipp/carryon/common/scripting/ScriptReader.java b/old/src/main/java/tschipp/carryon/common/scripting/ScriptReader.java deleted file mode 100644 index 9d68dbd..0000000 --- a/old/src/main/java/tschipp/carryon/common/scripting/ScriptReader.java +++ /dev/null @@ -1,191 +0,0 @@ -package tschipp.carryon.common.scripting; - -import java.util.HashMap; - -public class ScriptReader -{ - public static HashMap OVERRIDES = new HashMap<>(); - - // public static HashSet OVERRIDES = new - // HashSet(); - - // public static void preInit() - // { - // scripts.clear(); - // - // CarryOn.CONFIGURATION_FILE = new - // File(FMLPaths.CONFIGDIR.get().toString(), "/carryon-scripts/"); - // - // if (!CarryOn.CONFIGURATION_FILE.exists()) - // CarryOn.CONFIGURATION_FILE.mkdir(); - // - // for (File file : CarryOn.CONFIGURATION_FILE.listFiles()) - // { - // if (file.getName().endsWith(".json")) - // scripts.add(file); - // } - // - // } - - // public static void parseScripts() - // { - // OVERRIDES.clear(); - // - // try - // { - // if (!Settings.useScripts.get()) - // return; - // - // for (File file : scripts) - // { - // boolean errored = false; - // JsonParser parser = new JsonParser(); - // JsonObject json = (JsonObject) parser.parse(new - // FileReader(file.getAbsolutePath())); - // - // JsonObject object = (JsonObject) json.get("object"); - // JsonObject conditions = (JsonObject) json.get("conditions"); - // JsonObject render = (JsonObject) json.get("render"); - // JsonObject effects = (JsonObject) json.get("effects"); - // - // if ((object != null && conditions != null) || (object != null && render - // != null) || (object != null && effects != null)) - // { - // JsonObject block = (JsonObject) object.get("block"); - // JsonObject entity = (JsonObject) object.get("entity"); - // - // if ((block == null && entity == null) || (block != null && entity != - // null)) - // errored = true; - // - // if (!errored) - // { - // CarryOnOverride override = new CarryOnOverride(file.getAbsolutePath()); - // - // if (block != null) - // { - // override.setBlock(true); - // JsonElement name = block.get("name"); - // JsonElement material = block.get("material"); - // JsonElement hardness = block.get("hardness"); - // JsonElement resistance = block.get("resistance"); - // JsonObject nbt = (JsonObject) block.get("nbt"); - // - // if (name != null) - // override.setTypeNameBlock(name.getAsString()); - // if (material != null) - // override.setTypeMaterial(material.getAsString()); - // if (hardness != null) - // override.setTypeHardness(hardness.getAsString()); - // if (resistance != null) - // override.setTypeResistance(resistance.getAsString()); - // if (nbt != null) - // override.setTypeBlockTag(JsonToNBT.getTagFromJson(nbt.toString())); - // } else - // { - // override.setEntity(true); - // JsonElement name = entity.get("name"); - // JsonElement health = entity.get("health"); - // JsonElement height = entity.get("height"); - // JsonElement width = entity.get("width"); - // JsonObject nbt = (JsonObject) entity.get("nbt"); - // - // if (name != null) - // override.setTypeNameEntity(name.getAsString()); - // if (health != null) - // override.setTypeHealth(health.getAsString()); - // if (height != null) - // override.setTypeHeight(height.getAsString()); - // if (width != null) - // override.setTypeWidth(width.getAsString()); - // if (nbt != null) - // override.setTypeEntityTag(JsonToNBT.getTagFromJson(nbt.toString())); - // } - // - // if (conditions != null) - // { - // JsonElement gamestage = conditions.get("gamestage"); - // JsonElement achievement = conditions.get("advancement"); - // JsonElement xp = conditions.get("xp"); - // JsonElement gamemode = conditions.get("gamemode"); - // JsonElement scoreboard = conditions.get("scoreboard"); - // JsonElement position = conditions.get("position"); - // JsonElement potionEffects = conditions.get("effects"); - // - // if (gamestage != null) - // override.setConditionGamestage(gamestage.getAsString()); - // if (achievement != null) - // override.setConditionAchievement(achievement.getAsString()); - // if (xp != null) - // override.setConditionXp(xp.getAsString()); - // if (gamemode != null) - // override.setConditionGamemode(gamemode.getAsString()); - // if (scoreboard != null) - // override.setConditionScoreboard(scoreboard.getAsString()); - // if (position != null) - // override.setConditionPosition(position.getAsString()); - // if (potionEffects != null) - // override.setConditionEffects(potionEffects.getAsString()); - // } - // - // if (render != null) - // { - // JsonElement name_block = render.get("name_block"); - // JsonElement name_entity = render.get("name_entity"); - // JsonObject nbt = (JsonObject) render.get("nbt"); - // JsonElement translation = render.get("translation"); - // JsonElement rotation = render.get("rotation"); - // JsonElement scaled = render.get("scale"); - // JsonElement rotationLeftArm = render.get("rotation_left_arm"); - // JsonElement rotationRightArm = render.get("rotation_right_arm"); - // JsonElement renderLeftArm = render.get("render_left_arm"); - // JsonElement renderRightArm = render.get("render_right_arm"); - // - // if (name_block != null) - // override.setRenderNameBlock(name_block.getAsString()); - // if (name_entity != null) - // override.setRenderNameEntity(name_entity.getAsString()); - // if (translation != null) - // override.setRenderTranslation(translation.getAsString()); - // if (rotation != null) - // override.setRenderRotation(rotation.getAsString()); - // if (scaled != null) - // override.setRenderscaled(scaled.getAsString()); - // if (nbt != null) - // override.setRenderNBT(JsonToNBT.getTagFromJson(nbt.toString())); - // if (rotationLeftArm != null) - // override.setRenderRotationLeftArm(rotationLeftArm.getAsString()); - // if (rotationRightArm != null) - // override.setRenderRotationRightArm(rotationRightArm.getAsString()); - // if (renderLeftArm != null) - // override.setRenderLeftArm(renderLeftArm.getAsBoolean()); - // if (renderRightArm != null) - // override.setRenderRightArm(renderRightArm.getAsBoolean()); - // } - // - // if (effects != null) - // { - // JsonElement commandInit = effects.get("commandPickup"); - // JsonElement commandLoop = effects.get("commandLoop"); - // JsonElement commandPlace = effects.get("commandPlace"); - // - // if (commandInit != null) - // override.setCommandInit(commandInit.getAsString()); - // if (commandLoop != null) - // override.setCommandLoop(commandLoop.getAsString()); - // if (commandPlace != null) - // override.setCommandPlace(commandPlace.getAsString()); - // } - // - // OVERRIDES.put(override.hashCode(), override); - // } - // } - // } - // - // System.out.println("Successfully parsed scripts!"); - // } catch (Exception e) - // { - // CarryOn.LOGGER.error(e); - // } - // } -} diff --git a/old/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java b/old/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java deleted file mode 100644 index 3a16dbf..0000000 --- a/old/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java +++ /dev/null @@ -1,55 +0,0 @@ -package tschipp.carryon.common.scripting; - -import java.util.Map; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener; -import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraftforge.event.AddReloadListenerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; -import net.minecraftforge.fml.util.thread.EffectiveSide; -import net.minecraftforge.network.PacketDistributor; -import net.minecraftforge.server.ServerLifecycleHooks; -import tschipp.carryon.CarryOn; -import tschipp.carryon.network.client.ScriptReloadPacket; - -@EventBusSubscriber(modid = CarryOn.MODID, bus = Bus.FORGE) -public class ScriptReloadListener extends SimpleJsonResourceReloadListener -{ - private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); - - public ScriptReloadListener() - { - super(GSON, "carryon/scripts"); - } - - @Override - protected void apply(Map objects, ResourceManager manager, ProfilerFiller profiler) - { - ScriptReader.OVERRIDES.clear(); - - objects.forEach((path, jsonElem) -> { - CarryOnOverride override = new CarryOnOverride(jsonElem, path); - if (!override.isInvalid) - ScriptReader.OVERRIDES.put(override.hashCode(), override); - }); - - if (EffectiveSide.get().isServer() && ServerLifecycleHooks.getCurrentServer() != null) - { - CarryOn.network.send(PacketDistributor.ALL.noArg(), new ScriptReloadPacket(ScriptReader.OVERRIDES.values())); - } - } - - @SubscribeEvent - public static void onDatapackRegister(AddReloadListenerEvent event) - { - event.addListener(new ScriptReloadListener()); - } -} diff --git a/old/src/main/java/tschipp/carryon/compat/obfuscate/ObfuscateEvents.java b/old/src/main/java/tschipp/carryon/compat/obfuscate/ObfuscateEvents.java deleted file mode 100644 index 0974ac7..0000000 --- a/old/src/main/java/tschipp/carryon/compat/obfuscate/ObfuscateEvents.java +++ /dev/null @@ -1,125 +0,0 @@ -// package tschipp.carryon.compat.obfuscate; -// -// import com.mrcrayfish.obfuscate.client.event.PlayerModelEvent; -// -// import net.minecraft.client.model.PlayerModel; -// import net.minecraft.client.renderer.model.ModelRenderer; -// import net.minecraft.entity.player.PlayerEntity; -// import net.minecraft.world.item.ItemStack; -// import net.minecraftforge.api.distmarker.Dist; -// import net.minecraftforge.api.distmarker.OnlyIn; -// import net.minecraftforge.eventbus.api.SubscribeEvent; -// import tschipp.carryon.common.config.Configs.Settings; -// import tschipp.carryon.common.handler.RegistrationHandler; -// import tschipp.carryon.common.helper.ScriptParseHelper; -// import tschipp.carryon.common.item.ItemCarryonBlock; -// import tschipp.carryon.common.item.ItemCarryonEntity; -// import tschipp.carryon.common.scripting.CarryOnOverride; -// import tschipp.carryon.common.scripting.ScriptChecker; -// -// public class ObfuscateEvents -// { -// -// @SubscribeEvent -// public void preModelPlayerEvent(PlayerModelEvent.SetupAngles.Post event) -// { -// if(!Settings.renderArms.get()) -// return; -// -// PlayerEntity player = event.getPlayer(); -// -// Pose pose = player.getPose(); -// if (pose == Pose.SWIMMING || pose == Pose.FALL_FLYING) -// return; -// -// PlayerModel model = event.getModelPlayer(); -// ItemStack stack = player.getMainHandItem(); -// if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile.get() && -// ItemCarryonBlock.hasTileData(stack) || stack.getItem() == -// RegistrationHandler.itemEntity.get() && ItemCarryonEntity.hasEntityData(stack)) -// { -// -// float rotation = 0; -// -// CarryOnOverride overrider = ScriptChecker.getOverride(player); -// if (overrider != null) -// { -// float[] rotLeft = null; -// float[] rotRight = null; -// if (overrider.getRenderRotationLeftArm() != null) -// rotLeft = -// ScriptParseHelper.getXYZArray(overrider.getRenderRotationLeftArm()); -// if (overrider.getRenderRotationRightArm() != null) -// rotRight = -// ScriptParseHelper.getXYZArray(overrider.getRenderRotationRightArm()); -// -// boolean renderRight = overrider.isRenderRightArm(); -// boolean renderLeft = overrider.isRenderLeftArm(); -// -// if (renderLeft && rotLeft != null) -// { -// renderArmPre(model.leftArm, (float) rotLeft[0], (float) rotLeft[2], -// rotation); -// renderArmPre(model.leftSleeve, (float) rotLeft[0], (float) rotLeft[2], -// rotation); -// } -// else if (renderLeft) -// { -// renderArmPre(model.leftArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0), rotation); -// renderArmPre(model.leftSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0), rotation); -// } -// -// if (renderRight && rotRight != null) -// { -// renderArmPre(model.rightArm, (float) rotRight[0], (float) rotRight[2], -// rotation); -// renderArmPre(model.rightSleeve, (float) rotRight[0], (float) rotRight[2], -// rotation); -// } -// else if (renderRight) -// { -// renderArmPre(model.rightArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0), rotation); -// renderArmPre(model.rightSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) -// - (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0), rotation); -// } -// -// } -// else -// { -// renderArmPre(model.rightArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0), rotation); -// renderArmPre(model.rightSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) -// - (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.15f : 0), rotation); -// renderArmPre(model.leftArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0), rotation); -// renderArmPre(model.leftSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? -0.2f : 0), -// (stack.getItem() == RegistrationHandler.itemEntity.get() ? 0.15f : 0), rotation); -// } -// -// } -// -// } -// -// -// @OnlyIn(Dist.CLIENT) -// private void renderArmPre(ModelRenderer arm, float x, float z, float -// rotation) -// { -// arm.xRot = (float) -x; -// arm.yRot = (float) -Math.toRadians(rotation); -// arm.zRot = (float) z; -// } -// -// -// } diff --git a/old/src/main/java/tschipp/carryon/network/client/CarrySlotPacket.java b/old/src/main/java/tschipp/carryon/network/client/CarrySlotPacket.java deleted file mode 100644 index ed15dce..0000000 --- a/old/src/main/java/tschipp/carryon/network/client/CarrySlotPacket.java +++ /dev/null @@ -1,86 +0,0 @@ -package tschipp.carryon.network.client; - -import java.util.function.Supplier; - -import io.netty.buffer.ByteBuf; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraftforge.network.NetworkEvent; -import tschipp.carryon.CarryOn; -import tschipp.carryon.common.scripting.ScriptChecker; - -public class CarrySlotPacket -{ - public int slot; - public int carryOverride = 0; - public int entityid; - - public CarrySlotPacket(ByteBuf buf) - { - this.slot = buf.readInt(); - this.carryOverride = buf.readInt(); - this.entityid = buf.readInt(); - } - - public CarrySlotPacket(int slot, int entityid) - { - this.slot = slot; - this.entityid = entityid; - } - - public CarrySlotPacket(int slot, int entityid, int carryOverride) - { - this.slot = slot; - this.carryOverride = carryOverride; - this.entityid = entityid; - } - - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.slot); - buf.writeInt(this.carryOverride); - buf.writeInt(this.entityid); - } - - public boolean handle(Supplier ctx) - { - if (ctx.get().getDirection().getReceptionSide().isClient()) - { - ctx.get().setPacketHandled(true); - - ctx.get().enqueueWork(() -> { - - Level level = CarryOn.proxy.getLevel(); - ctx.get().setPacketHandled(true); - - if (level != null) - { - Entity e = level.getEntity(this.entityid); - - if (e instanceof Player player) - { - - - if (this.slot >= 9) - { - player.getPersistentData().remove("carrySlot"); - player.getPersistentData().remove("overrideKey"); - } - else - { - - player.getPersistentData().putInt("carrySlot", this.slot); - if (this.carryOverride != 0) - ScriptChecker.setCarryOnOverride(player, this.carryOverride); - } - } - - } - }); - } - - return true; - } - -} diff --git a/old/src/main/java/tschipp/carryon/network/client/ScriptReloadPacket.java b/old/src/main/java/tschipp/carryon/network/client/ScriptReloadPacket.java deleted file mode 100644 index a3bfc62..0000000 --- a/old/src/main/java/tschipp/carryon/network/client/ScriptReloadPacket.java +++ /dev/null @@ -1,60 +0,0 @@ -package tschipp.carryon.network.client; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.function.Supplier; - -import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.network.NetworkEvent; -import tschipp.carryon.common.scripting.CarryOnOverride; -import tschipp.carryon.common.scripting.ScriptReader; - -public class ScriptReloadPacket -{ - private List overrides = new ArrayList<>(); - -// public ScriptReloadPacket() -// { -// } - - public ScriptReloadPacket(Collection collection) - { - this.overrides.addAll(collection); - } - - public ScriptReloadPacket(FriendlyByteBuf buf) - { - int size = buf.readInt(); - for (int i = 0; i < size; i++) - { - this.overrides.add(CarryOnOverride.deserialize(buf)); - } - } - - public void toBytes(FriendlyByteBuf buf) - { - buf.writeInt(this.overrides.size()); - this.overrides.forEach(override -> override.serialize(buf)); - } - - public boolean handle(Supplier ctx) - { - if (ctx.get().getDirection().getReceptionSide().isClient()) - { - ctx.get().setPacketHandled(true); - ctx.get().enqueueWork(() -> { - - ScriptReader.OVERRIDES.clear(); - - this.overrides.forEach(override -> { - ScriptReader.OVERRIDES.put(override.hashCode(), override); - }); - - }); - } - - return true; - - } -} diff --git a/old/src/main/java/tschipp/carryon/network/server/SyncKeybindPacket.java b/old/src/main/java/tschipp/carryon/network/server/SyncKeybindPacket.java deleted file mode 100644 index 90b0367..0000000 --- a/old/src/main/java/tschipp/carryon/network/server/SyncKeybindPacket.java +++ /dev/null @@ -1,46 +0,0 @@ -package tschipp.carryon.network.server; - -import java.util.function.Supplier; - -import io.netty.buffer.ByteBuf; -import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.network.NetworkEvent; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; - -public class SyncKeybindPacket -{ - public boolean pressed; - - public SyncKeybindPacket(ByteBuf buf) - { - this.pressed = buf.readBoolean(); - } - - public SyncKeybindPacket(boolean pressed) - { - this.pressed = pressed; - } - - public void toBytes(ByteBuf buf) - { - buf.writeBoolean(this.pressed); - } - - public boolean handle(Supplier ctx) - { - if (ctx.get().getDirection().getReceptionSide().isServer()) - { - ctx.get().setPacketHandled(true); - ctx.get().enqueueWork(() -> { - - ServerPlayer player = ctx.get().getSender(); - - CarryOnKeybinds.setKeyPressed(player, this.pressed); - - }); - } - - return true; - } - -} diff --git a/old/src/main/java/tschipp/carryon/proxy/ClientProxy.java b/old/src/main/java/tschipp/carryon/proxy/ClientProxy.java deleted file mode 100644 index 9de6241..0000000 --- a/old/src/main/java/tschipp/carryon/proxy/ClientProxy.java +++ /dev/null @@ -1,36 +0,0 @@ -package tschipp.carryon.proxy; - -import net.minecraft.client.Minecraft; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import tschipp.carryon.client.keybinds.CarryOnKeybinds; -import tschipp.carryon.common.handler.RegistrationHandler; -import tschipp.carryon.common.helper.KeyboardCallbackWrapper; -import tschipp.carryon.common.helper.ScrollCallbackWrapper; - -public class ClientProxy implements IProxy -{ - - @Override - public void setup(FMLCommonSetupEvent event) - { - RegistrationHandler.regClientEvents(); - - new ScrollCallbackWrapper().setup(Minecraft.getInstance()); - new KeyboardCallbackWrapper().setup(Minecraft.getInstance()); - } - - @Override - public Player getPlayer() - { - - return Minecraft.getInstance().player; - } - - @Override - public Level getLevel() - { - return Minecraft.getInstance().level; - } -} diff --git a/old/src/main/java/tschipp/carryon/proxy/IProxy.java b/old/src/main/java/tschipp/carryon/proxy/IProxy.java deleted file mode 100644 index 7125387..0000000 --- a/old/src/main/java/tschipp/carryon/proxy/IProxy.java +++ /dev/null @@ -1,15 +0,0 @@ -package tschipp.carryon.proxy; - -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; - -public interface IProxy -{ - - public void setup(final FMLCommonSetupEvent event); - - public Player getPlayer(); - - public Level getLevel(); -} diff --git a/old/src/main/java/tschipp/carryon/proxy/ServerProxy.java b/old/src/main/java/tschipp/carryon/proxy/ServerProxy.java deleted file mode 100644 index 2f8e1c8..0000000 --- a/old/src/main/java/tschipp/carryon/proxy/ServerProxy.java +++ /dev/null @@ -1,28 +0,0 @@ -package tschipp.carryon.proxy; - -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; - -public class ServerProxy implements IProxy -{ - - @Override - public void setup(FMLCommonSetupEvent event) - { - - } - - @Override - public Player getPlayer() - { - return null; - } - - @Override - public Level getLevel() - { - return null; - } - -} diff --git a/old/src/main/resources/META-INF/mods.toml b/old/src/main/resources/META-INF/mods.toml deleted file mode 100644 index 46c77ae..0000000 --- a/old/src/main/resources/META-INF/mods.toml +++ /dev/null @@ -1,32 +0,0 @@ -modLoader="javafml" -loaderVersion="[41,)" -issueTrackerURL="https://github.com/Tschipp/CarryOn/issues" -logoFile="logo.png" -license="GNU LGPLv3" - -[[mods]] - modId="carryon" - version="${file.jarVersion}" - displayName="Carry On" - description='''Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.''' - authors="Tschipp, Purplicious_Cow, cy4n" #mandatory - displayURL="https://minecraft.curseforge.com/projects/carry-on" #mandatory - -[[dependencies.carryon]] #optional - # the modid of the dependency - modId="forge" #mandatory - # Does this dependency have to exist - if not, ordering below must be specified - mandatory=true #mandatory - # The version range of the dependency - versionRange="[41,)" #mandatory - # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory - ordering="NONE" - # Side this dependency is applied on - BOTH, CLIENT or SERVER - side="BOTH" - -[[dependencies.carryon]] - modId="minecraft" - mandatory=true - versionRange="[1.19,1.20)" - ordering="NONE" - side="BOTH" diff --git a/old/src/main/resources/assets/carryon/lang/en_ud.json b/old/src/main/resources/assets/carryon/lang/en_ud.json deleted file mode 100644 index 77a6461..0000000 --- a/old/src/main/resources/assets/carryon/lang/en_ud.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "sᵷuᴉʇʇǝS", - "carryon.category.blacklist": "ʇsᴉꞁʞɔɐꞁᗺ", - "carryon.category.modeloverrides": "(pǝɔuɐʌpⱯ) sǝpᴉɹɹǝʌO ꞁǝpoW", - "carryon.category.custompickupconditions": "(pǝɔuɐʌpⱯ) suoᴉʇᴉpuoƆ dnʞɔᴉԀ ɯoʇsnƆ", - "carryon.category.whitelist": "ʇsᴉꞁǝʇᴉɥM", - - "carryon.general.modeloverrides.modeloverrides": "sǝpᴉɹɹǝʌO ꞁǝpoW", - "carryon.general.blacklist.forbiddenentities": "dn ʞɔᴉd ʇouuɐɔ ɹǝʎɐꞁԀ ǝɥʇ ʇɐɥʇ sǝᴉʇᴉʇuƎ", - "carryon.general.blacklist.forbiddentiles": "dn ʞɔᴉd ʇouuɐɔ ɹǝʎɐꞁԀ ǝɥʇ ʇɐɥʇ sʞɔoꞁᗺ", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "suoᴉʇᴉpuoƆ dnʞɔᴉԀ ʞɔoꞁᗺ ɯoʇsnƆ", - "carryon.category.custompickupconditions.custompickupconditionsentities": "suoᴉʇᴉpuoƆ dnʞɔᴉԀ ʎʇᴉʇuƎ ɯoʇsnƆ", - - "key.carry.desc": "ʎɹɹɐƆ", - "key.carry.category": "uO ʎɹɹɐƆ" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/lang/en_us.json b/old/src/main/resources/assets/carryon/lang/en_us.json deleted file mode 100644 index 8cea73d..0000000 --- a/old/src/main/resources/assets/carryon/lang/en_us.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "Settings", - "carryon.category.blacklist": "Blacklist", - "carryon.category.modeloverrides": "Model Overrides (Advanced)", - "carryon.category.custompickupconditions": "Custom Pickup Conditions (Advanced)", - "carryon.category.whitelist": "Whitelist", - - "carryon.general.modeloverrides.modeloverrides": "Model Overrides", - "carryon.general.blacklist.forbiddenentities": "Entities that the Player cannot pick up", - "carryon.general.blacklist.forbiddentiles": "Blocks that the Player cannot pick up", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "Custom Block Pickup Conditions", - "carryon.category.custompickupconditions.custompickupconditionsentities": "Custom Entity Pickup Conditions", - - "key.carry.desc": "Carry", - "key.carry.category": "Carry On" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/lang/es_es.json b/old/src/main/resources/assets/carryon/lang/es_es.json deleted file mode 100644 index b652a9f..0000000 --- a/old/src/main/resources/assets/carryon/lang/es_es.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "Configuración", - "carryon.category.blacklist": "Lista negra", - "carryon.category.modeloverrides": "Reescribir modelo (Avanzado)", - "carryon.category.custompickupconditions": "Customizar condiciones de recoger (Avanzado)", - "carryon.category.whitelist": "Lista blanca", - - "carryon.general.modeloverrides.modeloverrides": "Reescribir modelo", - "carryon.general.blacklist.forbiddenentities": "Entidades que el jugador no puede recoger", - "carryon.general.blacklist.forbiddentiles": "Bloques que el jugador no puede recoger", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "Customizar condiciones para recoger bloques", - "carryon.category.custompickupconditions.custompickupconditionsentities": "Customizar condiciones para recoger entidades", - - "key.carry.desc": "Agarrar", - "key.carry.category": "Carry On" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/lang/it_it.json b/old/src/main/resources/assets/carryon/lang/it_it.json deleted file mode 100644 index 5402e38..0000000 --- a/old/src/main/resources/assets/carryon/lang/it_it.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "Inpostazioni", - "carryon.category.blacklist": "Blacklist", - "carryon.category.modeloverrides": "Sostituzioni modello (avanzate)", - "carryon.category.custompickupconditions": "Condizioni di prelievo personalizzate (avanzate)", - "carryon.category.whitelist": "Whitelist", - - "carryon.general.modeloverrides.modeloverrides": "Sostituzioni modello", - "carryon.general.blacklist.forbiddenentities": "Entità che il giocatore non può raccogliere", - "carryon.general.blacklist.forbiddentiles": "Blocchi che il giocatore non può raccogliere", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "Condizioni di prelievo blocco personalizzate", - "carryon.category.custompickupconditions.custompickupconditionsentities": "Condizioni di prelievo entità personalizzate", - - "key.carry.desc": "Afferra", - "key.carry.category": "Carry On Mod" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/lang/ko_kr.json b/old/src/main/resources/assets/carryon/lang/ko_kr.json deleted file mode 100644 index 90f8d90..0000000 --- a/old/src/main/resources/assets/carryon/lang/ko_kr.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "설정", - "carryon.category.blacklist": "블랙리스트", - "carryon.category.modeloverrides": "모델 오버라이딩 (고급)", - "carryon.category.custompickupconditions": "커스텀 들기 컨디션 (고급)", - "carryon.category.whitelist": "화이트리스트", - - "carryon.general.modeloverrides.modeloverrides": "모델 오버라이딩", - "carryon.general.blacklist.forbiddenentities": "플레이어가 들 수 없는 엔티티", - "carryon.general.blacklist.forbiddentiles": "플레이어가 들 수 없는 블록", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "커스텀 블록 들기 컨디션", - "carryon.category.custompickupconditions.custompickupconditionsentities": "커스텀 엔티티 들기 컨디션", - - "key.carry.desc": "들고 나르기", - "key.carry.category": "Carry On" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/lang/ru_ru.json b/old/src/main/resources/assets/carryon/lang/ru_ru.json deleted file mode 100644 index 36257f0..0000000 --- a/old/src/main/resources/assets/carryon/lang/ru_ru.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "carryon.category.settings": "Настройки", - "carryon.category.blacklist": "Чёрный список", - "carryon.category.modeloverrides": "Переопределения модели (Улучшенное)", - "carryon.category.custompickupconditions": "Индивидуальные условия поднятия (Улучшенное)", - "carryon.category.whitelist": "Белый список", - - "carryon.general.modeloverrides.modeloverrides": "Переопределения модели", - "carryon.general.blacklist.forbiddenentities": "Сущности, которых игрок не может поднять", - "carryon.general.blacklist.forbiddentiles": "Блоки, которые игрок не может поднять", - "carryon.category.custompickupconditions.custompickupconditionsblocks": "Пользовательские условия поднятия блока", - "carryon.category.custompickupconditions.custompickupconditionsentities": "Пользовательские условия поднятия сущности", - - "key.carry.desc": "Поднять", - "key.carry.category": "Carry On" -} \ No newline at end of file diff --git a/old/src/main/resources/assets/carryon/models/item/entity_item.json b/old/src/main/resources/assets/carryon/models/item/entity_item.json deleted file mode 100644 index 3480261..0000000 --- a/old/src/main/resources/assets/carryon/models/item/entity_item.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "carryon:item/tile" - } -} diff --git a/old/src/main/resources/assets/carryon/models/item/tile_item.json b/old/src/main/resources/assets/carryon/models/item/tile_item.json deleted file mode 100644 index 3480261..0000000 --- a/old/src/main/resources/assets/carryon/models/item/tile_item.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "carryon:item/tile" - } -} diff --git a/old/src/main/resources/assets/carryon/textures/item/tile.png b/old/src/main/resources/assets/carryon/textures/item/tile.png deleted file mode 100644 index 8241ee7..0000000 Binary files a/old/src/main/resources/assets/carryon/textures/item/tile.png and /dev/null differ diff --git a/old/src/main/resources/data/carryon/tags/blocks/block_blacklist.json b/old/src/main/resources/data/carryon/tags/blocks/block_blacklist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/blocks/block_blacklist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/data/carryon/tags/blocks/block_whitelist.json b/old/src/main/resources/data/carryon/tags/blocks/block_whitelist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/blocks/block_whitelist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/data/carryon/tags/entity_types/entity_blacklist.json b/old/src/main/resources/data/carryon/tags/entity_types/entity_blacklist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/entity_types/entity_blacklist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/data/carryon/tags/entity_types/entity_whitelist.json b/old/src/main/resources/data/carryon/tags/entity_types/entity_whitelist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/entity_types/entity_whitelist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/data/carryon/tags/entity_types/stacking_blacklist.json b/old/src/main/resources/data/carryon/tags/entity_types/stacking_blacklist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/entity_types/stacking_blacklist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/data/carryon/tags/entity_types/stacking_whitelist.json b/old/src/main/resources/data/carryon/tags/entity_types/stacking_whitelist.json deleted file mode 100644 index a22514f..0000000 --- a/old/src/main/resources/data/carryon/tags/entity_types/stacking_whitelist.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "replace": false, - "values": [ - ] -} \ No newline at end of file diff --git a/old/src/main/resources/logo.png b/old/src/main/resources/logo.png deleted file mode 100644 index 1b9a978..0000000 Binary files a/old/src/main/resources/logo.png and /dev/null differ diff --git a/old/src/main/resources/pack.mcmeta b/old/src/main/resources/pack.mcmeta deleted file mode 100644 index 46e9e2c..0000000 --- a/old/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pack": { - "description": "Carryon Resources and Data", - "pack_format": 6 - } -}