跳至主要內容
4红宝石合成表

4红宝石合成表

这一节我们将为红宝石制作一个合成表,主要内容包括:

  • 使用九个红宝石合成一个红宝石块
  • 一个红宝石块合成9个红宝石
  • 将红宝石原料烧制成红宝石

本节的代码如下,主要是data目录下的合成表:

image-20240612134715682
image-20240612134715682

全民制作人ikun大约 3 分钟我的世界fabric我的世界fabric
5方块掉落物

5方块掉落物

这一节我们主要为挖红宝石添加掉落物品,以及设置方块出现的位置分布


全民制作人ikun小于 1 分钟我的世界fabric我的世界fabric
3 红宝石块和矿石

3 红宝石块和矿石

创建一个Block

public class ModBlocks {
    public static final Block RUBY_BLOCK =
            registerBlock("ruby_block", new Block(
                    FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).sounds(BlockSoundGroup.AMETHYST_BLOCK)
            ));
    public static final Block RAW_RUBY_BLOCK =
            registerBlock("raw_ruby_block", new Block(
                    FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).sounds(BlockSoundGroup.AMETHYST_BLOCK)
            ));

    private static Block registerBlock(String name, Block block) {
        registerBlockItem(name, block);
        return Registry.register(Registries.BLOCK, new Identifier(DemoMod1.MOD_ID, name), block);
    }


    private static Item registerBlockItem(String name, Block block) {
        return Registry.register(Registries.ITEM, new Identifier(DemoMod1.MOD_ID, name),
                new BlockItem(block, new Item.Settings()));
    }

    public static void registerModBlocks() {
        DemoMod1.LOGGER.info("Registering blocks for " + DemoMod1.MOD_ID);
    }
}

全民制作人ikun小于 1 分钟我的世界fabric我的世界fabric
创建第一个物品

创建第一个物品

这里我们新建两个物品:红宝石

public class ModItems {
    public static final Item RUBY = registerItem("ruby", new Item(new Item.Settings()));
    public static final Item RAW_RUBY = registerItem("raw_ruby", new Item(new Item.Settings()));

    public static void registerModItems() {
        DemoMod1.LOGGER.info("Registering items");
        ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS)
                .register(ModItems::addItemsToIngredientTabItemGroup);
    }

    public static void addItemsToIngredientTabItemGroup(FabricItemGroupEntries entries) {
        entries.add(RUBY);
        entries.add(RAW_RUBY);
    }


    public static Item registerItem(String name, Item item) {
        DemoMod1.LOGGER.info("Registering item " + name);
        Registry.register(Registries.ITEM, new Identifier(DemoMod1.MOD_ID, name), item);
        return item;
    }
}

全民制作人ikun大约 1 分钟我的世界fabric我的世界fabric
我的世界服务端基本知识

我的世界服务端基本知识

服务器分类:官服、插件服、MOD服、插件Mod服

插件服(只能使用插件Plugin):

  1. Bukkit
  2. Spigot(Bukkit分支 )
  3. Paper(Spigot的分支)
  4. 其他基于Bukkit的插件服

Mod服(只能使用MOD):

  1. Forge
  2. Fabric

MOD服,服务端和客户端MOD同步


全民制作人ikun小于 1 分钟我的世界我的世界
IDEA开发基本配置

IDEA开发基本配置

配置jar包输入位置直接到服务端的plugin目录下:

主要是配置outputDirectory为自己的服务端plugin位置

<properties>
    <java.version>21</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <server.output>/Users/houyunfei/code/minecraft/server2/plugins</server.output>
</properties>

全民制作人ikun小于 1 分钟我的世界我的世界