⚡ BlobTycoon ⚡ [1.17 - 1.19] icon

⚡ BlobTycoon ⚡ [1.17 - 1.19] -----

Minecraft tycoon gamemode!



DEPENDENCIES:
BlobLib - 1.6 Update | SpigotMC - High Performance Minecraft
Vault | SpigotMC - High Performance Minecraft

PlaceholderAPI | SpigotMC - High Performance Minecraft


CURRENT DOCUMENTATION IS OUTDATED DUE TO 1.4 BEING A MAJOR REWRITE!!!

Configuration:
MySQL:
host: localhost
port: '3306'
database: mytheriaminer
username: admin
password: password
Options:
#If true, players won’t be able to leash others mounts
NoMountStealing:
Register: false
#If true, when a player joins, if player has a mount, this mount will spawn at player’s location
OnJoinSpawnMount:
Register: true
#If true, when a player joins, if player has no data in database, “Mount” will be given to player as their personalHorse/mount
OnFirstJoinCustomMount:
Register: false
Mount: llama_weak
#If true, when a player joins, if player has no data in database, “Kit” will be given to player’s inventory
OnFirstJoinCustomKit:
Kit: default
Register: true
#If true, when a player joins, if player has no data in database, a default kit made by BlobTycoon developer will be given to player’s inventory
OnFirstJoinKit:
Register: false
#If true, players cannot drop items, in any world
PlayerCantDropItems:
Register: true
#If true, player cannot drop items, just if player is in an Allowed-World that’s set at worlds.yml
PlayerCantDropItemsSharedWorld:
Register: false
#Default lead price, being lead what you use to leash dogs to get paid coins. Currently there’s no command to directly sell a lead, but you may sell them through BlobTycoon inventories. Remember that when selling a lead, this will be sold for a fraction of leadPrice, this means that in a future you will be able to directly sell by commands, maybe even more types of leads????
leadPrice: 10.0
#If true, when player dies, in any world, player will be teleported to their plot.
OnDeathHomeTeleport:
Register: true
#If true, when a player joins, their game mode will be set as adventure. I don’t recommend enabling this at this time.
OnJoinAdventure:
Register: false
#If true, when a player joins, their game mode will be set as adventure, unless player has permission “blobtycoon.ignoregamemode”.I don’t recommend enabling this at this time.
OnJoinPermCheckAdventure:
Register: false
#If true, all players are immune to damage, in any world
InvinciblePlayers:
Register: true
#If true, player will be immune to damage, just if player is in an Allowed-World that’s set at worlds.yml
InvinciblePlayersSharedWorld:
Register: false
#You server admins need to know that this setting is dumb since defaultCurrency will always be USD. This means that you should leave the dollar sign to not look your server dumb. Blame anjoismysign
defaultCurrencySymbol: $
#If true, when a player joins, if player has no data, it will address player as a “Rookie”. This means that BlobTycoon will take player’s plot and will try to find a place hardware button just to spam player with arrows so player finds out how to play. This is the tutorial.
hasRookies: true
Users:
Home:
#If true, BlobTycoon will assume that your plots are 20x6x20 sized, giving you BlobTycoon’s developer’s pre-made home offset. Otherwise, Offset is how much distance you need to add to player’s plot’s point one. Default offset: X10, Y1.1, Z24.5
UseDefault: true
OffsetX: 0
OffsetY: 0
OffsetZ: 0
#If false, PlotHelpers will be disabled.
Helpers:
Register: true
#If true, BlobTycoon will store player data with player’s UUID. If false, data will be stored with player’s name.
isOnlineMode: true
Prices:
#plotseller inventory prices
Plots:
'2': 200000.0
'3': 1000000.0
'4': 5000000.0
#The currency in which players get rewarded when leashing dogs. What are dogs? Any rabbit. In case you are using shared-worlds, any rabbit from an Allowed-World.
dogsCurrency: DC
#If true, when a player joins and has data in database, if last time player joined was at least 300 seconds, player will mine time elapsed multiplied by penalty. This means that if penalty equals 0.5 and player disconnected for 10 minutes, player will mine/be rewarded 5 minutes of their cryptocurrencies hashrate.
mineCryptoOffline:
Register: true
Penalty: 0.02
#This is a random and automatic server event. If true, every 60 minutes will make a random number. If chance says let’s do it, it will address a power prosperity event to all online players with a multiplier between start and start+bound. In the following example, the multiplier would be between 2 and 4 multiplier, granting players up to 4 times their energy production while event is running. Once the event runs out, their energy production will go back to normal.
powerProsperity:
Register: true
Bound: 2
Start: 2
Chance: 20.0
#Dear server admins, there’s a hidden warp which allows you to buy the coolest equipment in the game but to unlock it you need to unlock the endgame state. To do so, you need to buy a generator at least once, and in order to set which generator, you will write it below. Between 1.6 and 1.7 update, I will try to add rebirths, and they will basically be unlocked on endgame so be careful when choosing an energy generator!
unlockEndGameGeneratorId: hydrogen
#If false, it will only check that your energy consumption doesn’t beats your energy production. But if true, it will add temperature to the formula. You will need to start to worry not only for generators but for coolers as well!
useHeatMechanic: true
#If true, MytheriaMiner can run in separate worlds without breaking itself or other plugins.
#This was made since it saves performance by having a Shared-Mode option instead of always being true.
#NOTE! You should be able to run multiple copies of the map in case you want more plots.
Shared-Mode: false
#Allowed-Worlds are worlds in which MytheriaMiner will run. Worlds outside this list won't be affected by MytheriaMiner and will be ignored.
Allowed-Worlds:
- world
#Players inside this list will be ignored by MytheriaMiner.
#This is useful in case you have staff members and you don't want them to take plots.
#May also be used as banning players from the gamemode.
Players:
- popbob
All you need to know about lang.yml is that the only difference between an ordinary lang.yml and this is Titles.
Titles contain two messages: title, and subtitle.
In order to make development faster (and editing aswell), I made these two in a single message/line.

