Giter Site home page Giter Site logo

altquest / emeraldquest-hackerisland Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 2.0 8.9 MB

This is an Emerald Economy Server that runs in Docker and uses a REDIS database

Home Page: http://www.EmeraldQuest.co

License: Other

Shell 1.50% Java 97.80% Dockerfile 0.70%
spigot loot docker emerald server-loot chance mob player balance workspace

emeraldquest-hackerisland's Introduction

EmeraldQuest

EmeraldQuest is a Minecraft server with a emerald-denominated currency and MMORPG elements. This repository is the open source code running on the server.

Play EmeraldQuest

To play in the official EmeraldQuest server you must own the official Minecraft game for PC/Mac/Linux and add this server address:

play.emeraldquest.co

Important Note

This server is still under development, and bugs can, and most likely will, happen. Please report any bugs to a moderator promptly, to ensure they are fixed. Also note that your balance is not guaranteed, and you may experience issues with your balance. For this reason, it is highly recommended that you do not move large amounts. In addition, if you are caught breaking rules and are banned, you forfeit your access to your server resources, and all land tied to it. With this said, rules are non-negotiable, and will be strictly enforced. This server is a fair server, and anyone abusing any system set in place will be punished. Please play fair, have fun, and enjoy the server

How it works?

Everyone uses Emeralds!

The EmeraldQuest server and every player has a fair chance. Any player can receive and send emerald to any player inside the game. This is useful for buying materials, selling crafts, trading, tipping, etcetera. A player just joined the server The playercan see it's emerald balance

And there's loot!

Every time a player kills an enemy (mob) there is a chance to get loot. If that is the case the server creates emeralds and gives to the player and the player is notified. A player got loot

Everyone can send emerald anywhere

You can send emerald to any player with /send:

/send <amount> <username>

Player using send command

Server loot

The EmeraldQuest server creates emerald loot randomly upon mob death, used for giving Loot to players.

Daily Rewards!

The EmeraldQuest server will give each player 5e + (5e * consecutive login days) upon login every 24 hours.

About the back-end technology

All persistent data is saved in a redis database so the server can respond as quick as possible.

Everybody is welcome to contribute. :D

Here are the instructions to modify, install and run the server as localhost.

Building the EmeraldQuest Java Plugin

Install bash (Windows only)

To setup the workspace you need to run a gradle script that only runs on bash. You can get a distribution of bash by installing git from the git-scm website.

Warning: building EmeraldQuest is not currently supported on Windows 10 Anniversary edition bash. If you have that feature installed, your build will fail. If you are building using Windows 10 Anniversary edition, it's recommended to uninstall the Windows Subsytem for Linux feature first.

Setup Workspace

There is a gradle task that will download and compile the latest Spigot API and other tools needed to compile the project. Using a terminal, go to the project directory and run:

./gradlew setupWorkspace

Compile EmeraldQuest and generate a JAR file

After the workspace is set up, we can compile using the shadowJar task that will create a file under build/libs. This should be dropped on the plugins folder of your Spigot server, but you can automate the process for testing using Docker (instructions below)

./gradlew shadowJar

Requirements for development

Running a local EmeraldQuest test server


How to install emeraldquest on Ubuntu Linux x86_64/64bit with docker. by @BitcoinJake09

  1. First we will clone the github emeraldquest...

open terminal

$ git clone https://github.com/AltQuest/emeraldquest

  1. Second we are going to install "Docker CE"

$ sudo apt-get update

$ sudo apt-get install
apt-transport-https
ca-certificates
curl
software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint:

$ sudo apt-key fingerprint 0EBFCD88

the above command should result:

pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) [email protected] sub 4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce

  1. Now we are going to install "Docker compose"

$ sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose

and give permission to docker compose

$ chmod +x /usr/local/bin/docker-compose $ chmod +x gradlew

To verify docker compose is installed you can run this:

$ docker-compose --version

It should result:

docker-compose version 1.19.0, build #######


Running locally via Docker is the fastest way to develop and test code. Docker and Docker Compose can be used for testing the compiled plugin on spigot.

  1. Build EmeraldQuest using the instructions above (./gradlew shadowJar).
  2. Install Docker, and Docker Compose if you haven't yet.
  3. Create a docker-compose.yml file with your configuration. A good idea is to create a volume on spigot's 'plugins' pointing to the local directory where .jar files are compiled. Or you can use the following example:
spigot:
    container_name: emeraldquest
  environment:
    - EMERLADQUEST_ENV=development
    - DENOMINATION_NAME=Ems	//could change to anything, displays on sidebar
    - LAND_PRICE=10		//this sets ingame land price in emeralds
    - ADMIN_UUID=        	//put you uuid here
    - SET_PvP=true		//sets pvp
  build: .
  volumes:
    - "./build/libs/:/spigot/plugins"
    - ".:/emeraldquest"
  ports:
    - "25565:25565"
  links:
    - redis
redis:
  image: redis


  1. Use docker-compose to spawn a test server
docker-compose up

IF YOU ALREADY HAVE DOCKER AND ENVIRONMENT SET UP ALL YOU HAVE TO DO IS

$git clone "URL OF WHATEVER QUEST FORK YOU WANT"

this will work with any of these so far https://github.com/bitquest/bitquest https://github.com/AltQuest/AltQuest-running-transations-broken https://github.com/AltQuest/emeraldquest

$cd WHATEVERYOUGOT

ex: $cd emeraldquest

$ chmod +x gradlew

you will want to make or change docker-compose.yml at this point also

$ ./gradlew setupWorkspace

$ ./gradlew shadowJar

$ docker-compose up


More info

https://emeraldquest.co/

emeraldquest-hackerisland's People

Contributors

altquest avatar

Stargazers

 avatar

Watchers

 avatar

emeraldquest-hackerisland's Issues

issue with 1.13.2

the issue ONLY appears AFTER/AS a player logs in.
it allows player to stay logged in. not sure why but heres the console:

emeraldquest | [02:59:09 INFO]: EmeraldQuest starting
emeraldquest | [02:59:10 INFO]: Unknown command. Type "/help" for help.
emeraldquest | [02:59:10 INFO]: Server permissions file permissions.yml is empty, ignoring it
emeraldquest | [02:59:10 INFO]: Done (43.386s)! For help, type "help"
emeraldquest | [03:00:42 INFO]: UUID of player bitcoinjake09 is bceeaefc-9590-4233-a858-d3eb933121ec
emeraldquest | [03:00:42 ERROR]: Could not pass event PlayerJoinEvent to EmeraldQuest v2.0
emeraldquest | org.bukkit.event.EventException: null
emeraldquest | at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:308) ~[spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.PlayerList.onPlayerJoin(PlayerList.java:344) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.PlayerList.a(PlayerList.java:163) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.LoginListener.b(LoginListener.java:150) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.LoginListener.Y_(LoginListener.java:54) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.NetworkManager.a(NetworkManager.java:231) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.ServerConnection.c(ServerConnection.java:120) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:998) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:835) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:733) [spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
emeraldquest | Caused by: java.lang.NullPointerException
emeraldquest | at com.emeraldquest.emeraldquest.EmeraldQuest.setPlayerMaxHealth(EmeraldQuest.java:412) ~[?:?]
emeraldquest | at com.emeraldquest.emeraldquest.EmeraldQuest.setTotalExperience(EmeraldQuest.java:403) ~[?:?]
emeraldquest | at com.emeraldquest.emeraldquest.EntityEvents.onPlayerJoin(EntityEvents.java:144) ~[?:?]
emeraldquest | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
emeraldquest | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171]
emeraldquest | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171]
emeraldquest | at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
emeraldquest | at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) ~[spigot.jar:git-Spigot-e769fe4-068dab5]
emeraldquest | ... 14 more
emeraldquest | [03:00:43 INFO]: bitcoinjake09[/xxx.xx.x.x:xxxxx] logged in with entity id 326 at ([world]23.5, 67.0, 73.5)

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.