Giter Site home page Giter Site logo

essentials's Introduction

Cuberite

Jenkins Build Status AppVeyor Build Status

Cuberite is a Minecraft-compatible multiplayer game server that is written in C++ and designed to be efficient with memory and CPU, as well as having a flexible Lua Plugin API. Cuberite is compatible with the Java Edition Minecraft client.

Cuberite runs on Windows, *nix and Android operating systems. This includes Android phones and tablets as well as Raspberry Pis; support for small embedded devices is experimental.

Currently we support Release 1.8 - 1.12.2 Minecraft protocol versions.

Subscribe to the newsletter for important updates and project news.

Installation

There are several ways to obtain Cuberite.

Binaries

  • The easiest method is downloading for Windows or Linux from the website.
  • You can use the EasyInstall script for Linux and macOS, which automatically downloads the correct binary. The script is described below.

The EasyInstall script

This script will download the correct binary from the project site.

curl -sSfL https://download.cuberite.org | sh

Compiling

  • You can compile automatically for Linux, macOS and FreeBSD with the compile.sh script. The script is described below.
  • You can also compile manually. See COMPILING.md.

Compiling may provide better performance (1.5-3x as fast) and it supports more operating systems.

The compile.sh script

This script downloads the source code and compiles it. The script is smart enough to notify you of missing dependencies and instructing you on how to install them. The script doesn't work for Windows.

Using curl:

sh -c "$(curl -sSfL -o - https://compile.cuberite.org)"

Or using wget:

sh -c "$(wget -O - https://compile.cuberite.org)"

Hosted services

  • Hosted Cuberite is available via Gamocosm.

Contributing

Cuberite is licensed under the Apache License V2, and we welcome anybody to fork and submit a Pull Request back with their changes, and if you want to join as a permanent member we can add you to the team.

Cuberite is developed in C++ and Lua. To contribute code, please check out GETTING-STARTED.md and CONTRIBUTING.md for more details.

Plugins are written in Lua. You can contribute by developing plugins and submitting them to the plugin repository or the forum. Please check out our plugin introduction guide for more info.

If you are not a programmer, you can help by testing Cuberite and reporting bugs. See TESTING.md for details.

You can also help with documentation by contributing to the User's Manual.

Other Stuff

For other stuff, check out the homepage, the Users' Manual, the forums, and the Plugin API.

Support the Cuberite development team on Liberapay

essentials's People

Contributors

12xx12 avatar bibo38 avatar bond-009 avatar hallucino avatar josephworks avatar mathias-gh avatar mathiascode avatar nilspace avatar seadragon91 avatar tigerw avatar wbrbr avatar

Stargazers

 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  avatar  avatar  avatar  avatar

essentials's Issues

Commands to add

I'll write here of a list with the commands I plan to add as for now:
/afk

If you want some other command in specific comment here.

[Feature] Config Option for disabling Baby Wither

The baby wither is finicky. You never know when placing one of the heads to spawn the wither boss is going to spawn a baby wither, or, even if you do get all the wither skulls in place for a normal wither, sometimes nothing spawns.

Would appreciate a config option to disable baby wither spawning, or maybe a better in-world recipe so it doesn't conflict with the traditional wither.

Thanks! Just a suggestion, no need to implement.

SQLite rewrite

Rewrite jails, homes and warps to use SQLite.
I don't know SQLite, so I won't do it soon, maybe some day if I learn.
Any volunteer?

Proposal (Core and Essentials command reorganization)

This is just an idea I have, I want to know your opinion.

Core was originally planned to hold vanilla commands, but it got bigger and bigger.
Now Essentials in inside mc-server my proposal is to move non-vanilla commands from Core to Essentials.

What do you think?

Improve jails

-Add new storage (it'll probably be a different file for every player)
-Store the jail where the player is jailed, and when the player dies, teleport the player back to the jail (will be configurable)

Signwarps are broken

I guess this started happening after I updated MCServer yesterday. The following error appears in the console whenever I try to use a signwarp.

[13:33:32] LUA: Plugins/Essentials/hooks.lua:11: error in function 'GetSignLines': Too many arguments.
argument #5 is 'string'; '[no object]' expected.

[12:48:39] Stack trace:
[12:48:39] C: GetSignLines
[12:48:39] Plugins/Essentials/hooks.lua(11): (no name)
[12:48:39] Stack trace end
[12:48:39] Error in plugin Essentials calling function ()

/back command doesn't bring you to the last world

The back command doesn't bring you back to the world you were in.

Example: Someone teleports you to another world. The /back command takes you to the coordinates you were located in, but you stay in the same world as the player who teleported you.

[feature] luasql support - mysql storage of user data

Hi,
I'm looking to see if you can add luasql storage support with mysql so this package can be compatible with EMS which stores Essentials data into mysql. I realize the current data files from this isn't in the same format but I'd need them to at least be pushed to the same db tables. The goal is to at least keep home, warps and money details in sql first.

I'm still experimenting with luarocks inclusion and understand there's some manual compiling required but please let me know if that's possible. The only plugin I see with future mysql support on Cuberite at the moment is Gallery.

more info on EMS: https://www.spigotmc.org/resources/essentials-mysql-storage-extension.25673/

Cannot spawn giants with /spawnmob

EDIT: This is an issue with MCServer. I've sent a pull request to the MCServer repository.

I'm not sure if this is an issue with Essentials or MCServer, but I can't spawn giants with the /spawnmob command. It responds with "Unknown mob type". Giants seem to be implemented in MCServer like any other mob, as far as I know.

Mute doesn't work

When using the /mute command or jailing players, they can still chat.

/home inflicts damage.

When using /home I die occasionally. Other players have reported dying from: [name] fell to death when using /home. I need to do more testing and see if it only when in motion or not.

/biome command is broken

This error appears in the console:
[16:50:13] LUA: Plugins/Essentials/general.lua:5: attempt to concatenate global 'biome' (a nil value)
[16:50:13] Stack trace:
[16:50:13] Plugins/Essentials/general.lua(5): (no name)
[16:50:13] Stack trace end
[16:50:13] Error in plugin Essentials calling function ()

Game Mode being changed by warping

When using the warp command the player's gamemode is being set to the default for the world.
However this also applies to people which do not have the default gamemode and try to warp inside a world.

Server Console

I cannot invoke any of these added commands from the server console, though they work through a client with permissions. If anybody could point me to a plugin that adds a web console capable of running Essentials' commands or a direct fix for my problem, that would be great.

Permission for dropping an item

posted this on core should have posted it here

These types of permissions do not have a / command attached.

es.drop.item - Allows for revoking a rank from dropping items (IE Players in creative mode) thus they must destroy it to rid themselves of it (or if NPC shops are made then could be sold to it)

not sure how hard that would be to implement. but noting the default ranks are Default and VIP (if you let VIP players spawn in items then whats the point of having a difference)

Obviously you have to take blocks in to account so maybe core.drop.item.id to allow certain blocks to be dropped or even not droped or just es.drop.itemid or even a command like es.place.id

Commands that allow us to revoke permission to drop and place objects.
examples could be

es.(drop | place | throw | use).(item | block | etc )
or even
es.(item | block | etc ).(drop | place | throw | use)

Maybe even a command that will let us take a specific item from a player

/take ID, player, amount

Info.lua

Since it's easier to read it might be smart to change to the Info.lua way of registering commands. I created a parser that generated this for me:

-- Info.lua

-- Implements the g_PluginInfo standard plugin description




g_PluginInfo =
{
    Name = "Essentials",
    Date = "<Date>",
    Description = "",

    Commands =
    {
        ["/more"] =
        {
            Permission =  "es.more",
            HelpString =  " Changes the held stack to have 64 items.",
            Handler =  HandleMoreCommand,
        },

        ["/spawnmob"] =
        {
            Permission =  "es.spawnmob",
            HelpString =  " Spawn a mob.",
            Handler =  HandleSpawnMobCommand,
        },

        ["/biome"] =
        {
            Permission =  "es.biome",
            HelpString =  " Tells you the biome in wich you are.",
            Handler =  HandleBiomeCommand,
        },

        ["/repair"] =
        {
            Permission =  "es.repair",
            HelpString =  " Repairs the item you are holding.",
            Handler =  HandleRepairCommand,
        },

        ["/feed"] =
        {
            Permission =  "es.feed",
            HelpString =  " Satisfy the hunger.",
            Handler =  HandleFeedCommand,
        },

        ["/heal"] =
        {
            Permission =  "es.heal",
            HelpString =  " Heals a player.",
            Handler =  HandleHealCommand,
        },

        ["/enchant"] =
        {
            Permission =  "es.enchant",
            HelpString =  " Enchants the item you are holding.",
            Handler =  HandleEnchantCommand,
        },

        ["/burn"] =
        {
            Permission =  "es.burn",
            HelpString =  " Set a player on fire.",
            Handler =  HandleBurnCommand,
        },

        ["/ping"] =
        {
            Permission =  "es.ping",
            HelpString =  " Check if the server is alive.",
            Handler =  HandlePingCommand,
        },

        ["/vanish"] =
        {
            Permission =  "es.vanish",
            HelpString =  " Be invisible!.",
            Handler =  HandleVanishCommand,
        },

        ["/hat"] =
        {
            Permission =  "es.hat",
            HelpString =  " Use your equipped item as helmet.",
            Handler =  HandleHatCommand,
        },

        ["/fly"] =
        {
            Permission =  "es.fly",
            HelpString =  " Enable or disable flying.",
            Handler =  HandleFlyCommand,
        },

        ["/warp"] =
        {
            Permission =  "warp.warp",
            HelpString =  " - Moves player to location of warp [Tag].",
            Handler =  HandleWarpCommand,
        },

        ["/setwarp"] =
        {
            Permission =  "warp.setwarp",
            HelpString =  " - Creates a warp at players location.",
            Handler =  HandleSetWarpCommand,
        },

        ["/delwarp"] =
        {
            Permission =  "warp.dropwarp",
            HelpString =  " - Deletes a warp.",
            Handler =  HandleDelWarpCommand,
        },

        ["/warps"] =
        {
            Permission =  "warp.listwarp",
            HelpString =  " - Lists all warps.",
            Handler =  HandleListWarpCommand,
        },

        ["/jail"] =
        {
            Permission =  "jail.jail",
            HelpString =  " - Jails a player.",
            Handler =  HandleJailCommand,
        },

        ["/unjail"] =
        {
            Permission =  "jail.unjail",
            HelpString =  " - unjails a player.",
            Handler =  HandleUnJailCommand,
        },

        ["/setjail"] =
        {
            Permission =  "jail.setjail",
            HelpString =  " - Creates a jail at players location.",
            Handler =  HandleSetJailCommand,
        },

        ["/deljail"] =
        {
            Permission =  "jail.deljail",
            HelpString =  " - Deletes a jail.",
            Handler =  HandleDelJailCommand,
        },

        ["/jails"] =
        {
            Permission =  "jail.listjail",
            HelpString =  " - Lists all jails.",
            Handler =  HandleListJailCommand,
        },

        ["/home"] =
        {
            Permission =  "es.home",
            HelpString =  " - Go Home",
            Handler =  HandleHomeCommand,
        },

        ["/sethome"] =
        {
            Permission =  "es.sethome",
            HelpString =  " - Set your home!",
            Handler =  HandleSetHomeCommand,
        },

        ["/delhome"] =
        {
            Permission =  "es.delhome",
            HelpString =  " - Delete a home!",
            Handler =  HandleDelHomeCommand,
        },

        ["/lightning"] =
        {
            Permission =  "es.lightning",
            HelpString =  " - Get a lightning damage the specified player",
            Handler =  HandleLightningCommand,
        },

        ["/shock"] =
        {
            Permission =  "es.lightning",
            HelpString =  " - Get a lightning damage the specified player",
            Handler =  HandleLightningCommand,
        },

        ["/bring"] =
        {
            Permission =  "es.tphere",
            HelpString =  " - Get a lightning damage the specified player",
            Handler =  HandleTPHereCommand,
        },

        ["/tphere"] =
        {
            Permission =  "es.tphere",
            HelpString =  " - Teleports a player to you",
            Handler =  HandleTPHereCommand,
        },

        ["/place"] =
        {
            Permission =  "es.place",
            HelpString =  " - Teleports a player where you are looking",
            Handler =  HandlePlaceCommand,
        },

        ["/getpos"] =
        {
            Permission =  "es.getpos",
            HelpString =  " - Get your current location in the world",
            Handler =  HandleGetPosCommand,
        },

        ["/whereami"] =
        {
            Permission =  "es.getpos",
            HelpString =  " - Get your current location in the world",
            Handler =  HandleGetPosCommand,
        },

        ["/whois"] =
        {
            Permission =  "es.whois",
            HelpString =  " - Get information about the specified player",
            Handler =  HandleWhoisCommand,
        },
    },
}

It doesn't contain /xp though because the help string contains commas and my parser didn't like that ;)

/tps conflict

The core plugin has already the /tps comment.
It can conflict with this plugin.

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.