From 6c2df592c5195124bab84e2be8451397450d5019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Ryb=C3=A1rsky?= Date: Tue, 9 Apr 2024 21:17:17 +0200 Subject: [PATCH] Update --- README.md | 12 +- build.gradle | 34 +----- gradle.properties | 20 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- .../venomcode/jumpvader/JumpVaderConfig.java | 43 -------- .../dev/venomcode/jumpvader/JumpVaderMod.java | 104 ------------------ .../jumpvader/blocks/JumpVaderBlock.java | 94 ---------------- .../jumpvader/ifaces/IJumpVaderListener.java | 10 -- .../java/systems/brn/televator/Televator.java | 47 ++++++++ .../brn/televator/TelevatorConfig.java | 12 ++ .../brn/televator/blocks/TelevatorBlock.java | 77 +++++++++++++ .../televator/items/TelevatorBlockItem.java | 33 ++++++ src/main/resources/assets/icon.png | Bin 0 -> 225 bytes src/main/resources/assets/jumpvader/icon.png | Bin 453 -> 0 bytes .../assets/televator/lang/en_us.json | 3 + .../televator/textures/block/televator.png | Bin 0 -> 225 bytes .../resources/data/jumpvader/lang/en_us.json | 3 - .../loot_tables/blocks/televator.json} | 2 +- .../recipes/televator.json} | 2 +- src/main/resources/fabric.mod.json | 26 ++--- src/main/resources/jumpvader.mixins.json | 13 --- 21 files changed, 206 insertions(+), 331 deletions(-) delete mode 100644 src/main/java/dev/venomcode/jumpvader/JumpVaderConfig.java delete mode 100644 src/main/java/dev/venomcode/jumpvader/JumpVaderMod.java delete mode 100644 src/main/java/dev/venomcode/jumpvader/blocks/JumpVaderBlock.java delete mode 100644 src/main/java/dev/venomcode/jumpvader/ifaces/IJumpVaderListener.java create mode 100644 src/main/java/systems/brn/televator/Televator.java create mode 100644 src/main/java/systems/brn/televator/TelevatorConfig.java create mode 100644 src/main/java/systems/brn/televator/blocks/TelevatorBlock.java create mode 100644 src/main/java/systems/brn/televator/items/TelevatorBlockItem.java create mode 100644 src/main/resources/assets/icon.png delete mode 100644 src/main/resources/assets/jumpvader/icon.png create mode 100644 src/main/resources/assets/televator/lang/en_us.json create mode 100644 src/main/resources/assets/televator/textures/block/televator.png delete mode 100644 src/main/resources/data/jumpvader/lang/en_us.json rename src/main/resources/data/{jumpvader/loot_tables/blocks/jumpvader_block.json => televator/loot_tables/blocks/televator.json} (85%) rename src/main/resources/data/{jumpvader/recipes/jump_vader.json => televator/recipes/televator.json} (88%) delete mode 100644 src/main/resources/jumpvader.mixins.json diff --git a/README.md b/README.md index cd49a90..d0ab39f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# Jump Vader - A Fabric Server-Side Elevator Mod +# Televator - A Fabric Server-Side Elevator Mod + +based on [JumpVader](https://github.com/StimzRx/JumpVaderMod) by [StimzRx](https://github.com/StimzRx/JumpVaderMod) ## What is it -I'ts a mod that lets you place "Jump Vader" blocks similar to the Quark mod's elevators. +It's a mod that lets you place "Jump Vader" blocks similar to the Quark mod's elevators. You simply place one above the other at any vertical distance, and jump/crouch on top of the block to go in between the different heights. ## Crafting -![Crafting Recipe](https://github.com/VenomCodeDev/JumpVaderMod/blob/d1cd96ccd846d3249a4a7fcb298e740775ee344c/assets/JumpVaderCraftingRecipe.png?raw=true) +![Crafting Recipe](https://github.com/VenomCodeDev/TelevatorMod/blob/d1cd96ccd846d3249a4a7fcb298e740775ee344c/assets/TelevatorCraftingRecipe.png?raw=true) ## Removal -If you've spotted a bug and want to DISABLE the JumpVader's, please do so via the config file in your servers Config folder. -Otherwise, just stop the server, delete the mod from the mods folder, and start the server back up. -**NOTE:** Removing the mods from the mods folder will delete all JumpVader blocks in inventories and the world permanently! +**NOTE:** Removing the mods from the mods folder will delete all Televator blocks in inventories and the world permanently! diff --git a/build.gradle b/build.gradle index 0226a71..2e118ff 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,5 @@ plugins { - id 'fabric-loom' version '1.2-SNAPSHOT' - id 'maven-publish' + id 'fabric-loom' version '1.6-SNAPSHOT' } version = project.mod_version @@ -16,10 +15,7 @@ repositories { // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. - maven { url 'https://maven.nucleoid.xyz' } - maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } - maven { url "https://api.modrinth.com/maven" } } dependencies { @@ -31,16 +27,11 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - // Uncomment the following line to enable the deprecated Fabric API modules. - // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. - - - - include(modImplementation("maven.modrinth:server-api:${project.serverapi_version}")) - - include(modImplementation('me.lucko:fabric-permissions-api:0.2-SNAPSHOT')) include(modImplementation("eu.pb4:polymer-core:${project.polymer_version}")) + modImplementation include("eu.pb4:polymer-resource-pack:${project.polymer_version}") + modImplementation include("eu.pb4:polymer-autohost:${project.polymer_version}") + modImplementation include("eu.pb4:polymer-blocks:${project.polymer_version}") include(modImplementation("xyz.nucleoid:server-translations-api:${project.server_translations_api_version}")) } @@ -70,21 +61,4 @@ jar { from("LICENSE") { rename { "${it}_${project.archivesBaseName}"} } -} - -// configure the maven publication -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - // Notice: This block does NOT have the same function as the block in the top level. - // The repositories here will be used for publishing your artifact, not for - // retrieving dependencies. - } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 8dca924..50b3448 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,17 +4,17 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.1 -yarn_mappings=1.20.1+build.2 -loader_version=0.14.21 +minecraft_version=1.20.4 +yarn_mappings=1.20.4+build.3 +loader_version=0.15.9 # Mod Properties -mod_version = 1.0.9+1.20.1 -maven_group = dev.venomcode.jumpvader -archives_base_name = jumpvader +mod_version = 1.0.9+1.20.4 +maven_group = systems.brn.televator +archives_base_name = televator # Dependencies -fabric_version=0.83.1+1.20.1 -serverapi_version=1.0.7+1.20.1 -polymer_version=0.5.2+1.20.1 -server_translations_api_version=2.0.0+1.20 +fabric_version=0.96.11+1.20.4 +serverapi_version=1.0.8+1.20.1 +polymer_version=0.7.7+1.20.4 +server_translations_api_version=2.2.0+1.20.3-rc1 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 59bc51a..48c0a02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/dev/venomcode/jumpvader/JumpVaderConfig.java b/src/main/java/dev/venomcode/jumpvader/JumpVaderConfig.java deleted file mode 100644 index 09e9db8..0000000 --- a/src/main/java/dev/venomcode/jumpvader/JumpVaderConfig.java +++ /dev/null @@ -1,43 +0,0 @@ -package dev.venomcode.jumpvader; - -import org.spongepowered.configurate.CommentedConfigurationNode; -import org.spongepowered.configurate.ConfigurateException; -import org.spongepowered.configurate.hocon.HoconConfigurationLoader; -import org.spongepowered.configurate.objectmapping.ConfigSerializable; -import org.spongepowered.configurate.objectmapping.meta.Comment; -import org.spongepowered.configurate.objectmapping.meta.Setting; -import org.spongepowered.configurate.serialize.SerializationException; - -import java.io.IOException; -import java.nio.file.Path; - -@ConfigSerializable -public class JumpVaderConfig -{ - - public boolean getEnabled() - { - return enabled; - } - - public int getMaxVerticalBlocks() - { - return maxVerticleBlocks; - } - public String getAlternativeBlock() - { - return placeholderBlockRaw; - } - - @Setting("mod enabled") - @Comment("Toggles the entire mod on/off. Doesnt delete blocks/items if set to off!") - private boolean enabled = true; - - @Setting("max vertical blocks") - @Comment("The maximum amount of blocks a player can move vertically using the jump vader") - private int maxVerticleBlocks = 128; - - @Setting("display block") - @Comment("Sets the 'fake' block to display as a placeholder for the jump vader block.") - private String placeholderBlockRaw = "minecraft:orange_wool"; -} diff --git a/src/main/java/dev/venomcode/jumpvader/JumpVaderMod.java b/src/main/java/dev/venomcode/jumpvader/JumpVaderMod.java deleted file mode 100644 index 14a19b5..0000000 --- a/src/main/java/dev/venomcode/jumpvader/JumpVaderMod.java +++ /dev/null @@ -1,104 +0,0 @@ -package dev.venomcode.jumpvader; - -import dev.venomcode.jumpvader.blocks.JumpVaderBlock; -import dev.venomcode.serverapi.api.ServerAPI; -import dev.venomcode.serverapi.api.event.SAPIPlayerEvents; -import eu.pb4.polymer.core.api.item.PolymerBlockItem; -import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.block.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.spongepowered.configurate.CommentedConfigurationNode; -import org.spongepowered.configurate.ConfigurateException; -import org.spongepowered.configurate.hocon.HoconConfigurationLoader; - -import java.nio.file.Path; - -public class JumpVaderMod implements ModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final String MODID = "jumpvader"; - public static final Logger LOGGER = LoggerFactory.getLogger(MODID); - - @Override - public void onInitialize() - { - JumpVaderConfig config = getConfig(); - saveConfig(); - - Identifier jumpVaderProxyIdent = new Identifier(config.getAlternativeBlock()); - Item jumpVaderProxyItem = Registries.ITEM.get(jumpVaderProxyIdent); - - JUMP_VADER_BLOCK = new JumpVaderBlock(FabricBlockSettings.copyOf(Blocks.BAMBOO_PLANKS), Registries.BLOCK.get(jumpVaderProxyIdent)); - - Registry.register(Registries.BLOCK, new Identifier(JumpVaderMod.MODID, "jumpvader_block"), JUMP_VADER_BLOCK); - - Registry.register( Registries.ITEM, new Identifier(JumpVaderMod.MODID, "jumpvader_block"), new PolymerBlockItem( JUMP_VADER_BLOCK, new FabricItemSettings(), jumpVaderProxyItem ) ); - - SAPIPlayerEvents.JUMP.register((player -> { - if(!config.getEnabled()) - return true; - BlockPos testPos = player.getBlockPos().down(); - if(player.getWorld().getBlockState(testPos).getBlock() instanceof JumpVaderBlock jumpVaderBlock) - { - return !jumpVaderBlock.onJump(testPos, player); - } - return true; - })); - - SAPIPlayerEvents.SNEAK.register((player -> { - if(!config.getEnabled()) - return true; - - BlockPos testPos = player.getBlockPos().down(); - if(player.getWorld().getBlockState(testPos).getBlock() instanceof JumpVaderBlock jumpVaderBlock) { - jumpVaderBlock.onCrouch(testPos, player); - } - - return true; - })); - } - public static JumpVaderBlock JUMP_VADER_BLOCK; - - public static JumpVaderConfig getConfig() { - if(_configCached != null) - return _configCached; - - try { - CommentedConfigurationNode node = configLoader.load(); - - _configCached = node.get(JumpVaderConfig.class); - } - catch (ConfigurateException ex) { - LOGGER.error(ServerAPI.Logger.Error("[ERROR]Failed to load jump_vader config.")); - } - - return _configCached; - } - - public static void saveConfig() { - CommentedConfigurationNode node = CommentedConfigurationNode.root(); - try { - node.set(JumpVaderConfig.class, _configCached); - configLoader.save(node); - } - catch (ConfigurateException ex) { - LOGGER.error(ServerAPI.Logger.Error("[ERROR]Failed to save jump_vader config.")); - } - } - - private static final HoconConfigurationLoader configLoader = HoconConfigurationLoader.builder() - .path(Path.of(ServerAPI.CONFIG_PATH + "jump_vader.conf")) - .build(); - private static JumpVaderConfig _configCached = null; -} diff --git a/src/main/java/dev/venomcode/jumpvader/blocks/JumpVaderBlock.java b/src/main/java/dev/venomcode/jumpvader/blocks/JumpVaderBlock.java deleted file mode 100644 index f7bedaa..0000000 --- a/src/main/java/dev/venomcode/jumpvader/blocks/JumpVaderBlock.java +++ /dev/null @@ -1,94 +0,0 @@ -package dev.venomcode.jumpvader.blocks; - -import dev.venomcode.jumpvader.JumpVaderMod; -import dev.venomcode.jumpvader.ifaces.IJumpVaderListener; -import eu.pb4.polymer.core.api.block.PolymerBlock; -import eu.pb4.polymer.core.api.block.SimplePolymerBlock; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; - -public class JumpVaderBlock extends SimplePolymerBlock implements IJumpVaderListener { - - public JumpVaderBlock(Settings settings, Block polymerBlock) { - super(settings, polymerBlock); - } - - @Override - public boolean onJump(BlockPos pos , ServerPlayerEntity player ) - { - if(!JumpVaderMod.getConfig().getEnabled()) - return false; - pos = pos.up(); - ServerWorld w = (ServerWorld) player.getWorld(); - int count = 0; - - while(count < JumpVaderMod.getConfig().getMaxVerticalBlocks() && pos.getY() < 316) - { - Block blk = w.getBlockState( pos ).getBlock(); - - if(blk instanceof JumpVaderBlock) - { - final BlockPos tpPos = pos.up(); - - if(w.getBlockState( tpPos ).getBlock().equals( Blocks.AIR ) && w.getBlockState( tpPos.up() ).getBlock().equals( Blocks.AIR )) - { - player.teleport( tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f ); - - w.playSound( null, tpPos, SoundEvents.ENTITY_ENDERMAN_TELEPORT, SoundCategory.PLAYERS, 0.5f, 1.5f ); - w.spawnParticles( ParticleTypes.POOF, tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f, 5, 0, 0, 0, 0.25f ); - - return true; - } - } - pos = pos.up(); - count++; - } - return false; - } - - @Override - public void onCrouch( BlockPos pos , ServerPlayerEntity player ) - { - if(!JumpVaderMod.getConfig().getEnabled()) - return; - - pos = pos.down(); - ServerWorld w = (ServerWorld) player.getWorld(); - int count = 0; - - while(count < JumpVaderMod.getConfig().getMaxVerticalBlocks() && pos.getY() >= -64) - { - Block blk = w.getBlockState( pos ).getBlock(); - - if(blk instanceof JumpVaderBlock) - { - final BlockPos tpPos = pos.up(); - - if(w.getBlockState( tpPos ).getBlock().equals( Blocks.AIR ) && w.getBlockState( tpPos.up() ).getBlock().equals( Blocks.AIR )) - { - player.teleport( tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f ); - - w.playSound( null, tpPos, SoundEvents.ENTITY_ENDERMAN_TELEPORT, SoundCategory.PLAYERS, 0.5f, 1.5f ); - w.spawnParticles( ParticleTypes.POOF, tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f, 5, 0, 0, 0, 0.25f ); - - return; - } - } - pos = pos.down(); - count++; - } - - } - - private static final Identifier _identifier = new Identifier( JumpVaderMod.MODID, "jumpvader_block" ); -} \ No newline at end of file diff --git a/src/main/java/dev/venomcode/jumpvader/ifaces/IJumpVaderListener.java b/src/main/java/dev/venomcode/jumpvader/ifaces/IJumpVaderListener.java deleted file mode 100644 index 439fa01..0000000 --- a/src/main/java/dev/venomcode/jumpvader/ifaces/IJumpVaderListener.java +++ /dev/null @@ -1,10 +0,0 @@ -package dev.venomcode.jumpvader.ifaces; - -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.math.BlockPos; - -public interface IJumpVaderListener -{ - boolean onJump(BlockPos pos, ServerPlayerEntity player ); - void onCrouch( BlockPos pos, ServerPlayerEntity player ); -} diff --git a/src/main/java/systems/brn/televator/Televator.java b/src/main/java/systems/brn/televator/Televator.java new file mode 100644 index 0000000..aca2d8b --- /dev/null +++ b/src/main/java/systems/brn/televator/Televator.java @@ -0,0 +1,47 @@ +package systems.brn.televator; + +import systems.brn.televator.blocks.TelevatorBlock; +import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; +import net.minecraft.util.math.BlockPos; + +public class Televator implements ModInitializer { + public static final String MODID = "televator"; + public static final String MODELID = "televator"; + + @Override + public void onInitialize() + { + + PolymerResourcePackUtils.addModAssets(MODID); + PolymerResourcePackUtils.markAsRequired(); + + TelevatorBlock.register(); + + + ServerTickEvents.END_SERVER_TICK.register(server -> { + // Iterate over all online players + server.getPlayerManager().getPlayerList().forEach(player -> { + // Check if the player is sneaking + if (player.isSneaking() && player.isOnGround()) { + BlockPos testPos = player.getBlockPos().down(); + if(player.getWorld().getBlockState(testPos).getBlock() instanceof TelevatorBlock jumpVaderBlock) { + jumpVaderBlock.handleMovement(testPos, player, false); + } + } + + // Check if the player is jumping + if (player.getVelocity().y > 0 && !player.isOnGround()) { + BlockPos testPos = player.getBlockPos().down(); + if(player.getWorld().getBlockState(testPos).getBlock() instanceof TelevatorBlock jumpVaderBlock) + { + jumpVaderBlock.handleMovement(testPos, player, true); + } + } + }); + }); + } + public static TelevatorBlock JUMP_VADER_BLOCK; + +} diff --git a/src/main/java/systems/brn/televator/TelevatorConfig.java b/src/main/java/systems/brn/televator/TelevatorConfig.java new file mode 100644 index 0000000..d911761 --- /dev/null +++ b/src/main/java/systems/brn/televator/TelevatorConfig.java @@ -0,0 +1,12 @@ +package systems.brn.televator; + +public class TelevatorConfig { + public static int getMaxVerticalBlocks() + { + return 128; + } + public static String getAlternativeBlock() + { + return "minecraft:orange_wool"; + } +} diff --git a/src/main/java/systems/brn/televator/blocks/TelevatorBlock.java b/src/main/java/systems/brn/televator/blocks/TelevatorBlock.java new file mode 100644 index 0000000..c182933 --- /dev/null +++ b/src/main/java/systems/brn/televator/blocks/TelevatorBlock.java @@ -0,0 +1,77 @@ +package systems.brn.televator.blocks; + +import systems.brn.televator.Televator; +import systems.brn.televator.TelevatorConfig; +import systems.brn.televator.items.TelevatorBlockItem; +import eu.pb4.polymer.blocks.api.BlockModelType; +import eu.pb4.polymer.blocks.api.PolymerBlockModel; +import eu.pb4.polymer.blocks.api.PolymerTexturedBlock; +import eu.pb4.polymer.blocks.api.PolymerBlockResourceUtils; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.Item; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; + +public class TelevatorBlock extends Block implements PolymerTexturedBlock { + + private final BlockState polymerBlockState; + + public TelevatorBlock(Settings settings, BlockModelType type, String modelId) { + super(settings); + this.polymerBlockState = PolymerBlockResourceUtils.requestBlock(type, PolymerBlockModel.of(new Identifier(Televator.MODID, modelId))); + } + + @Override + public Block getPolymerBlock(BlockState state) { + return this.polymerBlockState.getBlock(); + } + + @Override + public BlockState getPolymerBlockState(BlockState state) { + return this.polymerBlockState; + } + + public static void register() { + var modId = new Identifier(Televator.MODID, Televator.MODELID); + var block = Registry.register(Registries.BLOCK, modId, + new TelevatorBlock(FabricBlockSettings.copy(Blocks.WHITE_WOOL), BlockModelType.FULL_BLOCK, Televator.MODELID)); + + Registry.register(Registries.ITEM, modId, new TelevatorBlockItem(new Item.Settings(), block, Televator.MODELID)); + } + + public void handleMovement(BlockPos pos, ServerPlayerEntity player, boolean isJumping) { + pos = isJumping ? pos.up() : pos.down(); + ServerWorld world = (ServerWorld) player.getWorld(); + int count = 0; + + while (count < TelevatorConfig.getMaxVerticalBlocks() && pos.getY() < world.getTopY() && pos.getY() >= world.getBottomY()) { + Block blk = world.getBlockState(pos).getBlock(); + + if (blk instanceof TelevatorBlock) { + final BlockPos tpPos = pos.up(); + + if (world.getBlockState(tpPos).getBlock().equals(Blocks.AIR) && world.getBlockState(tpPos.up()).getBlock().equals(Blocks.AIR)) { + teleportWithEffect(player, world, tpPos); + } + } + pos = isJumping ? pos.up() : pos.down(); + count++; + } + } + + private void teleportWithEffect(ServerPlayerEntity player, ServerWorld w, BlockPos tpPos) { + player.teleport(tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f); + w.playSound(null, tpPos, SoundEvents.ENTITY_ENDERMAN_TELEPORT, SoundCategory.PLAYERS, 0.5f, 1.5f); + w.spawnParticles(ParticleTypes.POOF, tpPos.getX() + 0.5f, tpPos.getY(), tpPos.getZ() + 0.5f, 5, 0, 0, 0, 0.25f); + } +} \ No newline at end of file diff --git a/src/main/java/systems/brn/televator/items/TelevatorBlockItem.java b/src/main/java/systems/brn/televator/items/TelevatorBlockItem.java new file mode 100644 index 0000000..440262e --- /dev/null +++ b/src/main/java/systems/brn/televator/items/TelevatorBlockItem.java @@ -0,0 +1,33 @@ +package systems.brn.televator.items; + +import systems.brn.televator.Televator; +import eu.pb4.polymer.core.api.item.PolymerItem; +import eu.pb4.polymer.resourcepack.api.PolymerModelData; +import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; +import org.jetbrains.annotations.Nullable; + +public class TelevatorBlockItem extends BlockItem implements PolymerItem { + private final PolymerModelData polymerModel; + + public TelevatorBlockItem(Settings settings, Block block, String modelId) { + super(block, settings); + this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, new Identifier(Televator.MODID, modelId)); + } + + @Override + public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity player) { + return this.polymerModel.item(); + } + + @Override + public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayerEntity player) { + return this.polymerModel.value(); + } +} \ No newline at end of file diff --git a/src/main/resources/assets/icon.png b/src/main/resources/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb56ca960ef9894777d8cfd136d0c1d2cb866843 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_!9ghFJ72 zowSknuz~=C{zUI6<%0|+Z}u~D??`0OnK{i)Q%QXzFUN;)n?G|aezX_AJK8&gVb6Ex z4TjH@86u`F<=%GfU)~1yo{gOIp8woE?_9fLi`JU0c2C3^5A0eO8KGHv^E4O3wp{Bc zL8o%=ZdPIN(3}{wYU&kM-M}112M$9$jjwl9PV6n){NT^|*rxxSuf^VMwpB4W#&eJ% Z|KeZSDr2wi|3GIlc)I$ztaD0e0sub;SPlRH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/jumpvader/icon.png b/src/main/resources/assets/jumpvader/icon.png deleted file mode 100644 index 047b91f2347de5cf95f23284476fddbe21ba23fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)QAFYGys`80vegN0XDFh0OXKz&i8?Le#x7{1X)R+00000NkvXXu0mjf73i~T diff --git a/src/main/resources/assets/televator/lang/en_us.json b/src/main/resources/assets/televator/lang/en_us.json new file mode 100644 index 0000000..09c0ebf --- /dev/null +++ b/src/main/resources/assets/televator/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "block.televator.televator": "Jump Vader" +} \ No newline at end of file diff --git a/src/main/resources/assets/televator/textures/block/televator.png b/src/main/resources/assets/televator/textures/block/televator.png new file mode 100644 index 0000000000000000000000000000000000000000..cb56ca960ef9894777d8cfd136d0c1d2cb866843 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_!9ghFJ72 zowSknuz~=C{zUI6<%0|+Z}u~D??`0OnK{i)Q%QXzFUN;)n?G|aezX_AJK8&gVb6Ex z4TjH@86u`F<=%GfU)~1yo{gOIp8woE?_9fLi`JU0c2C3^5A0eO8KGHv^E4O3wp{Bc zL8o%=ZdPIN(3}{wYU&kM-M}112M$9$jjwl9PV6n){NT^|*rxxSuf^VMwpB4W#&eJ% Z|KeZSDr2wi|3GIlc)I$ztaD0e0sub;SPlRH literal 0 HcmV?d00001 diff --git a/src/main/resources/data/jumpvader/lang/en_us.json b/src/main/resources/data/jumpvader/lang/en_us.json deleted file mode 100644 index 1cbbde4..0000000 --- a/src/main/resources/data/jumpvader/lang/en_us.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "block.jumpvader.jumpvader_block": "Jump Vader" -} \ No newline at end of file diff --git a/src/main/resources/data/jumpvader/loot_tables/blocks/jumpvader_block.json b/src/main/resources/data/televator/loot_tables/blocks/televator.json similarity index 85% rename from src/main/resources/data/jumpvader/loot_tables/blocks/jumpvader_block.json rename to src/main/resources/data/televator/loot_tables/blocks/televator.json index 5b8a626..8031f77 100644 --- a/src/main/resources/data/jumpvader/loot_tables/blocks/jumpvader_block.json +++ b/src/main/resources/data/televator/loot_tables/blocks/televator.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "jumpvader:jumpvader_block" + "name": "televator:televator" } ], "conditions": [ diff --git a/src/main/resources/data/jumpvader/recipes/jump_vader.json b/src/main/resources/data/televator/recipes/televator.json similarity index 88% rename from src/main/resources/data/jumpvader/recipes/jump_vader.json rename to src/main/resources/data/televator/recipes/televator.json index f245849..6acdfb6 100644 --- a/src/main/resources/data/jumpvader/recipes/jump_vader.json +++ b/src/main/resources/data/televator/recipes/televator.json @@ -17,7 +17,7 @@ } }, "result": { - "item": "jumpvader:jumpvader_block", + "item": "televator:televator", "count": 2 } } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 72fa985..fcf3bdf 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,38 +1,34 @@ { "schemaVersion": 1, - "id": "jumpvader", + "id": "televator", "version": "${version}", "name": "Jump Vader", "description": "Ender Vaders ServerSide Only", "authors": [ - "VenomCodeDev" + "VenomCodeDev", + "BRNSystems" ], "contact": { - "homepage": "https://github.com/VenomCodeDev/JumpVaderMod", - "sources": "https://github.com/VenomCodeDev/JumpVaderMod" + "homepage": "https://github.com/VenomCodeDev/TelevatorMod", + "sources": "https://github.com/VenomCodeDev/TelevatorMod" }, "license": "MIT", - "icon": "assets/jumpvader/icon.png", + "icon": "assets/icon.png", "environment": "*", "entrypoints": { "main": [ - "dev.venomcode.jumpvader.JumpVaderMod" + "systems.brn.televator.Televator" ] }, - "mixins": [ - "jumpvader.mixins.json" - ], "depends": { - "fabricloader": ">=0.14.21", - "minecraft": "~1.20.1", + "fabricloader": ">=0.15.9", + "minecraft": "~1.20.4", "java": ">=17", - "fabric-api": "*" - }, - "suggests": { - "another-mod": "*" + "fabric-api": "*", + "polymer-core": "0.7.7+1.20.4" } } diff --git a/src/main/resources/jumpvader.mixins.json b/src/main/resources/jumpvader.mixins.json deleted file mode 100644 index a72547c..0000000 --- a/src/main/resources/jumpvader.mixins.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "dev.venomcode.jumpvader.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [ - ], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - } -}