A fast, customizable and compatible open source server for Minecraft: Java Edition

Overview

Built with Love Join the Discord chat Dev Build

Glowstone logo

Glowstone

A fast, customizable and compatible open source server for Minecraft: Java Edition.

Introduction

Glowstone is a lightweight, from scratch, open source Minecraft server written in Java that supports plugins written for the Bukkit API and its major forks, Spigot and Paper.

The main goals of the project are to provide a lightweight implementation of the Bukkit API and Minecraft server where exact vanilla functionality is not needed or higher performance is desired than the official software can deliver. Glowstone makes use of a thread-per-world model and performs synchronization only when necessitated by the Bukkit API.

Still have questions? Check out our FAQ.

Features

Glowstone has a few key advantages over CraftBukkit:

  • It is 100% open source. While CraftBukkit and most other mods are open source, they rely on decompiled Minecraft source code. Glowstone's code is completely original.
  • Because of this, it is easy to contribute to Glowstone's development. The barrier of entry to contributions is lower because there is no need to work around decompiled source or maintain a minimal diff.
  • Glowstone supports all plugins written for the Bukkit, Spigot and Paper APIs natively. In practice, some plugins may try to make use of parts of the API which are not yet implemented, but in a completed state Glowstone would support all Bukkit plugins.
  • Glowstone's simplicity affords it a performance improvement over CraftBukkit and other servers, making it especially suited for situations where a large amount of players must be supported but vanilla game features are not needed.

However, there are several drawbacks:

  • Glowstone is not finished. Nothing is guaranteed to work, though many things are likely to. If in doubt, file an issue.
  • Bukkit plugins which expect the presence of CraftBukkit-specific code (that are in the org.bukkit.craftbukkit or net.minecraft.server packages) will not work on Glowstone unless they are designed to fail gracefully.
  • Glowstone is not produced by the Bukkit team, and while we do make an effort to produce quality work, Glowstone does not undergo the same rigorious testing as the Bukkit project.

For a current list of features, check the wiki.

Downloads

The latest LTS and monthly releases, as well as a direct link to our latest build can be found on our website.

Older releases can be found on GitHub.

Building

1. Setup

After installing Oracle JDK (recommended) or OpenJDK, and Maven, checkout the source:

git clone https://github.com/GlowstoneMC/Glowstone
cd Glowstone

2. Build

./scripts/build.sh

The final jar will be placed in target/ named glowstone.jar.

Running

Running Glowstone is simple because its dependencies are shaded into the output jar at compile time. Simply execute java -jar glowstone.jar along with any extra JVM options desired (we recommend using java -Xms1G -Xmx1G -XX:+UseG1GC -jar glowstone.jar). A variety of command-line options are also available - run java -jar glowstone.jar --help for more information.

By default, configuration is stored in the config/ subdirectory and logs are stored in the logs/ subdirectory. The main configuration file is config/glowstone.yml, which replaces CraftBukkit's server.properties and bukkit.yml. Settings from these two files will be copied over to Glowstone's configuration during the default configuration generation process.

Glowstone uses JLine for console input and colored console output. The JLine console can be disabled in the configuration if a flat console is desired.

Need more help? Check out our wiki for some guides that will help you with running, maintaining and configuring your Glowstone server.

Playing

For those of you who just want to play on a Glowstone server, we have one available for testing at mc.glowstone.net. Have fun!

Docs and Support

The best place to receive support is on GitHub issues. When reporting bugs, please retest and include whether the problem reproduces on:

Javadocs for Glowstone can be found here.

For documentation on the Glowkit API (an updated Bukkit for Glowstone, based on the Paper API, compatible with Spigot's update to Bukkit), see the Glowkit Javadocs.

Contributing

First of all, thank you for your interest in advancing Glowstone! We always love to see new developers work on the project! You can find all of our resources on how to get started on our wiki.

Sponsors

More backers

Sponsor Glowstone on Bountysource!

Credits

Copyright

Glowstone is open-source software released under the MIT license. Please see the LICENSE file for details.

Glowkit is open-source software released under the GPL license. Please see the LICENSE.txt file in the Glowkit repository for details.

Comments
  • UUID lookups do not thread

    UUID lookups do not thread

    Is it possible to fetch player's UUID in another thread? It hangs the server when typing in a random username.

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    Category: performance Category: server feature 
    opened by DefinitlyEvil 62
  • Not using Log4j breaks plugins

    Not using Log4j breaks plugins

    Glowstone build: every? (tested on #550 and #551)

    Glowstone doesn't contain Log4j so it breaks many plugins, even mine, so i had to write an server engine detector.

    02:21:46 [SEVERE] Error occurred while enabling NekoooGuilds v0.0.1 (Is it up to date?)
    java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
    	at gabixdev.nekoooguilds.NekoooGuilds.onEnable(NekoooGuilds.java:114)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:316)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:411)
    	at net.glowstone.GlowServer.enablePlugins(GlowServer.java:939)
    	at net.glowstone.GlowServer.start(GlowServer.java:630)
    	at net.glowstone.GlowServer.run(GlowServer.java:452)
    	at net.glowstone.GlowServer.main(GlowServer.java:322)
    Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:102)
    	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:87)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	... 8 more
    02:21:46 [INFO] [NekoooGuilds] Disabling NekoooGuilds v0.0.1
    

    Plugin src if you want: https://github.com/gabixdev/NekoooGuilds

    Type: inconsistency Priority: minor Category: server feature Status: needs investigation 
    opened by alula 30
  • Console filled with '>'

    Console filled with '>'

    I am running Glowstone++ 1.8.8-SNAPSHOT and everytime something is printed to the console hundreds of > signs follow. How can I fix this? Is it a server misconfiguration?

    Priority: minor Category: server feature 
    opened by mhsjlw 30
  • Integration of Mojangson API for conversion from Mojangson to/from NBT.

    Integration of Mojangson API for conversion from Mojangson to/from NBT.

    The Mojangson library is a parsing and writing library for NBT Data tags. For more information on the goal of this PR, see #237. The previous PR was closed due to the larger aspect of Mojangson integration than using a JSON parser.

    TODO List:

    • [x] Integrate Mojangson API
    • [x] Add conversion from G++'s NBT API to Mojangson
    • [x] Add conversion from Mojangson to G++'s NBT API.
    • [x] Add documentation for NBT-Mojangson conversion
    • [x] Test all the things...!
    Type: inconsistency Category: server feature 
    opened by aramperes 28
  • Packet API

    Packet API

    This is the new packet API for Glowstone, based on two events: PacketReceiveEvent and PacketSendEvent. This plays a role with the future compatibility with ProtocolLib.

    Example plugin with the usage of PacketReceiveEvent with packet deconstruction/construction (when you type 'redstone', it will show a redstone block under you):

    public class SamplePlugin extends JavaPlugin implements Listener {
    
        @Override
        public void onEnable() {
            this.getServer().getPluginManager().registerEvents(this, this);
        }
    
        @EventHandler
        public void onPacketReceive(PacketReceiveEvent event) {
            try {
                if (event.getPacket() == GlowPacket.Play.In.Chat) {
                    PacketDeconstructor deconstructor = event.deconstruct();
                    String text = (String) deconstructor.getField("text");
                    if (!text.equals("redstone")) {
                        return;
                    }
                    Location location = event.getPlayer().getLocation();
                    PacketConstructor constructor = new PacketConstructor(GlowPacket.Play.Out.BlockChange)
                            .intField(location.getBlockX())
                            .intField(location.getBlockY() - 1)
                            .intField(location.getBlockZ())
                            .intField(Material.REDSTONE_BLOCK.getId())
                            .intField(0);
                    event.getSession().send(constructor.build());
                }
            } catch (PacketDeconstructor.PacketDeconstructionException | PacketConstructor.PacketConstructException e) {
                e.printStackTrace();
            }
        }
    }
    

    API Reference

    PacketConstructor and PacketDeconstructor

    To build a packet without using the actual class constructor, you can use the PacketConstructor tool:

    PacketConstructor constructor = new PacketConstructor(GlowPacket.Play.Out.Health) // Create a new Health update packet
            .floatField(5.0F)   // field 0 "health"
            .intField(17)       // field 1 "food"
            .floatField(0.5F);  // field 2 "saturation"
    Message packet = constructor.build(); // Build the packet
    

    To read data from a generic message type, you can use PacketDeconstructor:

    Message message = [...]  // The generic message
    PacketDeconstructor deconstructor = new PacketDeconstructor(GlowPacket.Play.In.Chat, message); // Initialize deconstructor for inbound Chat packet
    String text = (String) deconstructor.getField("text");  // Get the value of the "text" field
    deconstructor.setField("text", text + "!"); // Append an exclamation point to the text
    

    Alternatively, if you are in a PacketReceiveEvent/PacketSendEvent handler, you can use event.deconstruct() to initialize the PacketDeconstructor directly.

    Cancelling sending and receiving

    You can cancel or ignore incoming and outgoing packets using the events. Ignoring a received inbound packet:

    @EventHandler
    public void onPacketReceive(PacketReceiveEvent event) {
        event.setIgnored(true); // Ignore the packet, it will not be handled by the server
    }
    

    Cancelling an outgoing packet:

    @EventHandler
    public void onPacketSend(PacketSendEvent event) {
        event.setCancelled(true); // Cancel the packet, it will not be sent.
    }
    

    Queuing packets

    When you send a new packet inside an event handler, it will be sent before handling/sending the current packet.

    @EventHandler
    public void onPacketSend(PacketSendEvent event) {
        event.getSession().send(new TimePacket(-1, 1000)); // Will be sent *before* event.getPacket()!
    }
    

    To circumvent this (and sending a packet afterwards), you can queue the packets.

    @EventHandler
    public void onPacketSend(PacketSendEvent event) {
        event.queue(new TimePacket(-1, 1000)); // Will be sent *after* event.getPacket()!
    }
    

    To-Do

    • Document all the things
    • Add mutability for other packets (right now only for InboundChatPacket)
    • Registering handlers for specific packets

    Rejoice!

    Priority: minor Category: server feature 
    opened by aramperes 27
  • Inventory sync issue

    Inventory sync issue

    Because images say more then words. I dobble click on in the inventory, gif http://i.imgur.com/EkdKMbW.gif

    Console claims that it was rejected:

    2016/01/25 22:31:14 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=7, slot=-999, button=0, transaction=4, mode=4, item=null)
    2016/01/25 22:31:51 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=3, button=0, transaction=1, mode=0, item=ItemStack{STAINED_GLASS_PANE x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name=§f}})
    2016/01/25 22:31:51 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=3, button=0, transaction=2, mode=6, item=null)
    2016/01/25 22:31:53 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=-999, button=2, transaction=5, mode=5, item=null)
    2016/01/25 22:31:54 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=66, button=0, transaction=6, mode=0, item=ItemStack{STAINED_GLASS_PANE x 10, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name=§f}})
    2016/01/25 22:31:54 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=-999, button=2, transaction=17, mode=5, item=null)
    2016/01/25 22:31:55 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=85, button=0, transaction=18, mode=0, item=null)
    2016/01/25 22:31:56 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=49, button=0, transaction=19, mode=0, item=ItemStack{STAINED_GLASS_PANE x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name=§f}})
    2016/01/25 22:31:56 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=49, button=0, transaction=20, mode=6, item=null)
    2016/01/25 22:31:57 [INFORMATION] Paulomart: [rejected] WindowClickMessage(id=8, slot=-999, button=2, transaction=25, mode=5, item=null)
    

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    Priority: minor 
    opened by Paulomart 26
  • Merge open Glowstone Pull Requests

    Merge open Glowstone Pull Requests

    • [x] #189 Switch to Netty ReadTimeoutHandler
    • [x] #358 Double chests
    • [x] #431 Random blocks tick
    • [x] #432 Bonemeal
    • [x] #444 Noteblocks and Jukeboxes
    • [x] #445 Dynamic Recipes
    • [x] #459 Scoreboards
    • [x] #473 Fix race conditions
    • [x] #477 Flower pots
    • [x] #484 Window click logic fix
    • [x] #501 Generate glowstone.yml defaults from the actual defaults
    • [x] #514 Item Frames
    • [x] #521 Fix player joining when they should be kicked
    • [x] #529 Titles API
    • [x] #533 Whitelist fixes
    • [x] #540 Fix wrong drops
    • [x] #541 Material attributes
    • [x] #553 Potion ItemMeta
    • [x] #564 Structures and structure saving
    • [x] #570 Basic LilyPad Support
    • [x] #572 Biome Decorators
    • [x] #591 Enchantments
    • [x] #597 biomegrid
    • [x] #599 Entities
    • [x] #607 Overworld worldgen
    • [x] #613 Configurable world height
    • [x] #618 Action message support
    • [x] #619 Bed interaction & sleeping
    • [x] #621 Fix getDrops() and breakNaturally()
    • [x] #623 Item attributes
    • [x] #631 Cauldrons
    • [x] #632 Block Suffocation
    • [x] #636 Water/lava physics
    • [x] #637 Lightning damage and ignites

    And some closed PRs that may be useful

    • (moved to https://github.com/GlowstonePlusPlus/GlowstonePlusPlus/issues/55 -deathcap)
    Category: performance Category: gameplay feature Category: server feature 
    opened by mastercoms 24
  • Added partial Redstone support.

    Added partial Redstone support.

    This is a base platform that should pave the way for functioning redstone, it only partially implements GlowBlock methods.

    There is FULL vanilla behaviour for: -> Redstone Wire -> Redstone Torch -> Redstone Block -> Redstone Lamp -> Wood/Stone Buttons -> Levers -> Noteblocks -> Wood/Iron Doors/Trapdoors & Fencegates -> TNT?!!

    There is PARTIAL support for: -> Redstone Repeater/Diode - (Missing 'locking' when powered from side)

    There is NOT support for: -> Comparators - (I don't even know how these work, LOL) -> Daylight Detectors -> Wood/Stone/Iron/Gold Pressure Plates -> Droppers/Dispensers & Hoppers -> Tripwire & Hooks

    Known bugs: -> The second door in a double set opens in reverse. - (Not sure how to detect what side) -> Noteblocks don't play sound when .play() is called.

    Category: gameplay feature 
    opened by SamNosliw 22
  • Added system to check if a block is flammable on right click of flint and steel (and fixed the whitespace errors)

    Added system to check if a block is flammable on right click of flint and steel (and fixed the whitespace errors)

    This time I have tested it and it works. There was a TODO in the ItemFlintAndSteel.java and I finished it. I submitted a pull request earlier, but I couldn't build it because I was still messing around, setting up maven and apparently, this I didn't know, maven is sensitive to whitespace... interesting.

    Category: gameplay feature 
    opened by blakegall 21
  • Entity Update

    Entity Update

    • Fixed bug when saving villagers and wolves
    • Living entities have now a real death animation
    • Many living entities now send a metadata package
    • If its possible the metadatas of the entities, were saved in the metadata list of the entity class.
    • Entities now sending their health to the player
    • Entities have now a correct max health
    Category: gameplay feature Category: server feature 
    opened by LukBukkit 20
  • Add missing Minecraft commands

    Add missing Minecraft commands

    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

    • [x] /achievement
    • [x] /ban
    • [x] /ban-ip
    • [x] /banlist
    • [ ] /blockdata
    • [x] /clear
    • [ ] /clone
    • [ ] /debug
    • [x] /defaultgamemode
    • [x] /deop
    • [x] /difficulty
    • [x] /effect
    • [x] /enchant
    • [ ] /entitydata
    • [ ] /execute
    • [x] /fill
    • [x] /gamemode
    • [x] /gamerule
    • [x] /give
    • [x] /help
    • [x] /kick
    • [x] /kill
    • [x] /list
    • [x] /me
    • [x] /op
    • [x] /pardon
    • [x] /particle
    • [ ] /playsound
    • [x] /publish
    • [ ] /replaceitem
    • [x] /save-all
    • [x] /save-off
    • [x] /save-on
    • [x] /say
    • [x] /scoreboard
    • [x] /seed
    • [x] /setblock
    • [x] /setidletimeout
    • [x] /setworldspawn
    • [x] /spawnpoint
    • [x] /spreadplayers
    • [ ] /stats
    • [x] /stop
    • [x] /summon
    • [x] /tell
    • [x] /tellraw
    • [x] /testfor
    • [ ] /testforblock
    • [ ] /testforblocks
    • [x] /time
    • [x] /title
    • [x] /toggledownfall
    • [x] /tp
    • [x] /trigger
    • [x] /weather
    • [x] /whitelist
    • [ ] /worldborder
    • [x] /xp

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    Category: gameplay feature 
    opened by deathcap 20
  • Inefficient Usages of Java Collections

    Inefficient Usages of Java Collections

    Hi,

    We find that there are several inefficient usages of Java Collections:

    1. The contains method is invoked upon a list object. We recommend replacing it with a HashSet.
    2. There is no iteration occurring upon a TreeMap and LinkedHashMap, thus the insertion order does not matter. We recommend replacing it with a HashMap.
    3. ArrayList is inserted before an iteration, while multiple memory reallocation might occur when the size of the list exceeds its capacity. We recommend replacing it with a LinkedList.

    We discovered the above inefficient usage of containers by our tool Ditto. The patch is submitted. Could you please check and accept it? We have tested the patch on our PC. The patched program works well.

    Bests

    Ditto

    opened by FastAtlas 2
  • unable to generate chunks

    unable to generate chunks

    Glowstone build: 2021.7.0

    when loading worlds , several chunks cannot be loaded on prebuilt maps (downloaded maps from the internet: https://www.planetminecraft.com/project/hogwarts-2883086/ (the map I used)) either by loading it directly on the server, or by loading the world first in a minecraft client, loading it on a server, editing it by placing paintings' and reloading the server.

    i expected to be able to walk to the chunks that has been edited, but they disappeared. it started to getting worse after reloading the server, i was simply unable to join the server. perhaps the server couldn't generate the chunk i stayed on .

    this issue occurred only on this build. on earlier builds, i could've edit the chunks without any problems, and they would still be generated properly.

    the steps to reproduce the issue:

    1. download the map (link provided above)
    2. start the server (then, some chunks will be missing near spawn) alternatively, you can also:
    3. download the map
    4. load the world in minecraft 1.12
    5. load the world into the server
    6. edit several chunks in game (i placed paintings)
    7. reload the server (NOTICE: you should leave those chunks before reloading the server, as you might not be able to join, or you'll spawn in the void , the chunks might disappear)

    the code in the console: 15:37:22 [SEVERE] Error while generating chunk (-131,25) java.lang.NullPointerException at net.glowstone.chunk.ChunkManager.getBiomeGridAtLowerRes(ChunkManager.java:417) at net.glowstone.generator.OverworldGenerator.generateTerrainDensity(OverworldGenerator.java:501) at net.glowstone.generator.OverworldGenerator.generateRawTerrain(OverworldGenerator.java:385) at net.glowstone.generator.OverworldGenerator.generateChunkData(OverworldGenerator.java:278) at net.glowstone.chunk.ChunkManager.generateChunk(ChunkManager.java:275) at net.glowstone.chunk.ChunkManager.loadChunk(ChunkManager.java:169) at net.glowstone.chunk.GlowChunk.load(GlowChunk.java:224) at net.glowstone.chunk.GlowChunk.load(GlowChunk.java:219) at net.glowstone.chunk.GlowChunk.getSection(GlowChunk.java:401) at net.glowstone.chunk.GlowChunk.getType(GlowChunk.java:432) at net.glowstone.block.GlowBlock.getTypeIdNoCache(GlowBlock.java:190) at net.glowstone.block.GlowBlock.getType(GlowBlock.java:180) at net.glowstone.block.blocktype.BlockMycel.updateBlock(BlockMycel.java:52) at net.glowstone.GlowWorld.updateBlocksInSection(GlowWorld.java:558) at net.glowstone.GlowWorld.updateBlocksInActiveChunks(GlowWorld.java:540) at net.glowstone.GlowWorld.pulse(GlowWorld.java:487) at net.glowstone.scheduler.WorldScheduler$WorldThread.run(WorldScheduler.java:170) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)


    End of lecture

    unfortunately, I don't speak english natively, so if you'll experience issues with understanding the contents above , i also added the contents in hebrew, for your convenience.

    להלן תוכן הפנייה בעברית גירסא: 2021.7.0 תוכן הפניה: עולמות שהורדו מהמרשתת (אינטרנט, הקישור למעלה) לא נטענו כראוי. , וכעת, חסרים בהם צ׳אנקים.

    כיצד זה קרה: לאחר התקנת העולם (קישור למעלה) וטעינת השרת, גיליתי שחסריפ צ׳אנקים. למעשה, העולם היה מחורר כולו כגבינה בצ׳אנקים חסרים. כדי להתגבר על הבעיה, ראשית, טענתי את העולם בקליינט של מיינקראפט 1.12, והתקנתי את העולם בשרת. נראה שהתגברתי על הבעיה, אך כשערכתי את העולם (שמתי כמה תמונות), העולם שוב התקלקל, וצ׳אנקים מסוימים נעלמו . ניסיתי לבדוק אם הבעיה עדיין מתרחשת ע״י טעינה מחדש של העולם , וגיליתי שאני לא יכול להתחבר אליו, כנראה הצ׳אנקים שעמדתי עליהם נעלמו גם הם, והמשחק לא יודע מה לעשות.

    מה היה אמור לקרות: העולם לא היה אמור להתקלקל, והשרת היה אמור לטעון את הצ׳אנקים שלא נטענו כמצופה. כיצד לבצע שנית את התקלה :ֿ יש להתקין את הגירסא שמצויינת לעיל מן האתר, ןלטעון את השרת.1 למחוק את המפה שנוצרה, ולהתקין את המפה שהורדה מהמרשתת.3 4. להתחבר לשרת. או:

    1. לבצע את שלבים 1, ו2
    2. לטעון את העולם בקליינט של מיינקראפט 1.12
    3. להתקין את המפה לאחר שנטענה
    4. לשים כמה בלוקים (למשל: תמונות)
    5. לטעון מחדש את העולם

    עדכון: כמדומני, השרת טען צ׳אנקים בלי בעיות בעדכונים קודמים.

    יש פירוט של הקוד שהופיע בקונסולה למעלה.


    סוף


    Priority: minor Category: world feature Status: needs investigation Type: bug 
    opened by 2019Z2 6
  • Improvements to README.MD

    Improvements to README.MD

    Hello everyone, Nico from Discord.

    As we discussed in the discord channel, i made some small adjustaments and added a few links and bages in the README section.

    You can check the new readme in my fork without reading the code

    opened by nicolasvac 2
  • NullPointerException on client while connecting to glowstone server

    NullPointerException on client while connecting to glowstone server

    While joining to glowstone server from 1.12.2 client (with/without forge etc) will throw a bunch of NullPointerException's (https://hastebin.com/raw/obopadoxab). Most likely this is due to some messages are sent before JoinGameMessage and on clientside player entity still not initialized. For example while loading player data from EntityStorage at some point server tries to close opened inventory and sends player SetWindowSlotMessage.

    [16:38:39] [main/FATAL]: Error executing task
    java.util.concurrent.ExecutionException: java.lang.NullPointerException
    	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_51]
    	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_51]
    	at h.a(Util.java:48) [h.class:?]
    	at bib.az(SourceFile:991) [bib.class:?]
    	at bib.a(SourceFile:419) [bib.class:?]
    	at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
    	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:159) [launchwrapper-of-2.1.jar:2.1]
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:30) [launchwrapper-of-2.1.jar:2.1]
    Caused by: java.lang.NullPointerException
    	at brz.a(SourceFile:458) ~[brz.class:?]
    	at kf.a(SourceFile:66) ~[kf.class:?]
    	at kf.a(SourceFile:9) ~[kf.class:?]
    	at hv$1.run(PacketThreadUtil.java:22) ~[hv$1.class:?]
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_51]
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_51]
    	at h.a(Util.java:47) ~[h.class:?]
    	... 9 more
    

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    opened by SHADOWDANCH 1
  • some plugins throw java.lang.ArrayIndexOutOfBoundsException when getting version

    some plugins throw java.lang.ArrayIndexOutOfBoundsException when getting version

    for instance: SavageFactions log:

    13:19:34 [INFO] Enabling Factions v1.6.9.5-U0.2.1-RC-1.6.2-RC-2.5-RC-9
    13:19:34 [INFO] [Factions v1.6.9.5-U0.2.1-RC-1.6.2-RC-2.5-RC-9] ==== Setup ====
    13:19:34 [SEVERE] Error occurred while enabling Factions v1.6.9.5-U0.2.1-RC-1.6.2-RC-2.5-RC-9 (Is it up to date?)
    java.lang.ExceptionInInitializerError
    	at com.massivecraft.factions.SavageFactions.onEnable(SavageFactions.java:120)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:320)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:412)
    	at net.glowstone.GlowServer.enablePlugins(GlowServer.java:1346)
    	at net.glowstone.GlowServer.start(GlowServer.java:819)
    	at net.glowstone.GlowServer.run(GlowServer.java:625)
    	at net.glowstone.GlowServer.main(GlowServer.java:489)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    	at com.massivecraft.factions.util.Particles.ReflectionUtils$PackageType.getServerVersion(ReflectionUtils.java:404)
    	at com.massivecraft.factions.util.Particles.ReflectionUtils$PackageType.<clinit>(ReflectionUtils.java:356)
    	... 8 more
    13:19:34 [INFO] Disabling Factions v1.6.9.5-U0.2.1-RC-1.6.2-RC-2.5-RC-9
    13:19:34 [INFO] [Factions v1.6.9.5-U0.2.1-RC-1.6.2-RC-2.5-RC-9] Disabled
    

    ShopChest: (https://github.com/EpicEricEE/ShopChest/issues/301)

    01:13:31 [INFO] Enabling ShopChest v1.13-SNAPSHOT
    01:13:31 [WARNING] Server version not officially supported: glowstone!
    01:13:31 [WARNING] Plugin may still work, but more errors are expected!
    01:13:31 [SEVERE] Error occurred while enabling ShopChest v1.13-SNAPSHOT (Is it up to date?)
    java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
    	at de.epiceric.shopchest.utils.Utils.getMajorVersion(Utils.java:617)
    	at de.epiceric.shopchest.language.LanguageUtils.load(LanguageUtils.java:1002)
    	at de.epiceric.shopchest.ShopChest.onEnable(ShopChest.java:186)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:320)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:412)
    	at net.glowstone.GlowServer.enablePlugins(GlowServer.java:1346)
    	at net.glowstone.GlowServer.start(GlowServer.java:819)
    	at net.glowstone.GlowServer.run(GlowServer.java:625)
    	at net.glowstone.GlowServer.main(GlowServer.java:489)
    01:13:31 [INFO] Disabling ShopChest v1.13-SNAPSHOT
    

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    Type: inconsistency Priority: minor Category: server feature Status: needs investigation 
    opened by tsao-chi 2
Releases(2021.8.0)
Owner
Glowstone Project
A fast, customizable and compatible open source Minecraft server.
Glowstone Project
A Minecraft Mod for Fabric which aims to make Block Entity rendering faster and more customizable with almost no compromises.

Enhanced Block Entities EBE is a 100% client side mod for Minecraft on the Fabric mod loader which aims to increase the performance of block entity re

null 151 Dec 30, 2022
A Minecraft Fabric Mod to make splash texts translatable and customizable.

Splasher! ?? Customize Minecraft Splash Texts on Your Own! Contribute a Translation Translate assets/splasher/lang/en_us.json into your favorite langu

KrLite 9 Dec 27, 2022
TerraBlender is a library mod for adding biomes in a simple and compatible manner with Minecraft's new biome/terrain system.

https://discord.gg/GyyzU6T TerraBlender is a library mod for adding biomes in a simple and compatible manner with Minecraft's new biome/terrain system

Glitchfiend 31 Dec 12, 2022
Minecraft Bedrock Edition 假人客户端

FakePlayer Minecraft Bedrock Edition 假人客户端 环境依赖 Java8或更高 使用方法 unzip FakePlayer-0.2.2-SNAPSHOT.zip cd FakePlayer-0.2.2-SNAPSHOT/bin ./FakePlayer-GUI(GU

DDF 125 Jan 5, 2023
A proxy hack utilities for Minecraft: Bedrock Edition

BedrockProxy A proxy hack utilities for Minecraft: Bedrock Edition Download Releases Run Proxy java -jar BedrockProxy-1.0-SNAPSHOT.jar Hack Utilities

null 18 Dec 15, 2022
A 100% Customizable StaffChat Plugin for BungeeCord!

Download Click here to download UltraStaffChat Bungeecord. License UltraStaffChat is licensed under the GNU General Public License v3.0. Check LICENSE

Hypera Development 9 Sep 14, 2022
The loader for mods under Fabric. It provides mod loading facilities and useful abstractions for other mods to use, which is compatible with spigot now

Silk The loader for mods under Fabric. It provides mod loading facilities and useful abstractions for other mods to use, which is compatible with spig

null 1 Oct 1, 2022
A Minecraft server proxy with unparalleled server support, scalability, and flexibility

Velocity A Minecraft server proxy with unparalleled server support, scalability, and flexibility. Velocity is licensed under the GPLv3 license. Goals

PaperMC 1.2k Jan 8, 2023
Open source Minecraft client with Replay Mod and more.

Sol Client Simple and easy to use Minecraft client for 1.8.9 (and in future™, newer versions). Update: Yes, I know, it has been seven months since I w

Sol Client 166 Jan 5, 2023
Essentials - Minecraft server command mod - Adds over 100 commands for use in-game to help manage a server

Essentials Development Readme The official repository is at: https://github.com/essentials/Essentials We use NetBeans 7.3 for development. Recommended

Essentials 811 Jan 7, 2023
Free, open-source, Minecraft 1.12.2 PvP client aimed at the anarchy community.

Cosmos is a free, open-source, Minecraft 1.12.2 Forge PvP Client aimed at the anarchy community. The client is still in the development phase. Usage:

null 153 Jan 1, 2023
The Lezard Client is a new, open-source, minecraft client for the newer versions of the game.

The Lezard Client is a new, open-source, minecraft client for the newer versions of the game. It is oriented not for PvP, but for the Vanilla and the Survival experience. It is not a hack client for Minecraft and do not ask for it. 1 I hate hacked client and 2 it is not fun for other people. Also, I misspelled the word lizard in English and decided to leave it like that.

Michel-Ange 4 Jul 5, 2022
Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cross-chatting between Minecraft and Discord.

DiscordSync Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cros

AeonLucid 4 Dec 20, 2022
MissileWars is a famous, fun and fast minigame spigot-plugin for Minecraft

MissileWars MissileWars is a famous, fun and fast minigame spigot-plugin for Minecraft Downloads Get binary jars directly here: https://www.spigotmc.o

Daniel 6 Dec 23, 2022
Fast Bukkit Custom Book Constructor for Minecraft 1.8 to 1.16.5

BookMaker ?? BookMaker is a fast Spigot API to create Custom Book for Minecraft 1.8 to 1.16.5. Features Create a book with your title, author and desc

Giovanni Ranieri 3 Oct 2, 2021
LITIENGINE is a free and open source Java 2D Game Engine

LITIENGINE is a free and open source Java 2D Game Engine. It provides a comprehensive Java library and a dedicated map editor to create tile-based 2D games.

Gurkenlabs 572 Jan 7, 2023
The most powerfull forge server software (not yet) which aims for high capacity and performance on 1.16.5 modded server.

GoldenForge The most powerfull forge server software (not yet) which aims for high capacity and performance on 1.16.5 modded server. Current work Asyn

null 20 Sep 3, 2022
Terasology - open source voxel world

Terasology Welcome! The Terasology project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gamepla

Moving Blocks! 3.4k Dec 31, 2022
https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/

https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/ Events: PrePreAsyncJoinPlayerEvent

null 26 Jan 4, 2023