glowstonemc / glowstone Goto Github PK
View Code? Open in Web Editor NEWA fast, customizable and compatible open source server for Minecraft: Java Edition
Home Page: https://glowstone.net
License: Other
A fast, customizable and compatible open source server for Minecraft: Java Edition
Home Page: https://glowstone.net
License: Other
At the moment, pulse requests are stored within the GlowWorld, and if the server shuts down while something is waiting for an update, then it will forget this. So if water is spreading or the pulse request is used for something else later (e.g. redstone) then if the server shuts down or the world unloads, when it reloads it will freeze in place and wont update until a player manually updates it.
This isn't a super high priority issue, but (as far as I can see), this can be fixed in 2 ways:
When the world unloads, save all of the active pulse requests in the world save.
When a chunk is loaded, force pulse request every block that would accept pulse requests. (Although, this wouldn't perfectly replicate vanilla behavior as floating water doesn't update itself when chunks load, and it might be a little in-efficient)
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
There are two huge memory leaks in Glowstone++ right now.
I don't know what causes them yet, but the objects/classes created are:
Glowstone does have the java.lang.ref.Finalizer leak. I should mention that this leak does not grow nearly as fast as the netty leak.
Information on memory leaks with Finalizer.
I haven't been able to find much about the netty stuff, but here's the class file.
This is not a problem directly caused by Glowstone++. We could be using a library in a wrong manner.
The memory usage climbs fairly linearly. I've seen the eden space grow to 1GB sometimes, from around 7MB.
It only happens while a player is on the server.
I was thinking to mark progress and stability, we should feature a build by versioning it.
This will be great to server owners because they don't know which build is good for their server, and instead have to risk stability and the server being in flux by updating every dev build.
Dev builds will not be versioned. Versioning will just be a way of featuring/marking a build as recommended.
For our first version (0.0.1), I was thinking we should release it once liquid physics and redstone are redone/more complete, we add the new world manager, and add a config for the library manager so people can set to have more libraries download.
If persist-spawn in serverconfig is true, instead of just loading and anchoring spawn chunks, chunks should also be populated. This reduces join wait time for players, at the sacrifice of increased server load time, which I think is a reasonable trade off, as server load time is not very important, since admins can and will wait, while players may not want to wait.
Configured https://circleci.com/gh/deathcap/GlowstonePlusPlus to copy the server jar out of the target directory after each build as described on http://blog.circleci.com/build-artifacts/, making it available for download, but I'm not seeing the "artifacts" tab without logging in. May have to switch somewhere else for hosting builds.
I can start working on the official Glowstone++ servers with my hosting company, and I will just post when they are ready, I can then send owner login info to @deathcap and another login to @mastercoms (deathcap can choose what level of access he wants mastercoms to have to the servers). I will post progress on the servers as well. Deathcap and Mastercoms can comment features they would like to have for the servers and i will see how much I can do :) (I can probably do all of the suggestions)
You think it's a gonna be a lot of trouble on our part when 1.9 is released? It should change a lot shouldn't it?
And some closed PRs that may be useful
Achievements do not persist from multiple sessions, and the friendly name is not given.
So, I'm going to be moving the test server from the dedicated server to a new VPS server. Performance may go down by a tiny bit, and there will be some downtime. This transfer will occur Friday, 1PM EDT.
I noticed lava is not flowing automatically in the nether: trigerring manually an adjacent block update updates physics but I forgot to ask for physic updates in the LavaDecorator class.
The same goes for overworld: needs to fix FlowingLiquidsDecorator class.
Will try to do a related PR soon.
/gamemode 1
, open inventory, click an item to pick it up then drop in the player inventory, close inventory = item disappears. Same results if shift-click to pickup a stack. At least shift-clicking between inventories now works =). Creative inventory worked in builds before 45. Fallout from:
https://circleci.com/gh/deathcap/GlowstonePlusPlus/45
merge commit: d0b16cf
original PR (not isolated - might be a bad merge on my end):
#484 Fixed window click logic
The Pore project (an implementation of Spigot's 1.8.3 update to the Bukkit API) has a handful of its own patches to the API, some might make sense to pull into Glowstone++'s:
https://github.com/LapisBlue/Pore/tree/master/patches
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Would it be possible for us to create a WorldLoad and WorldSave thread for each world when they need to be saved/loaded?
I'll make a relevant PR soon.
TrueCraft is a complete open source implementation of 1.7.3 beta.
http://truecraft.io/
It could help us in determining how to implement certain Minecraft features properly, such as fluids.
@deathcap, could you sign us up for a free Intellij IDEA Ultimate Open Source license?
Is there a checklist of things that is needed to be done?
I would love to help on this project.
When liquid flows, it sets the adjacent block if applicable. However, there is not a handler for double plants for this physics action, and the double plant sets itself to a single plant, but over the water because the breaking was performed on the bottom block in the double plant block group.
Double plants should be set to air completely on a physics interaction by a liquid.
I'm looking to clean up the Glowstone++ code. What library should I use for JSON, gson or json simple?
So there was a discussion on how to implement new APIs with Glowstone. I suggested having Glowstone being able to load multiple APIs and translate these methods to an internal API, but the collaborators of Glowstone decided that they were going to only use Bukkit until Glowstone was stable, so I decided to work on a new implementation which I never got around to.
Sunflower was planned to create a universal wrapper for a server using mappings that would translate methods to that server's internal API. In this case, Bukkit.
Unfortunately, I am extremely busy and couldn't work on anything besides some pseudo code and planning.
So, I was wondering if GlowstonePlusPlus could be the Sunflower server, Helios. Just like Craftbukkit++ transformed into Spigot, Glowstone++ can transform into Helios. Of course, I'm completely fine if @deathcap is not ok with it, and I guess I'll delete Sunflower because I won't have a chance to work on it, and I will work on Glowstone++ instead.
The Nether look is quite boring...
If you agree I should be able to make a relevant PR soon.
Currently, the leaves placed by playes are decayable, this shouldn't be the case:
http://minecraft.gamepedia.com/Leaves
This currently have no real incidence, but I'm planning leaf decay so this will need to be fixed.
This is now no longer necessary as BlockType instantiate a protected random object.
So is there plans for Glowstone++ to be a major thing or is this only for fun because I really want to help out if you have plans to make Glowstone++ a big thing. Things that could help with the success
Of Glowstone++ could be a website, irc chat, official test servers, Github organization so that who's on the Glowstone++ team will be easily defined and you can do a lot more with permissions on repos if a github organization is created. Just wondering :P
I noticed that, just found a beautiful MushroomIsland biome but close to it there was a Jungle Temple in ocean.
Every world's downfall is true when it is created. This causes for rain to always be enabled by default.
You can't remove items from your inventory. The previous item will come back when you close the inventory.
I think we should add that client side line back in when we did the creative mode inventory pull, but still also keep the server side line.
split off from #6:
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I managed to get this beauty by placing one torch on tall grass, while pointing to tall grass behind it, and it replaced the tall grass like you would expect, but then it went on the tall grass behind it. So then, I replaced the tall grass with another torch placement and it placed itself on the face of the redstone torch that was already there.
Both https://github.com/deathcap/GlowstonePlusPlus (in net.glowstone.shiny based on https://github.com/GlowstoneMC/ShinySponge) and https://github.com/deathcap/Bukkit2Sponge (based on Glowstone++) implement SpongeAPI, what to do about this duplication?
The downside of this duplication is of course extra work in maintaining two separate copies (#45), but it may also be causing conflicts: GlowstoneMC/Bukkit2Sponge#1
I'm thinking about removing the SpongeAPI in Glowstone++ in favor of Bukkit2Sponge, but a benefit of having it in Glowstone++ is that it's an all-in-one package, easier for server admins instead of having to download a separate plugin to load SpongeAPI plugins, plus the auto-detection of Bukkit/Sponge plugin types (Glowstone++ recognizes both types in the usual plugins/
directory, Bukkit2Sponge currently only loads from its own plugins/Bukkit2Sponge/plugins/
folder).
Maybe keep the plugin type detection in Glowstone++ (and enhance for other plugin types, e.g. #46), but defer to Bukkit2Sponge for loading the SpongeAPI plugins (possibly even embedding Bukkit2Sponge within Glowstone++? git subproject etc.)
There's also the possibility to consider as the projects advance that implementing SpongeAPI on top of the Bukkit API becomes less practical, than implementing it directly in the server implementation (to be determined).
I made an IRC channel for Glowstone++ on EsperNet to test it out. We can use this or Gitter.im its up to you guys but until we decide we can temporarily use EsperNet ๐
Drone.io provided downloads without logging in, and we removed it because we shaded sponge, which made glowstone++.jar go over the 10MB limit for drone.io.
Now, we have decided to include plugin suppport in plugins instead of the actual server, so the jar size is less than 10MB again.
what will it contain? only SpongeAPI and implementation?
Would be cool to have a test server (or more than one) for helping develop and test Glowstone++. Some discussion about this in #8 with @TekkitCommando and @mastercoms. My thoughts, more servers the better, but some ideas:
Bukkit added server commands up to 1.7, but Spigot's Bukkit update for 1.8 removed all commands from the API because they instead pass through to the official Minecraft server. Glowstone can't do this obviously, so it relies on the commands in the API project, but they aren't updated for any new 1.8 features. Glowkit may have already added some; need to check. Full command list:
http://minecraft.gamepedia.com/Commands
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The mycel block should receive random block ticking, then fade or spread accounting light level.
BlockFadeEvent and BlockSpreadEvent should be called accordingly.
References:
http://minecraft.gamepedia.com/Mycelium
http://minecraft.gamepedia.com/Tick
Will file a PR soon.
It is kind of useless for offline mode, so should we disable it?
Just quickly have checked how my PRs gets merged and I noticed (but didn't tested anything) the structures can't spawn as the code has diverged at some point.
You clearly don't longer need the SurfaceGenerator (superseded by OverworldGenerator) and to see the structures spawn you need to instantiate the StructurePopulator in the OverworldGenerator constructor.
Hi there, this is a cool fork of Glowstone and our code switched to your code and we gave you credits in our read me.
I found out some problems:
I really hope you can fix those problems, I tried my best but I can't find where the problem is. Thanks so much. ;D
As @mastercoms stated earlier in my Nether generator PR, the biome isn't set properly for both Nether and TheEnd.
Will do a relevant PR.
I'm sorry if this is a stupid question but would it be possible to add support for the CanaryMod API? I'm not sure if there would be much purpose to it though but then again you're trying to add support for things right?
Glowstone++ integrates the updates to the Bukkit API from the Spigot team (i.e., from https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/README.md) but they also have an additional set of patches on top of the Bukkit API:
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/browse/Bukkit-Patches
might be worth also supporting some of these APIs, although by their nature they are more experimental, and not all are necessarily applicable.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
API: https://github.com/SpongePowered/SpongeAPI
Useful references:
Forge implementation: https://github.com/SpongePowered/Sponge
Vanilla Minecraft implementation: https://github.com/SpongePowered/SpongeVanilla
Shared code: https://github.com/SpongePowered/SpongeCommon
Discussion on multi-API coexistence (Bukkit+Sponge): #498
The liquid decorator forces a liquid pulse instead of requesting one from the world.
This prevents people from downloading libraries necessary for plugin compatibility.
I'll set up a new repo.
Drops from the player fall slowly, and jagged. They should also go forward, while right now they drop below the player.
๐
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.