DarcJC
本帖最后由 1582952890 于 2017-9-16 19:00 编辑


介绍:
这个插件的灵感来源于我翻译CustonNpcs时. Python福利:|
这个插件可以读取Python脚本, 然后加载进服务器.

特性:



源代码:
出于由于种种原因, 我还是选择开源.
还是希望大家能够贡献代码.

Github: https://github.com/PluginWiki/Bython

开发指南:
Wiki
JavaDoc
JavaDoc(国内. 但是可能与Github不同步)


安装方法:
下载Jython库, 将其放到/jre/lib/ext目录下, 将本插件扔进plugins文件夹即可.
[2.0版本及以后]
可以直接下载Bython&Jython文件扔到plugins文件夹中....

效果图:


命令 & 权限:
全无, 以后考虑添加管理命令

注意事项 & BUG:


更新日志:


开发交流群: 319991645
七楼为官方模块发布区
感谢Trychen对asm fucker的贡献233
密码:bython
来自群组: Unknown Domain

迷の十六
类似于 国外脚本插件吗qwq

hhttll
迷の十六 发表于 2016-8-21 04:24
类似于 国外脚本插件吗qwq

Python 是一门速度极其缓慢(执行速度大约为同为 脚本语言的 JavaScript 100 - 1000 分之一)。此外,Python 还是一门依赖紊乱的语言,并没有什么非常有效的办法管理一个 Python 的依赖。再则,Python 是一门兼容性极差的语言,Python 3 是 8年前(2008年)发布的,然而至今绝大多数Python只支持在 Python 2 执行,完全无法兼容到 Python 3(且大多数依赖仅支持 2,而想要使用新的功能必须入 Python 3,所以极其矛盾)。最后 Python 是一门要求极其苛刻的语言,因为其所有代码依靠严格的缩进和换行来区分,导致喜欢两个空格缩进的人完全无法接受其必须使用 4个空格甚至连 tab 都不允许的特点。

总之,Python 是一门速度慢,难以模块化,版本碎片化严重,仅追求代码观赏性的建议初学者了解编程是什么时使用的语言,并不适合开发大型项目。(对,我承认 mcedit 是 python 的,node-gyp 是 python 的,但是,他们都是用没有未来(来源:python wiki: python3 才是未来)的 python2 写的)

晚安2001
夭寿啦 大佬刷精华拉!

图挂了

DarcJC
本帖最后由 z25096708 于 2016-8-22 21:05 编辑
hhttll 发表于 2016-8-21 04:55
Python 是一门速度极其缓慢(执行速度大约为同为 脚本语言的 JavaScript 100 - 1000 分之一)。此外,Pyt ...

TMD你是zz吗??? python2和python3都一样在一直进行更新, 再说了, JavaScript的衍生nodejs排到第几了? 你看看python第几?
失态了, 抱歉

hhttll
本帖最后由 hhttll 于 2016-8-21 22:03 编辑
z25096708 发表于 2016-8-21 09:44
TMD你是zz吗??? python2和python3都一样在一直进行更新, 再说了, JavaScript的衍生nodejs排到第几了? 你 ...

我喷python又不是喷你的插件,你喷我干嘛 >.> 不要骂人好吗。。。。那个交替更新这个才有问题,为何就不能一鼓作气全部升级到 python3捏。反正我觉得 py2 不兼容 py3 情有可原,py3 完全不兼容 py2 真的有点过了。 node.js 只是 v8 加上一堆 api 而已,人家用来写服务端的当然用的少咯 >.> 你可以看看全世界所有的网页用的都是 javascript。手机上的 html5app 也是 javascript。>.>

