动态加载GeckoLib模型
好像已经有两个月没写博客了呢…… 最近正在进行ayame的开发,遇到了这个难题,不过好在解决了,所以就分享出来吧。
前言GeckoLib是一个很流行的Minecraft动画库,如题,这篇文章要讲的就是如何动态加载模型(例如从文件或远程URL获取模型并加载)
编写这篇文章使用的Minecraft版本为1.21,GeckoLib版本为4.5.8,映射表为官方映射表,其它版本可能不适用
创建缓存第一步实现创建缓存,目的是为了方便后续的调用。假设你的Entity类是CMEntity,只需要创建三个Map<CMEntity,ResourceLocation>,像下面这样:
123public static Map<CMEntity,ResourceLocation> modelCache = new HashMap<>(); // 模型缓存public static Map<CMEntity,ResourceLocation> animationCache = new HashMap<>(); // 动画缓存public static ...
使用Energy API让物品可以充能[Minecraft模组开发]
yoyo~ 已经是深夜啦,为啥我还要写文章,我自己也不知道为什么呢,诶嘿٩(。・ω・。)و
不过话说回来,感觉自己有点懒懒的,刚做完模组其实就想写了,不过现在才写●﹏●
算了,不说那么多啦,正片开始 Ciallo~(∠・ω< )⌒☆
添加依赖我先声明一下,这篇教程我是根据Fabric的yarn映射编写的,不过与mojmap大致差不多
既然要用这个API,那么第一步肯定是先添加依赖啦
把下面的代码添加到你的build.gradle的dependencies块就可以啦
123include modApi('teamreborn:energy:3.0.0') { exclude(group: "net.fabricmc.fabric-api")}
给大家解释一下这串代码
include呢就表示把这个API包含在模组的META-INF/jars里,作用其实就和在模组里套模组差不多的啦
其余的大家应该都懂,这里就不多说啦,让我们来看看接下来的一些东西
添加物品怎么添加物品我相信大家应该都会的,这里我就不多说了,不会的话可以去 ...
我使用什么文本编辑器[闲谈]
对于使用什么文本编辑器这个话题,一直都是争论不休,尤其是vim和VScode这俩.
我不是很喜欢去争论要使用哪个文本编辑器,这玩意就是怎么顺手怎么来,说哪个更好用是完全没必要的. 我电脑上安装了不止一个文本编辑器,要哪个就用哪个.
我的使用习惯写代码写代码的话嘛,我更倾向于使用IDE. VScode和Intelli IDEA算是我用的最多的了,虽然code可能算不上IDE.
具体来讲,我大部分情况下都使用IDEA来编辑java和kotlin,有时候也会用到vim和code,不过那几乎只占不到1%.
对于写js/ts以及html/css等与js密切相关的语言,我更倾向于使用code,它应该算是写js最舒服的编辑器了吧.
而Python的话,以前我使用Pycharm,不过现在也主要使用code了,没啥别的原因,就是觉得Pycharm实在太大了,没code那么轻量,当然还有一个原因是我不怎么写Python,毕竟作为一个Modder (Minecraft Java版模组开发者),要用到python的地方并不多,甚至很多时候选择了js/ts来代替Python.
编辑 ...
摆烂是真的舒服[日常]
开摆今天又是摆烂的一天呢~
说起来,我的那几个项目最近几个月更新频率降了许多,毕竟我不太想去更新了嘛~
唔… 至于为什么我不想去更新了呢,其实原因很简单,就是兴趣下降了. 刚接触编程时兴趣高涨,恨不得整天投身在代码里,当时我的更新频率也特别高,无论是在Github还是在B站,我甚至做到了每天都有一次commit.
现在嘛… github上的commit没以前那么频繁了,那一大堆项目我都不想去碰了,所以最近几天我开摆了.
相信和我一样的应该也有不少,开摆的原因大多是因为兴趣下降了.
嘿嘿,明天继续摆烂~
Minecraft运行原理简析
前言我是一个Minecraft模组/插件开发者,开发了一段时间的模组和插件,也对Minecraft的运行原理有所了解,所以就想简单说说。
客户端文件结构Minecraft客户端的文件结构大致分为assets,libraries,versions。
assets这个文件夹内保存的是多个版本间通用的资源文件,包括方块模型,材质,音效等。
libraries这个文件夹内保存的是Java第三方依赖库,如:gson。(注:模组加载器通常也会在这里面)
versions这个文件夹内保存的是各个版本的数据文件,如下是一些主要的:
游戏版本.jar Minecraft主体
crash-reports 崩溃报告目录
logs 日志文件目录
resourcepacks 资源包目录
saves 存档目录
screenshots 截图目录
log4j2.xml log4j2配置文件
options 游戏设置
服务端文件结构服务端的文件结构大部分与客户端类似,不过会多几个文件,具体如下:
world 世界文件,与saves中存放的类似
banned-ips.json banip的列表
bann ...
如何看到B站的肥肠抱歉
前言众所周知,以前的B站在视频失效时会播放一段肥肠抱歉视频,但是现在打开后只会显示2233的漫画,其实它还没有被删除,只需要打开https://player.bilibili.com/player.html就可以再次看到。
关于player.html那么问题来了,这个页面是干什么的呢?如果你在获取B站视频的嵌入代码时仔细观察就会发现,这个页面其实就是B站的外链播放器,后面跟着的参数就是视频相关信息,如果参数有问题,就会显示这个页面。
我是如何发现的我在获取B站嵌入代码时不小心故意修改了一些参数,看它会显示什么,然后就发现它显示了这个页面。
使用MLT在终端渲染shotcut视频
起因我的电脑内存比较低,而我录制的视频又很长,这导致视频体积到达了1.7GB,在Shotcut剪辑时内存很容易就满了,所以我得剪几分钟在重启一下Shotcut,不如就会因为内存满了而导致电脑卡死。(这给了我一个教训:视频不能录太长)
我花了很长的时间进行剪辑,本来以为剪辑完成后就万事大吉了,然后发现在输出视频时又遇到了一个问题:内存不足!!!
每次输出到6%时内存就已经爆满了,但是这玩意又不能分段输出,所以视频就无法输出,真的很令人苦恼的。
在我观察资源管理器时发现,在输出时会启动一个名叫melt的程序,而它占用了大量的cpu资源,却不怎么占用内存,占用内存的是Shotcut主程序。
关于MLT我去搜索了一下这玩意,发现它是一个多媒体框架,Shotcut就是基于它做的,可以去github上详细了解。
我在终端发现了melt命令,我想这玩意应该可以直接渲染视频而不用在Shotcut内渲染,简单研究了一下它的用法后发现确实可以。这就意味着不需要打开Shotcut就可以渲染视频,从而避免内存爆满。
使用方法用MLT渲染视频很简单,在终端执行如下命令即可:
1melt your_project ...
使用Modrinth Maven[Minecraft模组开发]
前言在开发模组的过程中有时候会使用其它模组作为依赖项,但并非所有模组都提供了Maven仓库,因此可以使用Modrinth的Maven仓库来获取模组依赖。
添加Maven源在gradle.build中找到repositories节点,添加如下内容:
123456repositories { maven { name = "Modrinth" url = "https://api.modrinth.com/maven" }}
添加模组在dependencies节点中添加类似如下内容:
123dependencies { modImplementation "maven.modrinth:模组名称:版本号"}
获取模组名称和版本号这里以Fabric API为例,打开需要使用的版本页面,并复制链接,链接大致如下:
https://modrinth.com/mod/fabric-api/version/0.96.11+1.20.4 ...
添加新附魔[Minecraft模组开发]
前言本文章是以 Minecraft 1.20.4 版本编写的,使用Fabric加载器和Yarn映射,如果你使用官方映射或MCP映射,可在linkie进行转换。
文章中所有的modid,enchantnid等都请替换成你自己的模组id和附魔id。
创建附魔类首先,你需要创建一个继承自Enchantment的类,然后在类中重写一些方法,如下所示:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778public class EnchantID extends Enchantment { // 类的构造函数 public EnchantID() { super(Enchantment.Rarity.UNCOMMON, EnchantmentTarget.WEAPON, new EquipmentSlot[] ...
Minecraft模组问题解决指南
前言本篇文章是对Minecraft一些模组问题的解决指南,各位萌新请务必仔细阅读。既然你要选择玩模组,那么你就需要有一定的耐心和解决问题的能力。如果你不愿意花费几分钟阅读该文章或者不愿意按照文章说的来做。那么隔壁网易版欢迎你。
我作为一个模组开发者,经常会被各位萌新问问题,但我不可能做到每个问题都能认真解答,很多时候我没有那么空闲,所以写了这篇文章来帮助大家解决一些常见的问题以及提问的方法。
模组下载通常情况下,模组作者会将模组上传至CurseForge、Modrinth、Github等网站,部分模组作者可能会上传至网盘或其它网站,不过这里主要讲解CurseForge、Modrinth和Github的使用方法。
如何获取模组的下载地址通常情况下,直接在搜索引擎搜索模组名称就可以搜索到模组的相关链接。
如果你是从B站,Youtube等视频网站了解到的模组,那么你通常可以在视频简介或置顶评论中找到下载地址。
如果你是从MCBBS,MCMOD等网站了解到的模组,那么你可以从页面上提供的链接获取到下载地址。
CurseForge首先,你需要在模组页面中找到Files选项,如下图所示:
选择你需 ...