%split%
The message before the placeholder is the title (the one at the top).
The message after the placeholder is the subtitle (the one at the bottom).

Rack-Supplied: '&c&lBEWARE!%split%&7There''s hardware in rack'
Will print the following:
[​IMG]
You will need this in the case you work with objects that make use of structures.
I will tell you how to work this in the fastest way possible with steps:

1) Work Pivot first
Your pivot should be the block to which the Item Frame with the barrier that removes the structure is attached. (This Item Frame is later called “ remove button“)
Your pivot SHOULD BE FACING THE FLOOR.
If your pivot is not facing the floor, your pivot will be on the same X and Z coordinates but you will need to move Y down (only up in case when placing the structure it is placed between the floor or even worse below it).
An example of a Pivot would be the DIAMOND_BLOCK
[​IMG]
2) Check if there is enough space to place the structure
Now that you have a Pivot, you will start with Pos1.
Pos1 values should always be less than Pos2 values!
In order to get Pos1, you start from where Pivot is.
You will always try to get 1 block extra of the radius when placing in order to prevent blocks of other structures from colliding.
If your structure has Item Frames that hold maps, you will always try to get 2 blocks extra of the radius when placing in order to prevent other structures Item Frames being removed.
If your structure has any other entities that are on the outer layer of the structure, you will always try to get 2 blocks extra of the radius when placing in order to prevent other structures from removing this structure entities.

Now that you have a Pos1, you will continue with Pos2.
Pos1 values should always be less than Pos2 values!
In order to get Pos2, you will start from Pos1 values, then Pos2 values will be positive numbers since they will be how many blocks from Pos1 values it has to expand so it creates a Cube/Box.

Example: I have a 4 block height 1 block radius structure. The structure includes Item Frames holding maps.
Pos1:
==: Vector
x: -2.0
y: 0.0
z: -2.0
Pos2:
==: Vector
x: 4.0
y: 4.0
z: 4.0
Will make a Cube/Box of 5x5x4 (being 4 the height) with the Pivot centered in X and Z while being at the same Y coordinate.
[​IMG]
3) Let the remove button know what to remove
Now you need to remove the structure. You will need RemovePos1 and RemovePos2.
RemovePos1 values should always be less than RemovePos2 values!
You only need to make a Cube/Box so it includes the structure blocks and entities from it. Don't make it bigger!

In order to get RemovePos1, you start from where the remove button is.
RemovePos1 values should always be less than RemovePos2 values!
In order to get RemovePos2, you start from where the remove button is.

