Giter VIP home page Giter VIP logo

bitquest's Introduction

BitQuest A Minecraft mod that connects the game economics to a Bitcoin or other cryptocurrency nodes. It creates a Bitcoin wallet for every user that connects to the server, plus a common "loot" wallet used for rewards to players when killing mobs.

Players also can purchase land plots and stacks of items, transferring coins to the loot wallet, thus redistributing the spent cryptocurrency within the players.

You can use BitQuest to host your own Minecraft crypto server.

Important Note

This project is an experiment and not a commercial product, bugs can, and most likely will happen. Please report any bugs to a moderator promptly, to ensure they are fixed. Also note that your wallet is not guaranteed, and you may experience issues with your balance. For this reason, it is highly recommended that you do not deposit large amounts, or anything you do not wish to place at risk by being tied to the server. In addition, if you are caught breaking rules and are banned, you forfeit your access to your server wallet, and all funds 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

Features

Bitcoin Wallet

The BitQuest server and every player has a bitcoin address. Any player can receive and send bitcoin to any address inside or outside the game. This is useful for buying materials, selling crafts, trading, tipping, etc. A player just joined the server The player can see it's bitcoin balance

Loot

Every time a player kills an enemy (mob) there is a chance to get loot. If that is the case the server makes a transaction directly from the server address to the player address. A player got loot

Player to player transactions

You can send Bitcoin to an external wallet with /transfer:

/transfer <amount> <recipient-bitcoin-address>

Player using transfer command Player notification Player's public transaction

Additionally, players can send Bitcoin to other players via /send:

/send <amount> <username>

Play Bitquest

Official BitQuest server is not online anymore, but you can host your own server using Docker or Bukkit.

Hosting a BitQuest server

There are two methods to create a Bitquest server: One involves running a Docker image with everything ready, and the other is to build the plugin from source and adding it to a Spigot instance.

Hosting a Bitcoin or Dogecoin node

A requirement for BitQuest is a Full Node of Bitcoin Core or Dogecoin Core. Before starting a BitQuest server make sure you have a fully synched node with RPC access turned on.

Using Docker

You can download the a (https://hub.docker.com/repository/docker/explodi/bitquest)[official BitQuest docker image]. This image builds a bukkit server with the latest BitQuest version plugin installed.

You must also have a node running, and the connection info (RPC login, host, port) set in the environment variables. (See: configuration)

Building the BitQuest Java Plugin

You can build the bitquest Java plugin that you can drop in to a Bukkit server. This will enable all BitQuest features on your server.

1. Requirements

  1. Java JRE+SDK (Version 1.8)
  2. Maven

2. Compile BitQuest and generate a JAR file

make -B jar

This will create a BitQuest.jar in the target folder.

Contributing

Before submitting a pull request, please format the code using checkstyle. To run checkstyle and check if there are warnings:

make -B lint

Running a BitQuest server with Docker

Tou can use Docker to run a BitQuest server. There's also an official BitQuest docker image. The recommended way to configure the image is using a docker-compose.yml file that can link to a directory where the worlds are stored. An example is included here.

Configuration

Before running the server, the following environment variables must be set:

Environment variable Description
BITQUEST_ADMIN_UUID Minecraft user ID for the root user
BITQUEST_ENV Set to 'production' for a public server
BITQUEST_NAME The name of your server
BITQUEST_NODE_HOST Host of the Node
BITQUEST_NODE_PORT Port of the Node
BITQUEST_NODE_RPC_USER Node RPC username
BITQUEST_NODE_RPC_PASSWORD Node RPC password

More info

https://bitquest.co/

bitquest's People

Stargazers

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

bitquest's Issues

Current Bitcoin block height number added to /wallet

When you type in /wallet you see the current Bitcoin block height along with your balance and address. User will be able to see if a block has cleared the blockchain or not. This would be a simple way to show our wallet is up to date with blockchain.

Players can access trapped chests in claimed chunks

As of right now, any player can access trapped chests on any other players claimed chunks.

The bug was brought to my attention by WeskerPrime, who also notified Burntone about the issue.

It should be a simple fix, so I gave it a go in PR #69. As you can tell from my profile I am new to this OSS thing, so I hope I went about this the right way.

I hope this helps!

Ender eye

You can lose your ender eye if you use the compass and then before teleporting use the eye.

Horse goes invisible when getting off of it

There's a bug where your horse with saddle or armor will go invisible but, you can still here and see it's particles. This happens when getting off of the horse and I must log off and log back on to see the horse again. This is only a minor bug but, should be fixed in the future. #80

Issue running the server as localhost

I am a huge fan of BQ and was wondering if i could request some help with running BQ on a localhost.

I've cloned the repo and got a BQ.jar compiled and running, however i am getting an error that i cannot seem to figure out.

http://pastebin.com/qT4fE95J

Any help would be greatly appreciated! Thanks

Server down

When I try to join, it gives me the common "Java connection exeption will not allow further connection" I'm sure it actually says something else

Land Claims permissions

You can apparently place water/lava on claims that aren't yours. Also, lets do something about lighting claims on fire.

Game client issues on death

When I die and try to respawn, the process is stuck at 100% for a while and then I see a "Connection Lost / Kicked for flying (or related)" error message. Exiting the server and attempting to reconnect results in the process being stuck at 100% for a while again and then telling me "Connection Lost / Timed out". To get back into the game I have to fully exit Minecraft and then reopen the game to connect again.

I'm not sure that it matters, but I'm on Ubuntu. Here's some system info:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:    14.04
Codename:   trusty

$ uname -a
Linux mimmisbrunnr 3.13.0-86-generic #130-Ubuntu SMP Mon Apr 18 18:27:15 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

% character in chat not properly escaped

Using % as a chat message in-game breaks the chat script and reverts it to vanilla chat.

Could possibly be fixed by using message.replace("%%","%%%%"), converting the % to %% in the message and therefore escaping it.

nether wart

Looks like there is a typo in the villagers. It says nether_warts instead of nether_wart. As a result, it won't show on the the villagers inventory.
capture1

If it can help (or correct if wrong)...

Hi everyone! Since I know basically nothing about multiplayer servers, and I just found out this info (don't laugh please haha!!), maybe it might help someone else, so I share it... Also I put it in "questions" because if ever there's something wrong with using some of those, it would be good to know...

Thanks! Have a nice day everyone!

http://minecraft.gamepedia.com/Commands

oups... I tried the "tp" command and got that red message saying I wasn't allowed... then I have a wayyyyy more basic question: how do you manage to trade items with players far from you... In short, I'm a super basic player, I like to mine and kill mobs with my kids around (the reason why I got to a server, instead of paying for realms, I'd rather support the bitcoin server, good occasion to learn a few things about economy and how to be a good "social player" for my children too...), so often I have plenty of materials that I don't use, I see it might be helpful to some other players, but it's really painful for me to go find those players when I succeed and don't get killed 3 times on the way!!... thanks for your attention/patience :-)

Error resolving dependencies when building for first time using gradle.bat under windows 7 command line

Hi,

Building on my machine (windows 7 ultimate x64) failed when running gradlew.bat from the windows command line. This was my first time build, and dependencies could not be properly resolved

git clone https://github.com/bitquest/bitquest.git
cd bitquest
gradlew.bat setupWorkspace

ERROR: process command d:/program files/java/jdk1.8.0_91/bin/java.exe finished with non-zero exit value 1

I tried a build via the docker command line and the build completed successfully. Once I did this build in docker, I tried via the windows command line again, and it completed successfully because the first docker build satisfied all the dependencies.

I'm thinking that there are a couple options here:

  1. Update the readme to recommend building from the docker command line, and remove gradlew.bat
  2. Fix gradlew.bat so that it successfully installs dependencies and builds from the windows command line

We need mayors

Bitquest 2 has only started a few months ago and we already have about 5 new towns! Emerald City, Sin City, Doge Town, Vanguard, and the new Mesa town. In this situation we should have mayors for each town. This will help prevent greifing and help newcomers find a settlement. I think the mayors should be the founder of each town. Such as Sin City's mayor could be PolarBear1000. I could be the mayor of my town, Vanguard.

More things to do with bitcoin in game (also additional revenue sources)

You can get it from monsters and spend it claiming land, but what else can you do with it? A few ideas:

  • Allow users to auction off their property to each other. 24/48 hr auctions with the winner getting the property and the server taking a percentage.
  • Rail/teleporter tax. Have a railway or teleporter system throughout the major populated portions of the map. Users who have made a one-time donation or periodic donation get to use the public transportation system.
  • Let users spend bitcoin to unlock a backpack plugin (example)

Use Case: QR Codes Used for Server Revenue

This is an epic (use case) issue and the output is additional issues which comprise the work that will need to be done to complete it.

Use case: Enjoy regular revenue for a given Minecraft server based on the demand for popular land plots. This is enabled by the use of QR code generators which are tied to a server's primary wallet.

Here's how this will work (combined steps and requirements):

  1. Each server gets a wallet it controls powered by BlockCypher's hosted wallet methods.
  2. Operators/admins may generate gridded overlays for a large areas which are expected to be highly trafficked/populated. Zero, zero, for example.
  3. Players may create grids in remote areas by placing a sign with some specific data on them.
  4. Both the overlays and signs contain information to configure the grid's payment periods, including length of period, minimum period length, etc.
  5. Both the overlays and signs contain information to configure the grid's payout strategy.
  6. Each grid square created, either by admin overlays or player signs, is assigned a Bitcoin address.
  7. Two contrasting colored blocks are reserved for the system and are unbreakable by users. Special colored wool, for example.
  8. QR codes are generated and built using algorithms and placed within the grid square's boundaries, which correspond to the Bitcoin address assigned to the grid. The code for this already exists.
  9. QR codes are built into "clouds" for aesthetics and are positioned at a set altitude. The code's plane is horizontal and parallel to the normalized ground plane. A player would "look up" to see the QR code on his screen.
  10. Viewing platforms may be created by users or admins where necessary for accessibility.
  11. Payment to addresses are made by players using standard Bitcoin wallets on their phones.
  12. Users interact with QR codes by pointing phones at the screen, make a payment to the code's address, and see a notification in chat as a result of payment.
  13. Players "register" a payment address (wallet) to their account by going to a website and entering their username and making a small payment (perhaps this becomes the signup flow).
  14. Payments to a given grid square's by a player using their payment address (wallet) allow the user to build for X amount of time in that region.
  15. Players who are currently able to build in a region will receive a percentage of payments by other users wanting to build in that same region.
  16. As a region becomes more popular, receiving more payments over time, the "price basis" for building in that region can go up, and become prohibitively expensive to players who have never built in that area.
  17. If a user wants permanent rights to build in a region, perhaps even reserving it for their home, they set up recurring payments using Coinbase or Stripe.

The net benefits of this use case is multi-fold:

  1. The server's existence becomes tied to it's populartiy. If the server is popular, it make more money. The more money it makes, the more likely the admins will continue to run it, and run it well.
  2. Auditing user behavior becomes trivial. Users must make payments to build in a given region. Those payments should be made public through an in-game lookup tool (something like /grid payment list).
  3. The home ownership concept becomes trivial to implement. If you want a home somewhere and don't want it griefed much, you pay a relatively large amount to the local grid address and set the minimum build period to a month. Relative is relative, of course. If you can only afford $1/month for the grid, and someone finds $1 worth griefing your home, so be it. At least you get some money back when they do it.
  4. Public works become an organized, federated effort, and can be rewarded using payments. Moderate sized, recurring payments can be made to regions containing rails, canals, highways, inns, and the like to both encourage improvement of the works and minimize griefing. While regions will be quite large in area/dimension, moderate sized payments along the public works paths will prevent most users from wanting to take the time to grief the area.

Here are a few sub use-cases for this (using US$ for comparison):

Spawn become interesting. Anyone can technically build at spawn, but to do so will cost you. Let's say 20 users decide they want to build a kick ass town. They all dump $5/each into spawn's address around the same time. The cost basis for spawn, assuming it's set to a month, immediately becomes $100/month. That means anyone wanting to build in spawn for a month's time, at that point in time, will have to pay $100. If they want to build in spawn for a day, and spawn's grid allows that as a minimum period, it will cost them $3.33/day.

Remember, the existing spawn builders (those 20 users who paid $5 each) can get a cut of the new revenue, so it may be worth it to them to allow for shorter minimum build periods.

Home ownership plots become trivial to implement. The existing place your bed system sucks, for a variety of reasons, including placement, code implementation costs, etc. By finding a nice location, and even sharing it with some neighbors, an equilibrium can be reached that is comparable to today's real life neighborhoods. If your neighbor steals your stuff, then you know that whoever stole it has permissions to build in your home's grid. You can look to see who made payments to the grid recently and then report the event to the admins or community, if it warrants it.

Large complex neighborhoods, or even apartment buildings become worth working on, because anyone wanting to live in an apartment building will pay to live there, which then pays out to all the people currently living there, making it worth a community effort to keep the building in good repair.

Older abandoned builds become "claimable" and can be torn down if needed.

Can we have a suicide command?

To teleport back to spawn takes time because we need to find a good way to die without damaging what we are wearing. If we had a suicide command we could easily teleport back to spawn without degrading our armour. If approved I can submit a pull request for this.

Simple way to give up or un-claim land

This would help sell plots or just abandon areas back to public use. Original bits are still kept for server/loot and bitquest. If Players should sell land, that would just be done on side with own wallets. Simple ability to un-claim, just gives more options. (by Burntone)

We need a MUCH BETTER mob system

I right now have had my last words with this mob system... It's a piece of shit, and really needs to be toned down, and be similar to last server.

Today, I joined, and spawned in dogetown today... Burntone says Hi, and starts to talk about the Mesa Line. All of a sudden, a creeper explodes and kills me while I'm replying to him. The mob system is getting so bad, can I just type a chat message without being blown up? And then I go back, and I decide to start to write signs for the info board I create for dogetown, and then I get one hit-killed by a lvl 36 zombie with some diamond armor, and a diamond sword... Are you kidding me? Once I respawn, BitRailer is fighting a zombie villager in the lobby of the INN. We have torches around the town, except in parts of the inn near ice.

Bitquest used to be a place where fighting mobs wasn't required while you were building. I shouldn't be thinking about creating walls around a town, I should be thinking about having peace and making the town better and not have to waist my time on stupid walls. The next thing everyone is going to say is, the towns "FAR" out, and you then should be closer. Remember the last server, where noobs went to The Lost City and started out there? We should be to let players create everywhere, and not have these types of limits, which do not benefit the servers.

I realize people want to fight mobs too. The game shouldn't have to be set to the highest difficulty of doom when you first join, this is realistic for an environment like the nether though. People who are to low of a level for the nether should have a diablo/TLF to play on. But I've had enough of this mob system, and it has to come to an end.

I realize people want to fight mobs too. The game shouldn't have to be set to the highest difficulty of doom when you first join, this is realistic for an environment like the nether though. People who are to low of a level for the nether should have a diablo/TLF to play on. You should have a choice when to fight and when to not. But I've had enough of this mob system, and it has to come to an end.

Blocking specific claim names

Can we block claim names like "[ The Wilderness ]", "[The Wilderness]" and "[ Anonymous]", and maybe other names with profanity? People are starting to troll me with wilderness and anonymous, and
names like "FUCK OFF" near spawn give a bad view of the server

Anvil uses XP

Not sure if this is a defect or intentional. Enchanting or combining enchantments effectively costs no XP.

Steps to reproduce:

  1. Take note of your current XP level
  2. Enchant a book/tool/weapon or combine enchanted items on the anvil.
  3. Notice that your XP level has dropped like it would in Vanilla.
  4. Force your XP to refresh by reconnecting to the server or killing a hostile mob.
  5. Notice that your XP level is back to where it was before it was spent.

store land ownership on the blockchain

Right now the BitQuest server(s) store land information on a REDIS server.

I am working on a way to store ownership data of game land chunks using the OpenAssets protocol, backed by the Bitcoin blokchain.

That means land owners will actually own a OpenAsset, making the cost of land ownership the mining fees to create the said asset. This can also enable the transfer of land ownership between players, across servers!

This issue is also an open call for developers to express the best way to accomplish this challenge

Chat Filtering

I believe strongly in the freedom of speech, but there will always be times when a player decides to join the server and just repeat profanity, or simply spam the chat too much.

I also believe that we cannot in any way limit any player's ability to say whatever they want.

These two points considered, I think the only way we can give people a filter is by letting each player toggle their own filter. Players will be able to say whatever they want, but the other players won't have to listen.

Long story short, players should be able to ignore other players, or filter certain words exclusively from the text they receive. This will allow players to say what they want, and allow everyone else's chat to interpret it however they want.

_Also, as a vanity item, I think it would be fun if we replaced filtered words with something other than asterisks(_the star things*). For example, "go to hell" would be replaced with "Prithee transport thyself to tarnation". Personally, if this doesn't end up becoming a feature, I'll eventually make a client mod simply for the comedy.

Display land ownership on map.bitquest.co

It would be really cool to be able to see land ownership on the map or a version of the map.

It appears the map is generated via Minecraft Overviewer, which has the ability to add custom Points of Interest in a config file. Could this config file, which is in Python. query the redis database to get the chunk owners? Or alternatively maybe create a script that queries the database and generates the config file itself with the chunk ownership in it?

Looking for feedback or ideas or just general thoughts on feasibility.

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.