Giter VIP home page Giter VIP logo

bedrockmod's Introduction

Minecraft Bedrock Edition Mods

WIP! CircleCI Download

Build Instruction

See .circleci/config.yml

LICENSE (src)

GPL v3

bedrockmod's People

Contributors

chenjiayong2017 avatar codehz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bedrockmod's Issues

终于运行起来了

终于运行起来了,MOD服务端吗?为什么我进去发现和官方没什么区别?这个服务端增加了什么功能?

1.7.0.13可以用这个mod吗?

最新版的1.7.0.13可以0.3.1这个mod吗?如果可以的话,应该怎么用,这个mod有什么功能?有没有使用教程,可以出一个使用教程吗?谢谢!

Proposal: Extract packets and events into their own library

We now have like 10 mods in this repo,and stuff like packet sending & handling,player & world events are just basically lying around in modules that uses them,so why not aggregate them into a single library?
like chai_packets & chai_events.

This allows us to add things easier and know where to look for what we need

Pros

  • more organized codebase, easier to find API
  • aggregate places that "breaks" after MC updates

Cons

  • breaks existing plugins <- reason I am posting this as a issue instead of working on a fork then PR
  • will need ways to compile a module with dependency to other modules

PS: if this got accepted,what about packing modules into namespaces on the chaiscript side?
from onPlayerJoined to events.player.onJoined
from sendTextPacket to packets.sendTextPacket (or just packets.send with a overload)

PSS: This is more like a asking for permission than asking for change,because I thought I should ask before working on changes that breaks the API :)

无法打指令

root@xsba:/bdsm# ./bdsm r -u
BDSM Version: v0.1.0-3-g5f438be
ModLoader Loading...
NO LOG FILE! - setting up server logging...
NO LOG FILE! - [2018-11-17 11:39:33 INFO] Starting Server
NO LOG FILE! - [2018-11-17 11:39:33 INFO] Version 1.7.0.13
NO LOG FILE! - [2018-11-17 11:39:33 INFO] Level Name: test level
NO LOG FILE! - [2018-11-17 11:39:33 ERROR] Error opening whitelist file: whitelist.json
NO LOG FILE! - [2018-11-17 11:39:33 INFO] Game mode: 0 Survival
NO LOG FILE! - [2018-11-17 11:39:33 INFO] Difficulty: 2 NORMAL
NO LOG FILE! - [2018-11-17 11:39:34 INFO] IPv4 supported, port: 19120
NO LOG FILE! - [2018-11-17 11:39:34 INFO] IPv6 not supported
NO LOG FILE! - [2018-11-17 11:39:35 INFO] Server started.
NO LOG FILE! - [2018-11-17 11:39:42 INFO] Player connected: 2535472408538814
bedrock_server://root@xsba$ list
The name one.codehz.bedrockserver.default was not provided by any .service files
bedrock_server://root@xsba$

加入mod后无法连接服务器

我从https://73-141378462-gh.circle-artifacts.com/0/data/projects/out/mods.tar.xz 下载了你最新编译的mod,放到 /srv/mcpeserver/user/mods ,启动服务器后,attach会卡住不动无输出,客户端能看见motd但无法连接服务器。移除mod后正常。有mod时服务端日志如下:

Sep 07 10:48:02 VM-Arch-Desktop systemd[1]: Starting Minecraft Bedrock Edition Server...
Sep 07 10:48:02 VM-Arch-Desktop systemd[1]: Started Minecraft Bedrock Edition Server.
Sep 07 10:48:02 VM-Arch-Desktop bedrockserver[33404]: [core] Loading Bedrock Server...
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/libsupport.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/libscript.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/script_base.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/script_chat.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/script_tick.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/script_dbus.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loading mod: /srv/mcpeserver/user/mods/script_transfer.so
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [ModLoader] Loaded 7 Mod
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Minecraft is at offset 0xf2f6c000
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Game version: 1.6.0
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Applying patches
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] Vtable size = 241
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] createDeviceID:
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Loading server properties
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getCurrentStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing resource loaders
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getSystemRegion: 0xdeadbeef
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing ResourcePackManager
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing PackManifestFactory
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing SkinPackKeyProvider
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing PackSourceFactory
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing ResourcePackRepository
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [AppPlatform] getInternalStoragePath: /srv/mcpeserver/data
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Adding vanilla resource pack
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Adding world resource packs
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing SaveTransactionManager
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing ExternalFileLevelStorageSource
Sep 07 10:48:04 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Initializing ServerInstance
Sep 07 10:48:26 VM-Arch-Desktop bedrockserver[33404]: [Minecraft] NO LOG FILE! - IPv4 supported, port: 19132
Sep 07 10:48:26 VM-Arch-Desktop bedrockserver[33404]: [Minecraft] NO LOG FILE! - IPv6 supported, port: 19133
Sep 07 10:48:26 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Loading language data(en_US)
Sep 07 10:48:26 VM-Arch-Desktop bedrockserver[33404]: [Bridge] Server initialized

