Freeze_Dolphin
本帖最后由 Freeze_Dolphin 于 2021-8-25 08:34 编辑

RT,比如C#,F#,Swift之类的

不是用jna调用动态链接库这种,我想知道的是能够通过外部语言访问bukkit api的

ARSpark
(Bukkit API 是 Java 写的呢
你所编写的代码,最终是要在JVM上运行的(除非重写一个Mod加载器支持你的语言)
最简单的办法是使用一个JVM系的语言(Kotlin,比如)
其它语言无法原生编译到字节码,不用JNA…除非你有办法把你的语言编译到Java字节码(Jython做到了),否则基本不可能(

(而且解决这些问题花的时间足够学好Java了(

3TUSK
G r a a l V M

同楼上,为什么一定要绕远路用非 JVM 语言?

Freeze_Dolphin
RarityEG 发表于 2021-8-25 09:35
(Bukkit API 是 Java 写的呢
你所编写的代码,最终是要在JVM上运行的(除非重写一个Mod加载器支持你的语言 ...

嘛,其实我是会java的,也会用java写插件。。

只是换了一门语言学习,我以前java都是靠写插件学起来的,我想用这样的方法学这门语言,应该会学得更快一点(毕竟有以前经验),而且学起来不枯燥

ARSpark
Freeze_Dolphin 发表于 2021-8-26 08:19
嘛,其实我是会java的,也会用java写插件。。

只是换了一门语言学习,我以前java都是靠写插件学起来的, ...

我们是根据开发的目标来选择语言,而不是基于语言去选择目标。

譬如你要开发一个游戏,已经选定了 Unity,因此才学习 C#(
要开发一个操作系统,已经选定了 Intel 处理器,才学习 x86 汇编和 C 语言(
要做高性能 API,已经选定了 Node,才学习 JavaScript
要跨所有平台,已经选定了 Flutter,才学习 Dart
……
维基百科有记录的编程语言超过七百种,并不是每个都值得学习,某些语言(不点名了)事实上从来没有得到广泛的应用(即使有,也没有被用到专业领域)

MrXiaoM
可以是可以做到,不过一般来说我们都是推荐使用 jvm 语言编写插件的,省事又不至于容易出问题

举个用其他语言编写插件的例子,Minecraft_QQ,它是用 Socket 通信的,使用 java 编写插件作为服务端,使用 C# 程序作为客户端,但是效率可想而知吧

飞翔之歌
有一种最离谱的方案,但正常人都不会用这种方案:
      利用系统api来读取/修改运行mc的jvm的内存数据
事实上这比登天还难,但的确可以

第一页 上一页 下一页 最后一页