讲道理,我真的不是引战,你可以看看我说的都是客观的事实,速度是我自己测的+网上数据(自己测空循环1000倍,网上算法实测是100倍左右,地址:https://github.com/unixpickle/Benchmarks)。

依赖问题(地址:http://stackoverflow.com/questio ... e-management-system),按照我的理解就是 pip 只能下载一个依赖而不能维护一个依赖。

那个pyhton3和pyhton2互相不兼容也是有目共睹的,比如 node-gyp 就是只支持 python3(https://github.com/nodejs/node-gyp/issues/193)。

python3是2008年推出的,来源:https://www.python.org/download/releases/3.0/
Python 3.0 final was released on December 3rd, 2008.

必须用四个空格来源是维基百科,理论上来说不能当作work cited,但是这里也给你列出来:https://zh.wikipedia.org/zh-cn/Python
根据PEP的规定,必须使用4个空格来表示每级缩进。使用Tab字符和其它数目的空格虽然都可以编译通过,但不匹配编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的Python程序和某些有问题的编辑程序。

Pyhton 3 才是未来,原文出处:https://wiki.python.org/moin/Python2orPython3
Python 3.x is the present and future of the language

真的不是引战,我认为任何一个语言都有缺点,而且是客观存在的。我喜欢 javascript,但我完全接受 人们对于 javascript 类似“一大堆从别的语言抄袭过来的特点”,“语法糖过多,风格紊乱”之类的批评。因为他们是事实,比如 generator 就是向 python 抄过来的,语法糖过多也绝对是事实,定义一个类都有好几种办法,定义一个getter setter 既可以 defineProperty,也可以 class 里面的 set xxx。
如果你无法接受上面这段话我说的内容,你可以评分"asdasd",那么我看到后把整个回复都删掉然后换成“好吧我错了,python是很赞的。”

DarcJC
本帖最后由 z25096708 于 2016-8-22 20:34 编辑
命令系统:

  1. _event_ = 'org.bukkit.event.player.PlayerCommandPreprocessEvent-command,onCommand()'

  2. from org.bukkit.event.player import PlayerLoginEvent

  3. # 加载
  4. def onLoad():
  5.     pass

  6. def onCommand():
  7. # check command
  8.         message = event.getMessage()
  9.         if message == "/fuck":
  10.                 # the things you want to do
  11.                 print event.getEventName()
  12.                 event.getPlayer().chat("fuck");
  13.                 event.setCancelled(True);
复制代码



2503180246
这个插件不错,玩家都说好

2503180246
这插件不错,我喜欢!!!顶楼主~~~~

DarcJC
hhttll 发表于 2016-8-21 21:54
我喷python又不是喷你的插件,你喷我干嘛 >.> 不要骂人好吗。。。。那个交替更新这个才有问题,为何就 ...

请搞清楚PEP的意思.
使用Tab字符和其它数目的空格虽然[at]都可以编译通过[/at],但不匹配编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的Python程序和某些有问题的编辑程序。

PEP只是一个规范, 并没有强制要求你用四个空格.
以及, Jython的最新版是Py2.7的实现, Py3的那个实现已经很陈旧了

914554688wyt
会Python的何必这么麻烦..
对应的例子咧?

SYS_TEM
然后就又成精华了owo
一起来用py搞事
然后我突然想到了java的jni【好像jni可以调用c/c++方法?

CustomStuff
本帖最后由 CustomStuff 于 2016-8-28 13:35 编辑

@a390807154  我不认为该插件达到该版精华要求,甚至优秀都不行。

首先从内容上看,这个插件提供了利用python语言进行插件编程的接口,但本身不包含任何自己的内容。
其次加载脚本作为一种已经烂大街的技术,本身无任何技术独创性。从内容和独创性上看,还望斟酌。

DarcJC
CustomStuff 发表于 2016-8-28 13:21
我不认为该插件达到该版精华要求,甚至优秀都不行。首先从内容上看,这个插件提供了利用python语言进行插件 ...

所以你怎么不用asm写个出来. 还有这个项目也有码云的推荐
http://git.oschina.net/darkdomain/Bython

还有在说我之前, 你先看看, 论坛里面那些优秀. 你说我的算不上优秀你可以先让版主把其他的优秀下了啊.

CustomStuff
z25096708 发表于 2016-8-28 13:31
所以你怎么不写个asm出来. 还有这个项目也有码云的推荐
http://git.oschina.net/darkdomain/Bython ...

我只是在根据你插件的内容谈罢了。你让我写个asm出来,意味着同样的你也要写一个jython出来。但是目前来看你只是调用了jython罢了,如果有asm的引擎,我倒不介意写几个。

andylizi
本帖最后由 andylizi 于 2016-8-28 14:11 编辑

什么时候插件版可以申请回复可见了?
另外标题感觉有点。。不和谐

@a390807154  觉得此插件不值精华
好多类都只不过是一个负责调用的壳子



匿名是为了防止楼主使用评分的方式回复我

北斗丿战魂
插件不错

2293289950
{:10_512:}

2264050315
很不错!

魔族宝
脑洞可嘉!
用JavaScript来搞事吧

有为少年
没咋看懂

1131797200
0.0 为啥还要回复

来,我来讲两句,你这个插件是个空壳的插件,没什么用处
难度也没什么
看了你所谓的高端插件的源码,你这个插件只是负责
读取jython解释器解释出来的字节码
且我不想说什么,你代码还是百度的吧,我不认为你很懂Java来,我们看图说话
这是你的代码对吧

来,我们谷歌一下注释来截个图,看看第一条结果是什么

来,百度抄你的?看看收录日期
来,我们再点进去看看

诶诶诶不是吧,我原以为这个插件就是空壳,至少ClassLoader是自己写的
以上呢,证明什么,你这个是并没有什么实际用途的空壳插件
且解释python部分为字节码也是jython在做,没技术含量
再者,你还百度代码是吧,我不觉得你很会Java
以上你自己看着办

weipiang
来学习一下,怎么拿到网盘密码

萝卜石头
楼主!
图被吞了!!!

萝卜石头
图片已被吞!

Ray_Hughes
嘿大佬,现在python已经觉醒了啊
有没有兴趣重启这个项目呢?

愿执一生笔
能不能不要太好,谢谢啦

666wad
能不能不要太好,谢谢啦

冰上云梦
hhttll 发表于 2016-8-21 04:55
Python 是一门速度极其缓慢(执行速度大约为同为 脚本语言的 JavaScript 100 - 1000 分之一)。此外,Pyt ...

前提


> 我是Python开发人员
>  我使用是Python3


对于楼上的回复


> 1. 针对Python运行效率低下的问题,现在已经有了很多的解决方案!例如JPython、CPython!
> 2. Python难以模块化,版本碎片化这个问题我很难理解你是指什么。Java的拓展使用的安装管理器我并不是很清楚(我仅仅开发过一些简单的Java程序),但是Python使用PIP程序进行拓展管理,他十分的有序并不会出现难以模块化这个说法。
> 3. Python用于快速开发一些项目,并且由于现在硬件的运算速度太快了所以现在和一些专注过程的语言差不多。(一般人没有 分辨0.1秒和0.01秒的区别。太快了)



冰上云梦
bliblibli23333 发表于 2019-10-1 14:57
嘿大佬,现在python已经觉醒了啊
有没有兴趣重启这个项目呢?

你居然还在看,和我一样欸!我们一起用Python搞事情吧

Ray_Hughes
季末旋律 发表于 2019-10-5 17:32
你居然还在看,和我一样欸!我们一起用Python搞事情吧

什么时候能重启项目啊 真的py现在崛起了的说

Creepercdn
可惜了,什么时候能重启项目啊

潇万洒
本帖最后由 潇万洒 于 2020-4-14 21:19 编辑

看了一下,这个项目是依赖jython作为中间件实现的,
Jython这个java语言写的python2直譯器,
而Jython很久没有更新了,止步在python2.7

python3和python2的更新,是大跨步,性质改变。
很多没有活力的老项目基本死在python2了。
Jython似乎就这么个东西。

毕竟python跟以前不一样了,它已经是个全能型语言,一个符合人类自然语言习惯的动态强类型非编译解释型语言。
跟JAVA是竞争关系,懂吧?不多说了

3楼的观点,因为考虑到是2016年发的也就不多说了。
现在python称呼不再只是指python2,它包含太多东西,
MCBBS不是讨论这些的地方就不赘述了。
现在如果还这么说,发言人动口前,应该先考虑一下摇匀脑浆了。

噗,扯远了。

简而言之,这个项目很难重启,因为它依赖的Jython被淘汰了。
但是,楼主在2016年就有这样的构思,我非常佩服,点赞。

如果想要使用python在minecraft中实现开发
我总结了一下,有如下几种方案:
一、
可以去了解一本老书《零基础学Minecraft编程》,里面使用的api挺老的。

二、
https://github.com/zhuowei/RaspberryJuice/
这是树莓派版minecraft开发时的api,现在依然在更新,目前支持是到1.14吧
https://www.bilibili.com/video/BV1o7411k7ji
B站视频有up主做了一些实现。

三、
通过python直接操作服务段终端,在通过命令,直接操作服务端。(二 的实现方式就这个)
这是最简单粗暴的方法,因为python2前身的原因,它具备脚本语言的能力
python目前具备全能语言的能力,这是从根本上有别于其他脚本语言的。
讲到这里,我已经能够联想到很多实现好东西的方式了。缺点是,对服务端操作的能力上限就看服务端开放的程度了,在服务端后台不能操作的事情,python也做不到2333。

四、
这是最彻底也是最困难的解决办法。
使用python来实现开发minecraft的底层实现,做一个完全基于python开发的minecraft
就像C++实现minecraft一样。
不过,这存在一个问题。
早在2017年就已经有了说C++Minecraft取代JAVA Minecraft的讨论
现在都三年了,现状是啥,相信你我有目共睹
生态圈的形成,是需要很长的时间的
而且工程量又那么大,还不一定讨好,如果只是用爱发电的话..没啥必要。
如果说到这里,依然想选择第四个方法,并且做到了,那么这个人/这个团队必将载入minecraft史册。

664401389
这个插件很好

741062185
hhttll 发表于 2016-8-21 04:55
Python 是一门速度极其缓慢(执行速度大约为同为 脚本语言的 JavaScript 100 - 1000 分之一)。此外,Pyt ...

JavaScript第几啊 没见过啊 可我知道python是第一啊 你是怕抢了饭碗吧

鹿中之麋
mcbbs有你更精彩

zy660011
很棒的插件 支持作者

祈葬
好家伙,真不戳

mctiechujun
欸不错,我喜欢

Ex小木,
很棒 下载了看看 谢谢楼主

目岚.
太好了,刚学的python有用了

XiaoZhangTX
Python,NB!