Skip to content

Commit

Permalink
Merge pull request #55 from doc-bok/54-crash-on-multiplayer-server
Browse files Browse the repository at this point in the history
[FIX] Fixed crash when launching server.
  • Loading branch information
doc-bok committed Dec 17, 2023
2 parents caaf034 + 81c24ed commit 212809d
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,11 @@
## Changelog

### 2.0.1 (2023-12-17)
- Fix crash when launching server.

### 2.0.0 (2023-12-15)
- Second release of the mod.

### 1.5.0 (2023-12-15)
- Zhuangzi

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Expand Up @@ -48,7 +48,7 @@ mod_name=Butterfly Mod
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=All Rights Reserved
# The mod version. See https://semver.org/
mod_version=2.0.0
mod_version=2.0.1
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
Expand Up @@ -32,6 +32,7 @@
* The UI for the butterfly book, where players can look up information on
* butterfly species.
*/
@OnlyIn(Dist.CLIENT)
public class ButterflyBookScreen extends Screen {

// A cache for the page components.
Expand Down
Expand Up @@ -6,11 +6,14 @@
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

/**
* This is the renderer for all the butterflies in the game.
*/
@OnlyIn(Dist.CLIENT)
public class ButterflyRenderer extends MobRenderer<Butterfly, ButterflyModel> {
/**
* Bakes a new model for the renderer
Expand Down
Expand Up @@ -11,11 +11,14 @@
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

/**
* Renders a butterfly scroll hanging off a surface.
*/
@OnlyIn(Dist.CLIENT)
public class ButterflyScrollRenderer extends EntityRenderer<ButterflyScroll> {

/**
Expand Down
Expand Up @@ -9,11 +9,14 @@
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

/**
* The renderer for the caterpillar entity.
*/
@OnlyIn(Dist.CLIENT)
public class CaterpillarRenderer
extends MobRenderer<Caterpillar, CaterpillarModel> {

Expand Down
Expand Up @@ -9,8 +9,11 @@
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

@OnlyIn(Dist.CLIENT)
public class ChrysalisRenderer extends MobRenderer<Chrysalis, ChrysalisModel> {

/**
Expand Down
@@ -1,10 +1,13 @@
package com.bokmcdok.butterflies.client.texture;

import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

/**
* Holds the textures used for butterfly scrolls.
*/
@OnlyIn(Dist.CLIENT)
public class ButterflyTextures {

// The location of the book texture.
Expand Down
Expand Up @@ -13,6 +13,8 @@
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

public class ButterflyBookItem extends Item {
Expand Down Expand Up @@ -69,10 +71,19 @@ public InteractionResultHolder<ItemStack> use(Level level,
ItemStack itemStack = player.getItemInHand(hand);

if (level.isClientSide()) {
Minecraft.getInstance().setScreen(new ButterflyBookScreen(itemStack));
openScreen(itemStack);
}

player.awardStat(Stats.ITEM_USED.get(this));
return InteractionResultHolder.sidedSuccess(itemStack, level.isClientSide());
}

/**
* Open the screen. Kept separate so it can be excluded from server builds.
* @param book The book to display.
*/
@OnlyIn(Dist.CLIENT)
private void openScreen(ItemStack book) {
Minecraft.getInstance().setScreen(new ButterflyBookScreen(book));
}
}
Expand Up @@ -20,6 +20,8 @@
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

Expand Down Expand Up @@ -69,7 +71,7 @@ public InteractionResultHolder<ItemStack> use(Level level,
if (level.isClientSide()) {
CompoundTag tag = itemstack.getTag();
if (tag != null && tag.contains(CompoundTagId.CUSTOM_MODEL_DATA)) {
Minecraft.getInstance().setScreen(new ButterflyScrollScreen(tag.getInt(CompoundTagId.CUSTOM_MODEL_DATA)));
openScreen(tag.getInt(CompoundTagId.CUSTOM_MODEL_DATA));
} else {
replaceWithPaper(player, hand, itemstack);
}
Expand Down Expand Up @@ -139,6 +141,15 @@ protected boolean mayPlace(Player player, Direction direction, ItemStack itemSta
return !direction.getAxis().isVertical() && player.mayUseItemAt(blockPos, direction, itemStack);
}

/**
* Open the screen. Kept separate so it can be excluded from server builds.
* @param butterflyIndex The index of the butterfly.
*/
@OnlyIn(Dist.CLIENT)
private void openScreen(int butterflyIndex) {
Minecraft.getInstance().setScreen(new ButterflyScrollScreen(butterflyIndex));
}

/**
* For replacing empty scrolls with paper.
* @param player The interacting player.
Expand Down
Expand Up @@ -9,6 +9,8 @@
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

public class ButterflyZhuangziItem extends Item {
Expand Down Expand Up @@ -37,10 +39,18 @@ public InteractionResultHolder<ItemStack> use(Level level,
ItemStack itemstack = player.getItemInHand(hand);

if (level.isClientSide()) {
Minecraft.getInstance().setScreen(new ButterflyZhuangziScreen());
openScreen();
}

player.awardStat(Stats.ITEM_USED.get(this));
return InteractionResultHolder.sidedSuccess(itemstack, level.isClientSide());
}

/**
* Open the screen. Kept separate so it can be excluded from server builds.
*/
@OnlyIn(Dist.CLIENT)
private void openScreen() {
Minecraft.getInstance().setScreen(new ButterflyZhuangziScreen());
}
}

0 comments on commit 212809d

Please sign in to comment.