Proposal: Documentation Enhancement & Code Organization

This is a project that is too good to exist without any docs on how to use it
Therefore,I propose a way to write docs & organize code for the various mod the project provides:

Code Organization
the code for each individual mod are placed in src/
eg: prop.cpp for chai_prop.so should be moved to src/prop/prop.cpp

Documentation & Examples
the docs and examples for a mod are placed in docs/
eg: docs and examples for chai_prop.so should be placed in docs/prop

Pros
the codebase will be more organized ,so it wont go too messy when we add more mods

Cons
the complexity of makefile will grow,since we must deal with sources behind the directories

Examples
I made a small example on the prop mod in my fork,feel free to check it out

can not run

无法启动,系统UBUNTU server 18.10
root@minecraft:/bdsm# ./bdsm r -u
Failed to connect to session bus: exec: "dbus-launch": executable file not found in $PATH

root@minecraft:/bdsm# ./bdsm r
BDSM Version: v0.1.0-3-g5f438be
ModLoader Loading...
Loading mod: libsupport
Loading mod: libbridge
bedrock_server://root@minecraft$

1.8 update new issue

New issue with todays 1.8 update, the server crashes during start with:

BDSM Version: v0.1.0-3-g5f438be
ModLoader Loading...
Loading mod: libsupport
NO LOG FILE! - Symbol not found: _ZN9Minecraft4initEb
NO LOG FILE! - Hook failed: DecodeFailed
Loading mod: libbridge
Loading mod: libanti_cheats
Loading mod: libdisable_encryption
Loading mod: libedu
Loading mod: libscript
Loading mod: script_base
Loading mod: script_chat
Loading mod: script_command
Failed to load script_command: mods/script_command.so: undefined symbol: _ZN15CommandRegistry11addSoftEnumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EE
Loading mod: script_config
Loading mod: script_dbus
Loading mod: script_fake
Loading mod: script_form
Loading mod: script_nbt
Loading mod: script_policy
Loading mod: script_server_exec
Loading mod: script_tick
Loading mod: script_transfer
Loading mod: script_world
Failed to load script_world: mods/script_world.so: undefined symbol: _ZN12CommandUtils13spawnEntityAtER11BlockSourceRK4Vec39ActorTypeR13ActorUniqueIDP5Actor
D [run] Starting Server
D [run] setting up server logging...
D [run] Version 1.8.0.24 modded v0.3.2-2-g359e395
D [run] Level Name: Bedrock level
D [run] Game mode: 0 Survival
D [run] Difficulty: 2 NORMAL
D [LogIPSupport] IPv4 supported, port: 19137
D [LogIPSupport] IPv6 supported, port: 19138
D [CMD] clear commands.clear.description 1 0 0
D [CMD] deop commands.deop.description 2 20 0
D [CMD] clone commands.clone.description 1 0 0
D [CMD] daylock commands.daylock.description 1 0 0
D [CMD] difficulty commands.difficulty.description 1 0 0
D [CMD] effect commands.effect.description 1 0 0
D [CMD] enchant commands.enchant.description 1 0 0
D [CMD] gamerule commands.gamerule.description 1 20 0
D [CMD] execute commands.execute.description 1 0 0
D [CMD] fill commands.fill.description 1 0 0
D [CMD] function commands.function.description 1 0 0
D [CMD] gamemode commands.gamemode.description 1 0 0
D [CMD] help commands.help.description 0 4 20
D [CMD] gettopsolidblock commands.gettopsolidblock.description 0 2 0
D [CMD] give commands.give.description 1 0 0
D [CMD] list commands.list.description 0 20 0
D [CMD] kill commands.kill.description.edu 1 0 0
D [CMD] listd commands.listd.description 3 2 0
D [CMD] locate commands.locate.description 1 0 0
D [CMD] reload commands.reload.description 2 0 0
D [CMD] me commands.me.description 0 10 20
D [CMD] op commands.op.description 2 20 0
D [CMD] playsound commands.playsound.description 1 0 0
D [CMD] querytarget commands.querytarget.description 0 2 0
D [CMD] scoreboard commands.scoreboard.description 1 0 0
D [CMD] replaceitem commands.replaceitem.description 1 0 0
D [CMD] say commands.say.description 1 10 20
D [CMD] particle commands.spawnParticleEmitter.description 1 0 0
D [CMD] setmaxplayers commands.setmaxplayers.description 3 0 0
D [CMD] setblock commands.setblock.description 1 0 0
D [CMD] spawnpoint commands.spawnpoint.description 1 0 0
D [CMD] setworldspawn commands.setworldspawn.description 1 0 0
D [CMD] spreadplayers commands.spreadplayers.description 1 0 0
D [CMD] teleport commands.tp.description 1 0 0
D [CMD] stopsound commands.stopsound.description 1 0 0
D [CMD] summon commands.summon.description 1 0 0
D [CMD] tell commands.tell.description 0 10 20
D [CMD] testforblock commands.testforblock.description 1 0 0
D [CMD] testforblocks commands.testforblocks.description 1 0 0
D [CMD] testfor commands.testfor.description 1 0 0
D [CMD] tickingarea commands.tickingarea.description 1 0 0
D [CMD] time commands.time.description 1 0 0
D [CMD] title commands.title.description 1 10 0
D [CMD] toggledownfall commands.toggledownfall.description 1 0 0
D [CMD] weather commands.weather.description 1 0 0
D [CMD] wsserver commands.wsserver.description 2 8 0
D [CMD] xp commands.xp.description 1 0 0
D [CMD] ability commands.ability.description 1 0 0
D [CMD] immutableworld commands.immutableworld.description 1 0 0
D [CMD] worldbuilder commands.worldbuilder.description 1 0 0
D [CMD] agent commands.agent.description 1 2 0
D [CMD] kick commands.kick.description 4 0 0
D [CMD] save commands.save.description 4 0 0
D [CMD] stop commands.stop.description 4 0 0
D [CMD] whitelist commands.whitelist.description 4 0 0
D [CMD] ops commands.permissions.description 4 0 0
D [CMD] permissions commands.permissions.description 4 0 0
D [CMD] geteduserverinfo commands.geteduserverinfo.description 0 2 0
D [CMD] changesetting commands.changesetting.description 4 0 0
D [reg] minecraft
D [reg] minecraft base
D [reg] minecraft chat
D [reg] minecraft config
D [reg] minecraft dbus
D [reg] minecraft fake
D [reg] minecraft form
D [reg] minecraft nbt
D [reg] minecraft policy
D [reg] minecraft server-exec
D [reg] minecraft tick
D [reg] minecraft transfer
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>id</key>
    <string>0</string>
    <key>delay</key>
    <integer>0</integer>
    <key>status</key>
    <integer>0</integer>
  </dict>
</plist>

Question: Reasons for adding Guile Support

I wishes to know the reason for adding guile support for this scripting library.
since adding another language would mean more work in documentation and maintenance.
Was it simply due to personal taste or have other engineering concern?

After a quick glance through the reference manual,it is undeniable that this language has better documentation and more powerful in hooking.Also,this language is a extension of scheme,meaning that it gets the expressiveness and ease in DSL from Lisp-like languages.

But wont the lisp style be too esoteric to normal developers?Since FP is not something that a beginner can grab and go very quickly.

Note: I am NOT INTENDING TO START A FIGHT,just want to know why.Sorry if this triggers you.

Design Reference: Refer to Bukkit & Sponge for API Design

The Bukkit API is a well-known and long-existed plugin API that almost dictated plugin development on Java Edition for years,its longevity means that it must have got some abstraction right!
The javadoc of its current successor: https://hub.spigotmc.org/javadocs/spigot/overview-summary.html

The Sponge API is a relatively new(but also has been around for a year or two) plugin API that runs on forge,I will put their docs here too:https://jd.spongepowered.org/7.0.0/
I think we should,even must learn from our "java predecessor" to aid us in designing a lightweight,simple to use API by utilizing the expressiveness of the duck-typed language.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.