Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Version 1.14 #84

Open
wants to merge 83 commits into
base: 1_14_4
Choose a base branch
from
Open

Conversation

MinecraftDawn
Copy link

I'm not good at english,so maybe hava many grammar error

  1. Upgrade to 1.14
  2. Add some command(createExplosion、sendTitle)
  3. Separate setSign into setSign and setWallSign
  4. Refactor the RemoteSession.java file
  5. Change encoding from cp437 to utf8
  6. Add fail message
  7. Clearly define the parameter type and parameter quantity of the function
  8. Build javadoc
  9. Add some python example file
  10. Modify README.md file

You can decide whether to use any part of this pull

@martinohanlon
Copy link
Collaborator

I am not going to pull this into RaspberryJuice. Let me explain why and offer some thoughts on next steps.

I am preparing a new release of RaspberryJuice based on Bukkit 1.12.2 which brings in some older outstanding PRs.

I think this will be the last release of RaspberryJuice

The change to minecraft's data model replacing integer ids with strings means that any version based on 1.13+ will no longer be compatible with programs made against previous versions or any program written to run on Minecraft: Pi edition.

It feels like time for RaspberryJuice2. A separate plugin which makes a clear distinction about the break in compatibility and takes forward the premise of a real-time Minecraft API.

My motivations for maintaining RaspberryJuice are to ensure its compatibility with the Pi edition and I dont feel like I am the right person to take this forward.

@MinecraftDawn if you want to take forward a RaspberryJuice2 I will happily link to the new plugin for this repo, the bukkit and spigot pages, offering RaspberryJuice2 as the natural successor.

@neuhaus
Copy link
Contributor

neuhaus commented Oct 21, 2019

Great pull request by @MinecraftDawn - i hope we see a v1.14 compatible fork under a new name.
If not this project is doomed to disappear.

@Marcinosoft
Copy link

Great pull request by @MinecraftDawn - i hope we see a v1.14 compatible fork under a new name.
If not this project is doomed to disappear.

I agree.

@Marcinosoft
Copy link

The change to minecraft's data model replacing integer ids with strings means that any version based on 1.13+ will no longer be compatible with programs made against previous versions or any program written to run on Minecraft: Pi edition.

Isn't really possible to map previous integer ids to new strings ? I suppose that not all new blocks and entities could be mapped this way, but at least all previous from 1.12 seems possible. Am I wrong? I agree that previous samples with integer ids should still work, but this does not eliminate to move forward to 1.14. We should eat cake and still have it.

@MinecraftDawn
Copy link
Author

Thanks for your explanation and review my codes.

Maybe i will map integer id to new string id.

@acs
Copy link

acs commented May 10, 2020

Any news on this movement to RaspberryJuice2? @MinecraftDawn ? After some time working with Minecraft and Python, I have reached this point in which this wonderful API (Raspberry PI) is in dangerous after 7 years. For me all has worked yet in the current state (MC 1.15.2 with Spigot, RaspeberryJuice 1.11 and 1.12).

Spingot 1.15.2 has the legacy material layer, so the plugin works nicely with mcpi because this layer is converting from block ids to material string in both directions (python/mcpi <-> plugin <-> legacy material <-> minecraft server).

My experience during the last months is that I can use this Raspberry PI in Minecraft and also in Minetest, and it is great as a bridge between both communities. And also, the possibilities of this API are wonderful. I have developed McThings (https://github.com/juntosdesdecasa/mcthings) based on it supporting for example Schematics, McDrawings and others using this Raspberry PI API.

Thinking in the current position, at least in my mind, the process to evolve should be something like:

  • Modify mcpi.blocks Python lib to map the names to material strings: all the source code using block names will work with the material strings. Maybe this must be done in a new mcpi2 lib.
  • After this change, the python code will send material string with the blocks API (setBlock/setBlocks, gteBlock/getBlocks)
  • In my over simplified vision, this plugin (RaspberryJuice) will get the command and the material string, and send it to the minecraft server. But I need to understand the details of this plugin in order to understand if the plugin does more than just receiving the commands from the mcpi python lib and sending them to the minecraft server.

I am thinking also in a solution for the Forge plugin (stopped also at 1.12.2 version) and the Minetest plugin (which is working now and it has no problems with its Lua implementation).

Atter reading the code for the Legacy Material (in CraftBukkit) the vanilla server has a nice support for this conversion between blocks ids and material strings, so a solid solution could be reached.

With the Legacy Material we are now covered (1.11 and 1.12 version of the plugin are working with 1.15.2 Spigot MC server) but this layer introduces latency and limits the blocks that can be used (maybe this is something we want to respect the original API). And the motivation for maintaining it will decrease as plugins migrate to material strings.

Any thoughts about all of that are more than welcome. I am pretty motivated now to evolve the current code (Python and Java, I have experience programming with both).

@acs
Copy link

acs commented May 10, 2020

I have tested the PR and it works. And I have created a block using the string "bedrock" instead of the legacy bedrock id.

@neuhaus
Copy link
Contributor

neuhaus commented Mar 30, 2021

I'm inclined to create a fork of RaspberryJuice with the pull requst by @MinecraftDawn under the new name

RaspberryJelly

But only if noone else is willing to do it! 😁 I don't know how much time i can invest into keeping it updated so I'm counting on contributions by others.

@wensheng
Copy link

Please take a look at https://github.com/wensheng/JuicyRaspberryPie

It's initially based on raspberryjuice, but now offer a lot more.

@neuhaus
Copy link
Contributor

neuhaus commented Jun 18, 2021

Thanks for pointing it out. Could you clarify the situation in the README and link to that related project?

@Marcinosoft
Copy link

@martinohanlon maybe it could be worth to consider if some parts of this branch could be commited into master.
Currently I'm using raspberryjuice-1.12.1.jar plugin with MC 1.16.5 with success.
I found only minor issue so far - some new blocks cannot be replaced by air (block id =0), but the rest seems to work fine with Spigot 1.65.5 and Paper 1.16.5.

Old API still works, and maybe it's time to extend it (not replace) to support new block naming convention too?
What do you think?

@lukebrowell
Copy link

@MinecraftDawn, please let us know how we can help?

It looks like there's currently 196 files changed in this branch. Re your question @martinohanlon, have you looked into what would be involved to making it a feature-flag?

@martinohanlon
Copy link
Collaborator

@lukebrowell My views haven't changed. I don't think progressing this is the right choice for RaspberryJuice. I will happily promote any new version of RaspberryJuice though but it would be a new plugin not a continuation.

@lukebrowell
Copy link

Totally understand.

My, is it fork o’clock already? How time flys. Thanks for the chat, but I must be on my way. Toodle-oo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants