Code Monkey home page Code Monkey logo

totaleconomy's Introduction

Total Economy

Total Economy is a Minecraft plugin that aims to provide a full-fledged economy for your server. Each feature can be enabled/disabled and configured to your liking.

Download

Total Economy is available to download from the following sources:

Features

  • Vault support to allow easy integration with multiple plugins
  • Easily pay other players
  • Ability to enable/disable individual features
  • Jobs and the ability to create your own jobs
  • Shops (future version)
  • Achievements (future version)
  • Web UI for easy management (future version)

Discussion

If you have any feature ideas or questions, please head over to the Discussion page on GitHub as we'd love to hear them.

If you encounter any issues while using Total Economy, please feel free to create an Issue on GitHub and we'll take a look.

totaleconomy's People

Contributors

caseif avatar crazypyroeagle avatar dependabot[bot] avatar dualspiral avatar ericgrandt avatar happyzleaf avatar hsyyid avatar markl4yg avatar yepidoodles avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

totaleconomy's Issues

Suggestion - PickPocketing?

Pickpocketing is normal irl. Why not in MC too? Hold an special item or not and sneak right-click and you get 1$. You can only do it 5 times pr player every 10 min. so youll steal 5$ pr player every 5 minutes. This must be a great idea.

Testing

  • File I/O
  • Commands
  • Job Signs
  • Job Actions

Suggestion: Salary

On a side note here is a suggestion that would be cool. A Salary option in the config where you can set it up so the default Salary people get forsay every 10 minutes is $50 but you can create your own custom salarys. Like I could give say Admins $500 every 10minutes so on so forth?

BC Quarry Exception

Could not pass ChangeBlockEvent$Break$Impl to Plugin{id=TotalEconomy, name=Total Economy, version=1.3.0}

Developer API Improvements

I was looking into using your developer API for a plugin, and realized that it simply is not powerful enough to do what I wish to do. I have a few suggestions:

  • Instead of passing a Player object to the API, use a UUID. It is easier for developers to use and is more powerful
  • Have a few more methods available to use, such as setting a player's balance and registering a new player

Tidy up code for Jobs

  • Create an interface for jobs
  • Put each individual job in a separate class to tidy up TEJobs file

Use IDs for job rewardables instead of names

Currently jobs use the name of a block/item/mob in order to determine how much exp/money a player gets from it. This prevents jobs from working with mods in most cases. So a switch to IDs would make jobs compatible with most, if not all, mods.

Update Error Messages

  • Change "That is not a job." message to "[TEJobs] This job does not exist"
  • Change "Insufficent Funds" to "[Total Economy] You do not have the funds to do this"

Businesses

Once a certain level in a job is reached, a player can decide to start up a business that relates to that job. When a player starts a business they will no longer be rewarded with experience and money. Instead, the items gained from the job can be sold(Automatically sold, not sold to players) in order to gain an increased amount of money as well as experience that is put towards your business. As usual, everything relating to businesses, including rewards and business enhancements, can be changed/removed to your liking.

Balance Top Command

Permission: totaleconomy.command.balancetop

  • Basic Mechanics
  • Fancify output

Job that pays for killing mobs

I would love to see if youd be willing to allow players for getting paid to kill monsters or other players with a configurable amount. Possibly even configurable to the point of how much diff mobs earn you i.e. zombies drop 50 bucks, but wither bosses drop 1,000 bucks. Thanks in advance!

Testing

  • Config Creation
  • Config Options
  • Commands
  • Jobs
  • Permissions

Chest Shops

Chest shops will utilize a custom inventory instead of the actual chest's inventory as this will prevent others from "pumping" items out of the shop. The only thing we have to worry about is making sure that when the inventory is destroyed, the items are returned to the player's inventory, or dropped on the floor if not enough slots are available.

As well as that, item lore is being used to store the buy/sell price and the quantity of items for sale. Though, it may be better to just use the stack size of the item instead of the lore for the quantity.

Lastly, items will be able to be purchased by left clicking the item in the shop and sold by right clicking the item. A shop owner will be able to decide if they want to only sell, only buy, or both sell and buy an item.

SQL Support

Things that need to be tested before launching:

  • Job notification toggle
  • Account creation
  • Has account check returns properly
  • Job exp updates properly
  • Job levels update properly
  • Job exp is retrieved properly
  • Job levels are retrieved properly

Server Crash

[18:34:55] [Server thread/ERROR] [Sponge]: Could not pass ChangeBlockEvent$Place$Impl to Plugin{id=TotalEconomy, name=Total Economy, version=1.3.2}
java.lang.ArrayIndexOutOfBoundsException: 1
        at com.erigitic.jobs.TEJobs.onPlayerPlaceBlock(TEJobs.java:411) ~[TEJobs.class:?]
        at org.spongepowered.common.event.listener.PlaceListener_TEJobs_onPlayerPlaceBlock23.handle(Unknown Source) ~[?:?]
        at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:86) ~[RegisteredListener.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:238) [SpongeModEventManager.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.mod.event.SpongeModEventManager.postBulk(SpongeModEventManager.java:225) [SpongeModEventManager.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:264) [SpongeModEventManager.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:250) [SpongeModEventManager.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:127) [SpongeImpl.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.common.event.CauseTracker.handleBlockCaptures(CauseTracker.java:688) [CauseTracker.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.common.event.CauseTracker.handlePostTickCaptures(CauseTracker.java:445) [CauseTracker.class:1.8.9-1763-3.1.0-BETA-1177]
        at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:108) [PacketUtil.class:1.8.9-1763-3.1.0-BETA-1177]
        at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$0(SourceFile:51) [fh$1.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [fh$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_74]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_74]
        at net.minecraft.util.Util.func_181617_a(SourceFile:44) [g.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:660) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:344) [ko.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_74]

Salary with decimal number issue

When a salary is set to a decimal number such as 2.13 and it is payed out, the notification displays a poorly formatted number such as 2.1300000000124652.

Exception on Launch

[01:09:30] [Server thread/ERROR] [Sponge]: [Plugin Class: com.erigitic.main.TotalEconomy][Handler: init]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
at org.spongepowered.mod.plugin.SpongeModPluginContainer.handleModStateEvent(SpongeModPluginContainer.java:126) [SpongeModPluginContainer.class:1.8-1371-2.1DEV-467+unknown-b467.git-unknown]
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) [minecraft_server.1.8.jar:?]
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) [LoadController.class:?]
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187) [LoadController.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [minecraft_server.1.8.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) [minecraft_server.1.8.jar:?]
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:692) [Loader.class:?]
at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:97) [FMLServerHandler.class:?]
at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:360) [FMLCommonHandler.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:210) [po.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:438) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
Caused by: java.lang.NullPointerException: listener
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:229) ~[minecraft_server.1.8.jar:?]
at org.spongepowered.common.event.SpongeEventManager.register(SpongeEventManager.java:136) ~[SpongeEventManager.class:1.8-1371-2.1DEV-467+unknown-b467.git-unknown]
at org.spongepowered.common.event.SpongeEventManager.register(SpongeEventManager.java:184) ~[SpongeEventManager.class:1.8-1371-2.1DEV-467+unknown-b467.git-unknown]
at com.erigitic.main.TotalEconomy.init(TotalEconomy.java:106) ~[TotalEconomy.class:?]
... 31 more

Document

  • Job Permissions
  • Commands
  • Job Creation
  • Main Config Changes

Balance not updating

I am using TotalEconomy's API to add currency to a player's balance. It successfully adds the currency(It updates in the accounts file), but when I run /balance the currency hasn't changed at all. When I restart the server, it changes the balance in the accounts file back to what it was when using /balance. The only way that I can get the balance to update is by restarting the server.

Documentation

  • Update "Creating Jobs" wiki page with the new job actions (kill, catch)
  • Update "Default Config" on the "Jobs Config" wiki page
  • Information on each job
  • Job Sign Information

1.0.6 - 1.0.8 Errors

Working on a new server: Sponge 1.8-1499-2.1DEV-553

Plugins:
SpongeEssentialCmds-2.0
permissionsex-sponge-2.0SNAPSHOT
TotalEconomy (trying out versions to find what one works for this sponge build)

I get errors upon launch for all versions 1.0.4 and up, but the errors for 1.0.5, 1.0.6, 1.0.7, and 1.0.8 all say that the totaleconomy verison is 1.0.5?

1.0.5 crashlog pastebin: http://pastebin.com/UFYkVkSc
1.0.6 crashlog pastebin: http://pastebin.com/UdV8X41f
1.0.7 crashlog pastebin: http://pastebin.com/SeNSJy05

I was wondering if the download links are wrong or if not, and which is the right version for my build. Thank you!

Crash on start

I've Installed TotalEconomy onto my Sponge server, but in doing so, the server is prevented from starting, as Forge is unable to Construct the plugin. As it stands, there is only one other plugin, PEX.

From looking at the crash report, the problem exists with TE, and only TE.

I've attached links to the location of the server logs.

https://www.dropbox.com/s/4632p9m92hrx6dw/crash-2015-05-18_11.24.44-server.txt?dl=1
https://www.dropbox.com/s/5zrcz0cv4vrvhr7/latest.log?dl=1

In the Crash Report, and the latest log file, the error is something to do with using unsupported class versions.

NOTE: using Debian Linux, so updating to use Java 8 is a difficult task.

Job Block Meta

Currently if something like wheat has a reward for it, the player can keep placing it down and destroying it for a reward without having to wait for it to be fully grown. A way of preventing this and checking if it is fully grown is needed.

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.