Example: I have a 4 block height 1 block radius structure. The structure includes Item Frames holding maps. The structure includes buttons on the right side.
RemovePos1:
==: Vector
x: 0.0
y: 0.0
z: -1.0
RemovePos2:
==: Vector
x: 1.0
y: 3.0
z: 0.0
Will make a Cube/Box of 2x2x4 (being 4 the height).
[​IMG]
Example structure: electricitybox1.yml
Pos1:
==: Vector
x: -2.0
y: 0.0
z: -2.0
Pos2:
==: Vector
x: 4.0
y: 4.0
z: 4.0
RemovePos1:
==: Vector
x: 0.0
y: 0.0
z: -1.0
RemovePos2:
==: Vector
x: 1.0
y: 3.0
z: 0.0
Pivot:
==: Vector
x: 0.0
y: 0.0
z: 1.0
#double accepts scientific notation
#Minimum it can be worth in Vault currency.
Min: 0.7
#double accepts scientific notation
#Maximum it can be worth in Vault currency.
Max: 1.27
#Maximum amount of changes (changeAmount) it will do on each update.
MaxTries: 4
#double accepts scientific notation
#The amount in Vault currency that changes.
ChangeAmount: 0.03
#How it's shown in GUI as Item.
DisplayName: §fCHICKCOIN
#The slot it will take in the Bank GUI.
Slot: 11
#(byte) can be a number between -128 to 127 (including 0, you can have a maximum of 256 cryptocurrencies)
#CryptoID is the ID in a byte. It's used in the rest of the plugin.
#NEVER use 0 nor 8 since 0 is Vault currency and 8 are Tokens.
CryptoID: 1
#CryptoID selling currency. In this case it's sold in Vault currency.
SellingCurrency: 0
#CryptoID mining currency. In this case, it mines Chickcoin(CHC).
MiningCurrency: 1
#double accepts scientific notation
#Price for sellingCurrency. In this case it's sold for $0.02 (Vault currency)
Price: 0.02
#double accepts scientific notation
#The amount of miningCurrency it makes/produces/mines per second.
#In this case, it mines 0.00001 Chickcoin(CHC) per second.
Hashrate: 1.0E-5
#double accepts scientific notation
#The amount of Watts this object consumes.
#In this case it consumes 30 Watts
PowerConsumption: 30.0
#All asics are PLAYER_HEAD so you need a texture.
#URL needs to start with "textures.minecraft.net"
SkinUrl:
#When object is in your inventory, it has a name.
DisplayName: '&fChickcoin FPGA'
#When object is in your inventory, it has a lore.
Lore:
- §f§lHARDWARE§r
#CryptoID selling currency. In this case it's sold in Vault currency.
SellingCurrency: 0
#double accepts scientific notation
#Price for sellingCurrency. In this case it's sold for $1,500.00 (Vault currency)
Price: 1500.0
#double accepts scientific notation
#The amount of Watts this object produces
PowerProduction: 1200.0
#When object is in your inventory, it has a name.
DisplayName: §fElectricity Box
READ "⚠️ STRUCTURES ⚠️"
#When object is in your inventory, it has a lore.
Lore:
- §f§lPOWER§r
#Path and file to get into the structure (starting inside structures folder)
FileName: /generators/electricitybox1.nbt
#CryptoID selling currency. In this case it's sold in Vault currency.
SellingCurrency: 0
#double accepts scientific notation
#Price for sellingCurrency. In this case it's sold for $5.00 (Vault currency)
Price: 5.0
#double accepts scientific notation
#The amount of Watts this object produces
PowerProduction: 0.0
#When object is in your inventory, it has a name.
DisplayName: §fSmall Table
READ "⚠️ STRUCTURES ⚠️"
#When object is in your inventory, it has a lore.
Lore:
- §f§lRACK§r
#Path and file to get into the structure (starting inside structures folder)
FileName: /racks/henDepot/t1.nbt
#CryptoID selling currency. In this case it's sold in Chickcoin(CHC)
SellingCurrency: 1
#CryptoID mining currency. In this case, it mines Chickcoin(CHC)
MiningCurrency: 1
#Price for sellingCurrency. In this case it's sold for 175,000 Chickcoins(CHC)
Price: 175000.0
#double accepts scientific notation
#The amount of miningCurrency it makes/produces/mines per second.
#In this case, it mines 128 Chickcoin(CHC) per second.
Hashrate: 128.0
#double accepts scientific notation
#The amount of Watts this object consumes.
#In this case it consumes 90,000 Watts which equals 90 kW
PowerConsumption: 90000.0
#When object is in your inventory, it has a name.
DisplayName: §fB-Wave One
READ "⚠️ STRUCTURES ⚠️"
#When object is in your inventory, it has a lore.
Lore:
- §f§lHARDWARE§r
#Path and file to get into the structure (starting inside structures folder)
FileName: /superComputers/bwave1.nbt
#The title of your inventory
Title: §8§lFRESHEGG > HARDWARE
#How many slots it should have (9 should be a common factor)
Size: 45
Items:
#This is the buttonID. In this case, is "fpga".
#This is used by the plugin and you should only be worried to not
#repeat it inside the same inventory.
fpga:
#ItemStack is may be split, similar to what you see in "⚠️ lang.yml ⚠️"
#The first term, in this case, is "ASICS" while the second term is the ID
#The first term could be: [RACKS,ASICS,GENERATORS,
#SUPERCOMPUTERS,SHOVELS,PARTICLES,TREASURES,
#MATERIAL, COOLERS, SUPERASICS, SUPERRACKS,
#MOUNTS, MOUNTSTORAGE, PETS, PETSTORAGE]
#
# In case the first term being "MATERIAL", the second term needs to
# be found in the following URL:
# Material (Spigot-API 1.19.1-R0.1-SNAPSHOT API) (spigotmc.org)
#ItemStack may also just be "CLOSE". In this case, it will copy the
#Close button shared among the rest of the gamemode.
ItemStack: ASICS-chcpc
#This is the slot number.
Slot: 10
#This is the button lore.
Lore:
- ''
- '§fConsumption:'
- §730 W
- ''
- '§fChickcoin/s:'
- §70.00001
- '§fPrice:'
- §7$0.02
- ''
- §fClick to purchase
#If true, it will replace the ItemStack lore.
#Else it will add the lore to the ItemStack lore at the end
LoreAsReplace: false
#ClickEvent may be [COMMAND,CLOSEINVENTORY]
#More may be added in the future.
ClickEvent: COMMAND
#In case of ClickEvent being "COMMAND", the button will hold a Meta
#The Meta for "COMMAND" would be the command itself.
ClickEventMeta: asic sell %player% chcgpu
Close:
ItemStack: CLOSE
Slot: 40
Lore: []
LoreAsReplace: false
ClickEvent: CLOSEINVENTORY
#Here you need to choose a valid bukkit particle.
#
Particle: CLOUD
#How the name will be displayed in Items
DisplayName: '&fCloud'
#Slot number for later use in Flying Particles menu.
Slot: 10
#Material for the Item
Material: FEATHER
#Material for the Item
Material: WOODEN_SHOVEL
#Display name for the Item
DisplayName: '&fHobby Shovel'
#Lore for the Item
Lore:
- §f§lSHOVEL
#double accepts scientific notation
#currency in shovels is always Vault currency
#This is for how much you pay when buying a shovel.
BuyPrice: 50.0
#Material for the Item
Material: BRICK
#Display name for the Item
DisplayName: '&fBrick'
#Lore for the Item
Lore:
- §f§lTREASURE
#Here is tricky. So basically you need to open all your Treasure.yml files.
#You need to add all their probability and the result should be "100".
#If you didn't get 100 is because you did something wrong.
#This is how it works: The higher the number is the more probable it will
#drop. I need to mention that it is not a double.
#Probabilty doesn't accept decimals.
Probability: 52
#double accepts scientific notation
#Buying currency is always Vault currency.
#This is how much you get paid per unit when selling to scrap dealer.
BuyPrice: 1.25
#In quickwarp/warps menu, this will be the slot number.
Slot: 11
#Display name for the item.
DisplayName: '&eFresh Egg'
#This is the persistent location for your warp.
#World will always be the one from where you currently are.
Location:
==: org.bukkit.Location
x: 24.0
y: 3.01
z: -47.5
pitch: 0.0
yaw: 0.0
#Material for the item
Material: ENDER_PEARL
Resource Information
Author:
----------
Total Downloads: 25
First Release: Apr 9, 2022
Last Update: Sep 11, 2023
Category: ---------------
All-Time Rating:
2 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings