#help-development

1 messages ¡ Page 1524 of 1

quasi flint
#

havent changed my username in a while i see

keen kelp
#

what is bungee's package name?

wraith rapids
#

see your dependency tree

quasi flint
#

heayve idea sweatting

#

heavy

solemn shoal
#

basically what im trying to do is unlock all recipes

#

cant find a way in the api

keen kelp
#

excludeGroup 'net.md_5.bungee.api.ChatColor.*'
something like this?

solemn shoal
#

note to self: chunk loading bad

wraith rapids
#

async on paper :fingerguns:

keen kelp
#

How do I do "If plugin x exists and is enable, run this, if not, fallback on that"

keen kelp
#

can anyone help me with gradle & shadow?

#

I seem to not be able to exclude files

tame coral
#

Is AsyncPlayerPreLoginEvent PlayerJoinEvent but async ?

keen kelp
#

no

#

PlayerJoinEvent happens when Player is already created

tame coral
#

Oh i see

keen kelp
#

AsyncPlayerPreLoginEvent is right before that

#

hence the PRE login part

tame coral
#

So i should query the player's data from my DB with AsyncPlayerPreLoginEvent i guess

keen kelp
#

yeah

tame coral
#

Ok thx

keen kelp
#

cause you still get the UUID and it's async

tame coral
#

Yup, thanks !

wraith rapids
#

note that the player won't be able to actually join until all of the event handlers for that event return

#

so you have up to 30 seconds to do your things, or the client times out

keen kelp
#

Loaded class blablabla from blablabla which is not a depend, softdepend or loadbefore of this plugin.

#

how do I remove this error

#

it's so glaring

eternal night
#

you depend on the plugin you load the classes from o.O

keen kelp
#

so do I add like depend in it?

eternal night
#

in your plugin yml

#

either softDepend or depend

keen kelp
#

since Im modifying RedLib here, this the the plugin.yml

name: RedLib
loadbefore: [GameManager]
depend: [GameManager]
softdepend: [GameManager]
load: STARTUP
main: redempt.redlib.RedLib
version: 2.0
author: Redempt
api-version: 1.13

#

as you can see, I both depend and softdepended my plugin

#

but still

#

[18:39:36 WARN]: [RedLib] Loaded class hk.eric.gamemanager.Main from GameManager v0.0.9 which is not a depend, softdepend or loadbefore of this plugin.

spare prism
#

Hello! Why does my hologram teleport down for one block when refreshing?

[13:04:33 INFO]: -----------------------------------------------

[13:04:33 INFO]: Hologram:{test;[md.sintez.cloudclans.units.holograms.HologramComponent@7bfd8bda, md.sintez.cloudclans.units.holograms.HologramComponent@9c25d33];Location{world=CraftWorld{name=world},x=-254.00880178851247,y=60.456490660775856,z=-97.16444501360145,pitch=0.0,yaw=0.0}}

[13:04:33 INFO]: -----------------------------------------------

[13:04:33 INFO]: -----------------------------------------------

[13:04:33 INFO]: Hologram:{test;[md.sintez.cloudclans.units.holograms.HologramComponent@37b35d4c, md.sintez.cloudclans.units.holograms.HologramComponent@505aa1e8];Location{world=CraftWorld{name=world},x=-254.00880178851247,y=59.456490660775856,z=-97.16444501360145,pitch=0.0,yaw=0.0}}

[13:04:33 INFO]: -----------------------------------------------

My methods: https://pastebin.com/vXyKyXN2

keen kelp
#

?paste

undone axleBOT
spare prism
keen kelp
#

🤦‍♂️ I mean your log

#

put your error message in paste

keen kelp
#

I suppose your hologram is an armorstand?

spare prism
#

It contains many armorstands which represent it's lines

keen kelp
#

what entity is the hologram itself

#

that contains multiple armorstands

spare prism
#

Hologram contains HologramComponents which are armorstands

keen kelp
#

so hologram is an array of the armorstands

spare prism
#

Yes

keen kelp
#

and whose nbt data is getting printed in the log

#

the bottom one?

spare prism
#

The whole hologram

#

For example, here we have two HologramComponents: [md.sintez.cloudclans.units.holograms.HologramComponent@7bfd8bda, md.sintez.cloudclans.units.holograms.HologramComponent@9c25d33]

keen kelp
#

ok lemme see

spare prism
keen kelp
#

and the log is between reloads?

#

the first one before reload and the second one after?

spare prism
#

The log is printed when the reload is performed

keen kelp
#

do you see it going down 1 block in game aswell

spare prism
#

yes

#

every reload

keen kelp
#

Bukkit:reload?

spare prism
#

No

keen kelp
#

your own reload?

spare prism
#

Every time I use the scheduler

#

Yes

keen kelp
#

so youre saying every time you run refreshTopHologram()

#

the armorstands goes down by 1 block

spare prism
#

I think yes

keen kelp
#

I dont know about spawning, but when you get the location of an entity

#

it's always at the center of X&Z and their bottom Y

#

It might just be that offset

#

you might just need to offset the location up by one every refresh

keen kelp
#

I suppose youre using bukkit's location class, so you basically just offset it by 1 block upwards like this
hologram.getLocation().setY(hologram.getLocation()+1);

keen kelp
keen kelp
#

It's not about the thread being blocked

#

It's because it's PRE login

#

so bukkit only ALLOWS the player in AFTER all the PreLogin events end

tame coral
#

Oh i see

#

Is there any way to connect the player, and then do the things ?

keen kelp
#

unless you schedule something ig, if you want to do delayed things in prelogin for some reason

#

what are you trying to do exactly?

tame coral
#

Fetch some player data (e.g. a currency) and store it in a HashMap when a player connects

#

So i can save the HashMap in a DB every 5 minutes or so

keen kelp
#

Please dont say you use a hashmap with Player as a key

tame coral
#

No

#

Strigified uuid

keen kelp
#

ok then just grab the UUID from the event

#

boom problem solved

tame coral
#

Yeah i know that

keen kelp
#

so what's your problem?

tame coral
#

I just want the database query to append right AFTER the player is logged in

keen kelp
#

why would you want that

tame coral
#

Because during the time of the query, the player isn't connected

keen kelp
#

yes and?

tame coral
#

And it's delay and i don't want it

keen kelp
#

You have 30 seconds to query

#

you mean you dont want players to wait before getting in?

tame coral
#

yes

keen kelp
#

I think you didn't think this through

#

you have 2 options for loading player data from database

#
  1. After the player gets in
  2. Before Player gets in
tame coral
#

Yeah

#

I want to do it after

keen kelp
#

for option 1, you either let the player join and freeze them and not let them do anything before the query is done, or suffer potential bugs for not loading data in in-time

#

for option 2. you just let the player wait for a few seconds

#

now which one sounds better

eternal oxide
#

call your query from teh Async event using a CompletableFuture, then complete the Future after the player logs in

keen kelp
#

idk why you would want that tho

tame coral
#

I just want to do it

#

Just like there won't be any use for my plugin, i just code for fun

keen kelp
#

cause you still have to wait until the query is done until the player in allowed in the server right

eternal oxide
#

If it was me, I'd use the completeableFuture but I'd also make the AsyncPre wait a couple of seconds before progressing on

tame coral
keen kelp
#

querying a database takes time

tame coral
#

The player can move freely during that time

keen kelp
#

up to a few seconds in fact

tame coral
#

I know

keen kelp
#

if you dont care about players moving while the database is being queried and want the query to start after the player's in for fast join time, just use PlayerLoginEvent and use a seperate thread to query the DB

#

if that's what youre going for

tame coral
#

Yeah that's what i needed, thanks

eternal oxide
#

the advantage of using a Completeable future is you can test it in teh Async and wait in there until its finished if you want. Then process the data when login has finished.

#

So many ways to handle it

keen kelp
#

He's not tryna be safe here Elgar

tame coral
keen kelp
#

he just want the players to be in :p

#

so telling The event to wait would be against the goal innit

eternal oxide
#

yep

tame coral
#

I was just asking if there was anyway to do it

eternal oxide
#

However, delaying in teh AsyncPre would also prevent login ddos spamming

#

possibly

keen kelp
#

it doesn't need practical functions

#

he just wants to make it be exactly what he wants :P

#

Is there a way to prevent circular dependency while not getting the "plugin is not a depend, softdepend blablabla" thing?

eternal oxide
#

You only soft/depend on the plugins you require. None of their dependencies

keen kelp
#

I think I figured it out

#

Hard depend on one and soft depend on the other

rigid otter
#

I wonder why most repositories are necessarily use version suffix -SNAPSHOT instead of just without it?

eternal night
#

because most repos in the bukkit ecosystem follow a rather incremental development style

#

the only version that would really be worthy of not being a SNAPSHOT would be the last version of each mc version

#

e.g. the last spigot version for mc 1.15.2

rigid otter
#

Ohh🤔

#

But 1.16.5 still uses

eternal night
#

yea because why go through that effort

tribal holly
#

Hey guys, i'm trying to create a "headless" swing interface and can't find any doc on it someone know ? (i know there is any link to this channel subject but i need help)

unreal quartz
#

first google result ¯_(ツ)_/¯

tribal holly
#

❤️

keen kelp
#

how do I know if an attack is crit or not

#

I can't find it in the protocol or EntityDamageByEntityEvent

opal sluice
quaint mantle
#

Hello, I have following problem with protocol lib:
com.comphenix.protocol.reflect.FieldAccessException: No field with type net.minecraft.EnumChatFormat exists in class PacketPlayOutScoreboardTeam
I just wanted to make a fake scoreboard team with packets on my 1.17 server, what am I doing wrong?

opal juniper
#

There are some protocollib at the moment in my experience

#

im not sure that it has been fully updated

#

However, that error looks like you are trying to write to a field that actually isn't in that packet

quaint mantle
#

I want to set color of scoreboard team

#

EnumChatFormat is NMS ChatColor

opal juniper
#

I am not familiar with it - you will have to see if some1 else knows or google it

quaint mantle
#

I tried to google but I still haven't solved it

shadow pulsar
#

How to move a location relative to its rotation?

frosty tinsel
#

Does anyone know, how to cast PathfinderMob to Villager? (NMS)

night copper
#

whats NMS?

#

and why to use it

hexed hatch
#

net minecraft server methods

night copper
#

is it like minecraft code?

#

for modding

frosty tinsel
weary geyser
frosty tinsel
crude charm
#

IntelliJ is the biggest cry baby

hardy swan
#

is there any way to fake a block place event

hexed hatch
#

PluginManager#callEvent

hardy swan
#

i... know that

final fog
#

What's the best way to make something run every x amount of seconds?

night copper
#

BukkitRunnable

hardy swan
#

and yes I know there is a constructor

#

but without having the block placed?

night copper
#

Is this server like dead?

hardy swan
#

or is using build permission plugin API's the best/only way to test if a player can build a certain type of block at a certain location

night copper
#

I remember there were about 5 messages per second

hexed hatch
hardy swan
#

ofc, i know that

#

here is the constructor:
public BlockPlaceEvent(Block placedBlock, BlockState replacedBlockState, Block placedAgainst, ItemStack itemInHand, Player thePlayer, boolean canBuild, EquipmentSlot hand)

versed violet
#
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        Player player = (Player) sender;
        ArmorStand stand = (ArmorStand) player.getWorld().spawnEntity(player.getLocation().add(0, -2, 0), EntityType.ARMOR_STAND);
        stand.setVisible(false);
        stand.setGravity(false);
        stand.setInvulnerable(true);

        stand.setCustomNameVisible(true);
        stand.setCustomName(ChatColor.RED + "A hologram.");
        nodes.add(stand);

@EventHandler
    public void onEntityInteract(PlayerInteractAtEntityEvent event) {
        Player player = event.getPlayer();
        if (nodes.contains(event.getRightClicked())) {
            player.sendMessage("test");```
#

nothing happens when i click on it

hardy swan
versed violet
#

yeah

hardy swan
versed violet
#

public List<ArmorStand> nodes = new ArrayList<>();

HoloCommand holoclass = new HoloCommand();
List<ArmorStand> nodes = holoclass.nodes; is what nodes is btw

wraith rapids
#

use a set

#

and yes use uuids

#

the bukkit entity wrappers are not identity elements

#

i'm not sure if they implement equals properly, either

lost matrix
#

So you need to access the List of the instance you actually register in your main class.

#

You should only have one single instance of HoloCommand. This instance should be registered and used in other classes to access its properties like "nodes".

supple elk
#

anyone know why CraftPlayer import isn't showing?

#

this is my dependency

wraith rapids
#

because it's not part of spigot-api

opal juniper
#

Run build tools?

#

iirc normally that fixes stuff like that for me

#

It’s a CraftBukkit Class

eternal oxide
#

All your imports are broken, clear/invalidate your cache and restart your IDE

supple elk
lost matrix
opal juniper
#

Ohhh - I didn’t notice ur artifact id, yeah I normally just depend on spigot

lost matrix
#

And probably also update your version.

supple elk
opal juniper
#

Why is it running 1.16.4 lmao

#

Such an odd version to pick

supple elk
#

¯_(ツ)_/¯

opal juniper
#

If you didn’t want 1.17 at least go latest b4 that

#

I’m assuming it ain’t ur server then

supple elk
#

some friends of mine asked me to do it and they were running 1.16.4 so whatever

opal juniper
#

Fair enough

supple elk
#

they want me to make a custom tab menu which is annoying cause that means packets x_x

opal juniper
#

Packets and I have a love hate relationship

supple elk
#

lmao

opal juniper
#

They love to work themselves into my project

And I hate them

supple elk
#

means that you have to do reflection or interface for cross version ):

opal juniper
#

Nah protocollib is where I go

#

Although - anyone know wtf is up with it. For some reason I always get errors on load even though it says it supports 1.17

hardy swan
#

err

#

did you download from that download button

maiden briar
#

If I create my own paginated menu I have a problem with calculating the pages: I always get 1 page too less or 1 page too much. What I do: <max items> / <possible items a page> and check if the currentPage (+ 1 if you click on next) is bigger than this

supple elk
#

how can I customise the tab menu beyond just headers and footers?

#

I would like to display in the tab menu 6 teams with the players of each team underneath the name of the team they're in

#

and also change the colour of that player on the tab menu to the colour of the team they're in

ember crag
supple elk
#

how do I do that last part

ember crag
#

in the event, iterate through the world players and check what team they’re on, and edit the name in tab as necessary

supple elk
#

which event?

ember crag
#

isn’t the way you set the header and footer on the tab menu is through the tablist update event or something?

supple elk
#

I think you just use a scheduled task for that and a send a packet

#

however that's for the header and footer

#

I'm trying to figure out how you actually edit a name

#

or stick something in the tab menu which isn't a player

#

so then I can have something which looks like this: ```
Red
player1
player2
Blue
player3
player4

ember crag
#

that would be a bit confusing, can’t you just edit the list name using Player#setPlayerListName(string)

#

and then like have a colored tag for whatever team they’re on?

supple elk
#

I'd still like to add them underneath a corresponding team title though

#

I'd also like to store a score next to each team

#

can I create a fake player?

ember crag
#

absolutely, just make an add_player packet and fill out the necessary data

#

i’m not gonna over it here because it’s very involved

supple elk
#

is there a tutorial you could link me to?

#

this requires an EntityPlayer but I dunno how u make one

#

you need all this stuff

supple elk
#

ty

quasi flint
#

How can i check if a uuid is in my mysql database?

#

currently it contains the uuid and its coins

orchid yacht
#

is there a place where i can get some dev to hire for free maybe in future with payment?

unreal quartz
eternal oxide
#

?services

undone axleBOT
unreal quartz
#

if the set is bigger than 0 then it's in there

quasi flint
#

thanks

supple elk
#

well it worked

orchid yacht
supple elk
#

Is there a way I can get rid of the connection bars and skin?

quasi flint
#

?paste

undone axleBOT
unreal quartz
#

nope

quasi flint
#

hopefully. havent coded in a while

unreal quartz
#

sure, but you might want to use a prepared statement even if you can trust the input string to build a habit

stone sinew
quasi flint
supple elk
unreal quartz
#

you can always set the skin to a picture of something with a similar colour to the background

stone sinew
unreal quartz
#

and set the ping to something high to distinguish it's not a player

supple elk
#

I see

#

I'm just trying to find an image of the hypixel skyblock tab menu

#

huh, looking at this now there are the connection things and they do have those skins

#

and I guess they just add a bunch of fake players for the blanks

#

and set the player tab display name to just blank

#

I just need to figure out how to add a skin to the fake players now

lethal island
#

how do you change nametags with packets

#

i cant find an api that has updated to 1.17

tame coral
lethal island
#

no for players

tame coral
#

Oh

#

Like a player's name ?

lethal island
#

yea above their head

supple elk
#

I hold too much power

tame coral
#

Oh no

#

He's too dangerous to be left alive !

stone sinew
# supple elk lmao

I actually had a YTber on my Minions test server once. And he bought the plugin lol.

supple elk
#

lol

stoic osprey
#

I need to be able to reset a world in my minigame after the game is played? Anyone know how I can reset it from a template? Is there another plugin to do this in 1.16

manic furnace
#

Do anybody know how i can get packets that the client sends to the server?

digital rain
#

ok i have quite a problem im trying to detect armor equip using right click when outside of inv but its just not working at all

#

here is just a reference screenshot but like doesnt work at all

onyx shale
#

yes very much information

sage swift
#

mm i love when people use lore to detect custom items

#

thats my favorite

digital rain
#

what should i do instead then

onyx shale
#

String,valueOf(string)

#

ya wut

sage swift
#

PDC

digital rain
#

whats pdc dude

onyx shale
#

?pdc

quiet ice
#

PersistentDataContainer

onyx shale
#

ah dang no pdc command

#

@quaint mantle make ?pdc command reee

quiet ice
onyx shale
#

more cursed dan this?

abstract spindle
#

Hey guys, have anyone of you an idea to cancel a bot when it is not on water (in 1.16).
My first thought was I could yous the VehicleMoveEvent and make some checks like this:
var vehicle = moveEvent.getVehicle();
if (vehicle.getType() == EntityType.BOAT && vehicle.isOnGround() && !vehicle.isEmpty() && vehicle.getPassengers().get(0) instanceof Player) {
//Some Stuff here
}
and cancel the event, but the event is not cancel able so i tried to set the velocity form the vehicle to a Vektor of 0, but this dosen't work.
So on my second thought I teleport the vehicle to the point where the vent was called(moveEvent.getFrom()) and this dosen't work ether.
I have no ideas left so help me - I don't want to kick the player out of the vehicle or destroy it

digital rain
#

can an item have multiple pdc tags?

onyx shale
#

infinite amount..

digital rain
#

ok good

onyx shale
#

you can also make ur own datatype

#

to store a entire object but eh..

quiet ice
onyx shale
#

set velocity there

digital rain
#

and how would i check for lore the right way if there is any

quaint mantle
quiet ice
#

Nah, I just wrote a seperate mod loader that sits on top of bukkit

timid kestrel
#

Question... how are you guys serialising ItemStack[] arrays?
ItemStack.serialize() is fine, but what to do for ItemStack[]?

young knoll
#

Wound it not be easier to just make your own cache that handles itemstacks

timid kestrel
#

Iterate the array and combine the output perhaps?

onyx shale
#

i just loop through each then set the item using the slot?

quiet ice
#

Or just use ArrayList

timid kestrel
#

Yea, it needs serialising to be put into a database 🙂

onyx shale
#

why would a item be..

timid kestrel
#

so it must be a string, ideally using Gson().toJson()

onyx shale
#

anyway use a library for it

#

some use base64 strings

#

to store it

eternal night
#

?pdc when smh 😂

timid kestrel
#

The problem comes about when retrieving it from the database and converting it from a base64 to an ItemStack... so serializing may be better

undone axleBOT
#

Custom command successfully added.

quaint mantle
#

?pdc

onyx shale
#

finally

eternal night
#

LMAO

#

give me all the clout

tame coral
#

Oh

onyx shale
#

@quaint mantle i see u answered my call

tame coral
#

Good bot

onyx shale
#

for justive

stoic osprey
#

I need to be able to reset a world in my minigame to a template after the game is played? Anyone know how I can reset it from a template? Is there another plugin to do this in 1.16

onyx shale
#

ur in the coding section

#

should you be here?

tame coral
stoic osprey
#

i am asking how to code it

#

or if there is a plugin for it

onyx shale
#

you have multiple ways

eternal night
#

if you code it, you can usually just turn off auto save and unload the world

onyx shale
#

either completly use a copy of the world or a part of it

stoic osprey
#

can you turn off autosave for a specific world?

#

because there are other worlds that need to be autosaved

onyx shale
#

if you want multiple same worlds,make a copy of the one you need,make sure the folder name is stored,then call bukkit newworld for that name

#

it should love a brand new world

#

calling bukkit.unloadworld has a 2nd paramter

#

to save or not

eternal night
#

There is also World#setAutoSave(boolean)

stoic osprey
#

its an extrememly simple world

#

I could use about 10 fill commands to reset it

onyx shale
#

even for a simple thing

#

you sometimes need alot

tame coral
stoic osprey
#

I could use about 10 fill commands to reset it

#

which will probably be easier

tame coral
#

Yeah ?

#

Then just do so

#

¯_(ツ)_/¯

stoic osprey
#

ok

#

(╯°□°)╯︵ ┻━┻

#

😄

digital rain
#

no dude

#

put this into your server start.bat file

#

so that you dont have to wait 20secs

sharp bough
#

get plugin manager

#

and use pm remove oreMarket

#

and then

#

pm load oreMArket

sharp bough
supple elk
#

how can i clear all the players on a tab list?

#

I've added fake players like so

stoic osprey
#

how do I fill an area with all air (there is too much to fill for the /fill command)

stiff topaz
#

world edit

quiet sun
#

I'm having in error with my yml file on a plugin.

supple elk
#

but they perpetuate across servers resets

stoic osprey
stiff topaz
#

Get an area between 2 coordinates

#

Set block air

supple elk
#

I'm aware that there is the REMOVE_PLAYER enum option but I don't know if there's a way I can just removed all players or reset the tab list to the default?

stoic osprey
#

I can't do that in my plugin code?

#

Worledit only works when the player uses the axe and //pos1, etc.?

stiff topaz
#

Are you doing it in a command?

stoic osprey
#

either that or a peice of code

#

in my plugin

#

to clear the area

stiff topaz
#

If your doing a command, use arg[0] and arg[1] to get two coordinates from the player

#

Google replace block

stoic osprey
#

I don't want to use worldedit though

stiff topaz
#

...

stoic osprey
#

I need to fill from 22 255 -23 to -23 39 22

#

with air

somber hull
#

l

stoic osprey
#

its too big for a fill command

quiet sun
stoic osprey
quiet sun
#

np

stoic osprey
#

😄

quiet sun
#

I'm having in error with my yml file on a plugin.

stiff topaz
#

Elaborate?

#

what kind of error

quiet sun
#

This is what I get back

stiff topaz
#

send your plugin.yml

#

probably a syntax error

#

Or you've messed up your pom.xml

quiet sun
#

main: me.amazingfalcon720.rblcandc1.RandomBlockLook
name: RandomBlockLook (1.17)
version: 1.0
description: Edited version of GeorgeNotFound's to include the newer blocks added since 1.14!

stiff topaz
#

Get rid of (1.17)

#

Then try

quiet sun
#

alright then

stiff topaz
#

The name doesn't change anything anyway

quiet sun
#

yeah nothing changed

main dew
#

I have problem with auto increment
How I delete a five records I have holes in id 4, 5, 7 how I can fix this? I use SQLite

stiff topaz
quiet sun
stiff topaz
#

Move plugin.yml out of src

#

Just have it in the main directory

marble granite
#

when i add an AttributeModifier to say for example a sword, it removes all other ones, how can i fix this? i add them like so: ItemMeta meta = is.getItemMeta(); attributes.forEach((k,v) ->{ meta.addAttributeModifier(v, k); });

quiet sun
#

aight thx

hybrid spoke
#

in what line is the error

stiff topaz
#

moving it out of src fixed it

hybrid spoke
#

weird

stiff topaz
#

Im guessing it worked for falcon because he hasn't said anythign else

onyx shale
#

the error is rather clear

#

you cant use player x/z in a chunk

quaint mantle
#

Anyone know how can i sort nametag prefixs for playerlist in onJoin Listener?

onyx shale
#

you have to conver tit to chunk cords

hybrid spoke
quaint mantle
#

Yes

opal juniper
#

Lmao

hybrid spoke
opal juniper
#

Hmmmm - Maybe

quaint mantle
opal juniper
#

Depends on where it searches to compile I guess

hybrid spoke
#

so it will be the first

tulip pike
#
    public void onPlayerWalk(final PlayerMoveEvent event) {
        Player player = event.getPlayer();
        Block block = player.getWorld().getBlockAt(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ());

        if (player.getInventory().getBoots().getType().equals(Material.LEATHER_BOOTS)) {
            System.out.println("With boots");
            block.setType(block.getType());
        }

        else {
            System.out.println("Without boots");
            block.setType(Material.SNOW_BLOCK);
        }
    }``` I have this piece of code which makes the block beneath the player turn into snow when he wears leather boots. For some reason, it doesn't work.
tulip pike
#

What do you mean?

tulip pike
#

Like, player.getInventory().getBoots().getType() == Material.LEATHER_BOOTS?

hybrid spoke
#

you are setting the block type to the block type block.setType(block.getType());

tulip pike
#

Ok.

hybrid spoke
#

just if he dont wear leather boots it will be snow

marble granite
#

why does adding an AttributeModifier reset all other modifiers?

tulip pike
#

How do I fix it then? Should I just make a message?

hybrid spoke
tulip pike
#

I saw it.

hybrid spoke
#

thats your solution

quaint mantle
tulip pike
supple elk
# tulip pike I saw it.

you are saying the type of the block is equal to the type of the block. If the block's type is grass then you are setting it's type to grass

#

instead you must set it to snow

hybrid spoke
#

just if you don't wear leather boots.

tulip pike
#

..?

opal juniper
#

It’s the wrong way around, when they wear boots you do nothing, it they don’t you set to snow

tulip pike
#

Yes.

#
            System.out.println("With boots");
        }

        else {
            System.out.println("Without boots");
            block.setType(Material.SNOW_BLOCK);
        }``` I just typed this.
opal juniper
#

I thought you would set it if they are wearing the boots

#

Not the other way around

tulip pike
#

Oh. Well, why don't do that in reverse? lol.

quaint mantle
opal juniper
quaint mantle
#

What is wrong?

hybrid spoke
#

i would suggest you to look at a tablist/ranks tutorial

tulip pike
#

java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.ItemStack.getType()" because the return value of "org.bukkit.inventory.PlayerInventory.getBoots()" is null This is what I get.

quaint mantle
hybrid spoke
quaint mantle
#

But you didn't answer how can i do that

hybrid spoke
quaint mantle
hybrid spoke
hybrid spoke
tulip pike
#

if (player.getInventory().getBoots().getType() == null) { @hybrid spoke?

tulip pike
#

Ok.

hybrid spoke
#

you dont want to check if the type of the boots is null, you want to check if the boots is null. if you check if the type is null but the boots are null, you will get again a NPE

tulip pike
#

What do I do with the opposite?

#

Just else?

hybrid spoke
#

most likely

#

implicit or explicit else, its all on you

tulip pike
#

One more thing, how do I check if a player is above one block or two?

#

if (player.getLocation().getBlockY() == +1) {?

sturdy venture
#

hello spigoteers, i am trying to make a placeholder replacer for bungee commands, and i dont seem to be able to get the command to run
https://paste.bristermitten.me/opovamokyh.cs
this is the code i have at the moment, the event works and the newMessage is what i expect it to be, but dispatchCommand returns false and the user gets no output. what am i doing wrong here?

#

also worth mentioning that i've tried chat("/" + newMessage) and dispatchCommand("/" + newMessage)

tulip pike
#

Can someone help me with my problem?

lusty cipher
#

You want to check if the players location is 2 blocks above another location?

#

That's simple math

hybrid spoke
lusty cipher
#

playerLocationY - blockLocationY <= 2

hybrid spoke
tulip pike
#

if (player.getLocation().getBlockY() <= 1) { like that?

hybrid spoke
#

otherwise use the blockface

lusty cipher
#

It checks if the Y coordinate of the player is 1 or less

#

=> will only be true if the player is inside bedrock

tulip pike
#

Ok.

#

So >=.

lusty cipher
#

Well what would that check?

tulip pike
#

If the player is above a block?

hybrid spoke
#

every other command have to be send via jedis or PMC to the server the player is at

steep nova
tulip pike
#

Yes.

hybrid spoke
hybrid spoke
#

or under a block

#

or under two blocks

hybrid spoke
tulip pike
#

I've searched. That doesn't mean you have to be rude.

hybrid spoke
#

this channel is for ✨ Serious Spigot and BungeeCord programming/development help ✨

tulip pike
#

Hey man, I don't remember asking for you being a b****.

hybrid spoke
#

no need to thank me for helping you all the time

#

keep going sir

tulip pike
#

You helped me once, sir.

hybrid spoke
#

okay - scroll a bit upwards and proof yourself wrong

quaint mantle
#

Still got help didn’t you?

tulip pike
#

Yeah, for only 1 thing.

sturdy venture
hybrid spoke
sturdy venture
#

Wait what

#

That's what I'm doing

#

or trying to do

#

Not a spigot command

#

litebans bungee

dusk flicker
#

bungee commands canoot be executed on the spigot end

sturdy venture
#

This isn't on the spigot end

#

It's a bungee plugin

#

Trying to intercept and change bungee commands

dusk flicker
#

ah

#

?jd

hybrid spoke
#

does the player has the permission to execute that commands?

#

did you try it with other commands?

sturdy venture
#

Pretty sure I have permission as it was working fine before I added the listener

hybrid spoke
#

and are you sure that it is a valid command?

sturdy venture
#

Confident

#

/ban should definitely work

hybrid spoke
#

banPattern.replace(newMessage) yeah but aren't you replacing it?

glacial arch
#

anyone know of something that I could use with a discord bot so that I can create a channel that displays how much downloads i have on all of my plugins?

sturdy venture
#

I can't test atm as I'm not at pc but I'll see if I can do a little more debugging soon

sick portal
#

Hi there, does anyone know how to spawn multiple players in copies of the same world ? (Trying to make an arena game)

hybrid spoke
#

ah wait i think i understood you wrong

sick portal
#

My idea was to have a single world, thats get copied for each arena game, and saves are not written to disk

#

And then teleport the players of the game in to their specific world

#

Like bedwars, arena and so on do

hybrid spoke
#

if its the same world with the same coordinates you could just teleport them to the same coordinates every time

sick portal
#

But how i can make those play at the same in 1v1 modes ?

#

That's why i was thinking i needed multiple copies of the world

#

Running in parallel

hybrid spoke
#

i would do it like creating a copy of the world and setting the spawn for each team 1 time so they always get teleported to the same coords

#

maybe there is another more efficient way - i am not a mingames maker

#

you could look at open source 1o1 plugins and see how they did it

sick portal
#

Do you know any good plugins that i could look at ?

quaint mantle
#

Could someone here possibly help me write a script to do two specific tasks?

#

Because I have absolutely no idea how to do it

hybrid spoke
sick portal
#

Thank you very much!

hybrid spoke
quaint mantle
#

Ahhh okay, thank you

sick portal
#

And the other do get queued

ivory garnet
#

how can i clear 1 item to an inventory ? if i do player.getInventory().remove(Material.GUNPOWDER); that remove all gunpowder but i will just remove 1 gunpowder

chrome beacon
#

and you might have to use removeItem

ivory garnet
#

ok thank you @chrome beacon

digital rain
#

help pls :)

chrome beacon
hybrid spoke
sturdy venture
hybrid spoke
hybrid spoke
sturdy venture
#

it's litebans

#
21:06:19 [INFO] /ban blah blah help me

21:06:19 [INFO] false```
#

the command itself shouldn't really matter - it gets "ignored" whatever i print

#

oh wait

digital rain
sturdy venture
#

hold up

hybrid spoke
#

maybe its returning false because the player is not existent or smth

sturdy venture
#

i think i have an idea

#

i think ive got it

#

it infinite loops or something

chrome beacon
#

?learnjava

undone axleBOT
chrome beacon
#

Read these ^^

sturdy venture
#

because the original /ban gets cancelled, then the event handler gets triggered by the new /ban, which replaces it again, and again, etc

digital rain
opal juniper
#

Wdym Olivo that would work 100%

chrome beacon
#

bruh

opal juniper
#

10/10 solution

sturdy venture
#

is the bungee event api thread safe?

hybrid spoke
hybrid spoke
sturdy venture
#

good point

#

maybe the event doesn't trigger for dispatchCommand

opal juniper
sturdy venture
#

ugh why does this have to be so complicated

hybrid spoke
#

its probably not that complicated

#

you are just making it complicated

sturdy venture
#

let me attach a debugger and see where dispatchCommand is failing

hybrid spoke
#

i think we are just overlooking something realllllyyy easy

opal juniper
#

What are you doing?

quaint mantle
#

Hey guys, can you please give me avenue as how to make chunk claiming system ? Like just which methods should I look into ?

#

not talking about anti-grief

quaint mantle
#

just chunk claim

sturdy venture
quaint mantle
opal juniper
sturdy venture
#

oh interesting, apparently i don't have permission suddenly 🤔

digital rain
#

😭no make fun of i, me begginer dont bulli me😭

weary summit
#

Hey, sorry if that's a newbie question, but:

why can't I instantiate inventories?

Inventory inv = new Inventory(); // error <- Cannot instantiate the type Inventory
sturdy venture
#

it's an abstract type

#

and heavily dependent on the underlying server implementation anyway

opal juniper
hybrid spoke
opal juniper
opal juniper
#

^^

weary summit
quaint mantle
sturdy venture
sturdy venture
#

so... maybe it's not checking for permissions with luckperms or something

hybrid spoke
#

so your first /ban will get executed at the spigot and your second on the bungee

sturdy venture
#

im using luckperms bungee so i dont think so

#

the spigot server doesn't even have any plugins on it

#
   if ( !command.hasPermission( sender ) )
        {
            if ( tabResults == null )
            {
                sender.sendMessage( ( command.getPermissionMessage() == null ) ? proxy.getTranslation( "no_permission" ) : command.getPermissionMessage() );
            }
            return true;
        }

``` when i ran a debugger, this if statement was true for whatever reason
hybrid spoke
#

hmm i am not that into bungee. but anyways, you got the solution

sturdy venture
#

yeah although im not sure what the fix is

#

i should have permission

#

i do have permission

quaint mantle
#

Okay so I came up with a join plugin. But I think something on the server if blocking me from sending links in chat, is there something with spigot that blocks the ability to send links in the game chat?

hybrid spoke
quaint mantle
#

see other links like plugin updates work, but this link I have set up with a welcome message plugin for dynmap just wont work

hybrid spoke
#

define not work

sturdy venture
#

welp... i figured it out

#

dispatchCommand doesn't like the command starting with an /

#

god i wish things would give more helpful error messages

quaint mantle
digital rain
sturdy venture
#

doubt

digital rain
#

why

opal juniper
#

If it did work I don’t recommend

sturdy venture
digital rain
#

hmm confused

main dew
#

I use auto increment in database but how I delete a five records a have holes in id 3, 4, 5, 7 etc. How I can fix this?

stone sinew
hybrid spoke
#

or be extremely expensive and move them all down by id-1

sturdy venture
#

a lot easier on a technical level, and it also shows that things have been deleted

main dew
main dew
sturdy venture
#

it's not a problem

#

i dont think

hybrid spoke
#

or loop through the size of the numbers and find the first missing number. would recommend this

sturdy venture
#

🥶

hybrid spoke
#

but you should cache it somewhere so you don't call the database every time

main dew
wraith rapids
#

generally it doesn't matter if your autoincrement key is sparse

#

it's mostly used as an id, the point is that there is only one of each value

#

whether every value is present or whether the range is continuous is not usually a concern

#

and if it is, you run into this issue

#

therefore, design your system in such a way that it is not a concern

main dew
#

realy I prefer fix this

wraith rapids
#

i can't see replies

sturdy venture
#

unless it's actually causing a bug (which probably indicates your code is bad), there's not really any need to spend the time making sure it's continuous

wraith rapids
#

it isn't "broken", you can't fix it

sturdy venture
#

^

wraith rapids
#

what

hybrid spoke
#

and where is something to fix?

#

you can just loop through your table

#

you wont need the id for that

main dew
hybrid spoke
#

ok

main dew
#

intresting idea but I need id without holes to other

wraith rapids
#

then your code is shit

#

and you should fix it

#

so that it doesn't require "id without holes"

#

but just "id"

sturdy venture
#

based

hybrid spoke
#

the id should just be the identifier and nothing you have to put in order

#

id is also internal so noone will ever see and judge you that its not in order

main dew
#

I can tell you why I want to put it in order

wraith rapids
#

it is in order

#

the order is just not continuous

#

and that should be fine

#

as requiring it to be continuous involves going through difficult and computationally expensive hoops

sturdy venture
#

yeah this is gonna scale terribly

main dew
#

no in source

wraith rapids
#

you're a 1.8 user aren't you

sturdy venture
#

lmao

main dew
main dew
#

but I see you don't like 1.8 spigot

cedar lily
#

can someone help?

wraith rapids
#

i don't like any spigot

main dew
#

you on group SpigotMC

wraith rapids
#

your server is overloaded

main dew
chrome beacon
#

Also that's Paper

wraith rapids
#

your entity counts are fucked

#

lower water ambient specifically

#

someone has a large chicken farm

#

you have 90 active mob spawners

#

lower your spawn interval

#

don't run a server on fucking windows 10

quaint mantle
#

lmao

wraith rapids
#

address these issues and take a longer timings report

main dew
#

a no message to me xD

quiet sun
#

I got this error when trying to load in another plugin

chrome beacon
#

You can't use () in the plugin name

quiet sun
#

ah thx

chrome beacon
#

Also not sure if you can use .

wraith rapids
#

you should move the 1.17 part to the version string

quiet sun
#

kk thx

wraith rapids
#

pretty sure plugin names are alphanumeric

sturdy venture
quaint mantle
#

maybe

sturdy venture
#

oh ok

waxen plinth
#

👀

lyric grove
#

Im trying to create a holograms leaderboards

chrome beacon
#

Missing )

#

Also wat

lyric grove
#

same thing

chrome beacon
#

Loc isn't a list

lyric grove
#

oh sorry would this work then?

chrome beacon
#

Yes

lyric grove
#

thank you

sturdy venture
lyric grove
#

would this work?

sturdy venture
#

Try it and see?

lyric grove
dusk flicker
lyric grove
#

im using this to run it every few ticks

#

xd

torn oyster
#

how do i make it add missing values in the config.yml

#

and not affect existing ones

unreal sandal
#

Hello, how can I select all blocks of a chunk ?

torn oyster
#

cuz each update everyone using it has to update the config.yml manually

brazen galleon
#

hi, im having a problem with someone using my plugin, they sent me this error https://hastebin.com/bazagopuzo.yaml and im pretty sure its not a problem caused by my plugin, but im not sure what it is and i have no fix for it

eternal oxide
#

it points to PermsManager.java:25

brazen galleon
#

its 6 lines below lol i misclicked

unreal quartz
#

Bukkit.getServer().getServicesManager().getRegistration(Permission.class);
might be a corrupted jar? not sure how that would throw java.lang.IllegalStateExceptionzip file closed

brazen galleon
#

i already told him to redownload, gave him a fresly compiled jar that worked for me

#

we are using same java version, same spigot version

unreal quartz
#

what about vault

eternal oxide
#

Does he have some other plugins accessing yours too early and causing it to initialize?

brazen galleon
eternal oxide
#

We need to see a startup log (latest.log) with the error in it

brazen galleon
#

ill tell him rn

eternal oxide
#

it looks like the error happened during a restart

spare prism
#

Hello, is it good to save Lists in the MySQL database using serialization or is there a better way? I heard that it is not a good way

lilac dagger
#

if you want to keep it in a table it's perfectly fine

unreal quartz
#

no, it's not a good idea

eternal oxide
#

depends what the list contains really

torn oyster
#

how do i make it add missing values in the config.yml
and not affect existing ones
cuz each update everyone using it has to update the config.yml manually

astral burrow
#

hey guys can I ask you a beginner question?

unreal quartz
#

not sure what your structure looks like but you might want to consider having a third table which with the sole purpose of one thing to another thing (two foreign keys)

unreal quartz
undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply.

unreal quartz
torn oyster
unreal quartz
#

why not

torn oyster
#

does getConfig() get the one in the resources folder

#

or the one in the plugin folder

unreal quartz
#

read the config file that is packaged with your jar, and compare what keys are defined there vs the config file in the plugins folder

#

getConfig gets the one that is loaded in memory, which is the one in the plugin folder

torn oyster
#
    public void updateConfig() {
        try {
            if (new File(getDataFolder() + "/config.yml").exists()) {
                boolean changesMade = false;
                YamlConfiguration tmp = new YamlConfiguration();
                tmp.load(getDataFolder() + "/config.yml");
                for (String str : getConfig().getKeys(true)) {
                    if (!tmp.getKeys(true).contains(str)) {
                        tmp.set(str, getConfig().get(str));
                        changesMade = true;
                    }
                }
                if (changesMade)
                    tmp.save(getDataFolder() + "/config.yml");
            }
        } catch (IOException | InvalidConfigurationException e) {
            e.printStackTrace();
        }
    }```
#

this doesnt work

unreal quartz
#

though there is also some funky stuff where you can optionally add the defaults and whatnot (it's slightly confusing what bukkit really does to it)

torn oyster
#

but i got it off someone having the same issue as me

wraith rapids
#

use getresource in conjunction with the reader constructor of yamlconfiguration to read the one in your jar

#

really though, use a proper config library or framework

#

bukkit's is shit and lackluster

astral burrow
#

okay, so I want to use spiggot to place a double chest. At the moment I am working on connecting each chest. Rn I can place chest but connected to double chest.

Location blockLocation = new Location(deathboxWorld, xLoop, yLoop, zLoop);
Location blockLocation2 = new Location(deathboxWorld, xLoop+1, yLoop, zLoop);

Block block = blockLocation.getBlock();
Block block2 = blockLocation2.getBlock();

block.setType( Material.CHEST );
block2.setType( Material.CHEST );

Chest chestBlockState1 = (Chest) block.getBlockData();
chestBlockState1.setType( Type.LEFT );    //thats my issue. I can not set the type to left. 
block.setBlockData(chestBlockState1, true);

I assume that I need to set the Block state somehow now. But I dont know how to do.

wraith rapids
#

state.update

unreal quartz
spare prism
eternal oxide
#

a UUID list is fine to put in SQL

spare prism
astral burrow
eternal oxide
#

UUID.toString()

brazen galleon
hybrid spoke
spare prism
eternal oxide
#

you don;t need to use serialization to save UUIDs

hybrid spoke
slim magnet
#

Hey, for some reason this code isnt working properly on my dedicatedmc server but it works fine on localhost

File data = new File(game.getMain().getServer().getWorldContainer(), map.getWorldName());
this.directory = new File(game.getMain().getServer().getWorldContainer(), "arena-" + game.getId());

if (directory.exists()) {
    Bukkit.unloadWorld("arena-" + game.getId(), false);
    try {
        FileUtils.deleteDirectory(directory);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

try {
    FileUtils.copyDirectory(data, directory, pathname -> !pathname.getName().equals("uid.dat"));
} catch (IOException e) {
    e.printStackTrace();
}

this.world = Bukkit.createWorld(new WorldCreator("arena-" + game.getId()));
wraith rapids
#

well

eternal oxide
wraith rapids
#

uuid.tostring is technically serialization

eternal oxide
wraith rapids
#

though, some database schemes allow you to use a UUID type directly

slim magnet
#

help :/

lilac dagger
#

even if not, i'm pretty sure the uuid can be converted into a long

#

for efficient storage

spare prism
eternal oxide
spare prism
unreal quartz
# spare prism What is the other way of doing it?

have a third table acting as a bridge to link it together
it would look something like this (both are foreign keys):

list id | uuid
--------|-------------
1       | uuid1
1       | uuid2
1       | uuid3
....

serializing an entire list is and storing that is not generally a good idea, this might be something you want to research more

torn oyster
#

does getConfig().getKeys() return comments and blank lines too?

unreal quartz
#

nope

torn oyster
#

is there a method that does that

wary harness
#

no

unreal quartz
#

nope

torn oyster
#
    public void updateConfig() {
        try {
            boolean changesMade = false;
            FileConfiguration config = getConfig();
            YamlConfiguration tmp = new YamlConfiguration();
            tmp.load(getResource("config.yml"));
            
            for (String str : tmp.getKeys(true)) {
                if (!config.getKeys(true).contains(str)) {
                    config.set(str, tmp.get(str));
                    changesMade = true;
                }
            }
            if (changesMade) config.save(getDataFolder() + "/config.yml");
        } catch (IOException | InvalidConfigurationException e) {
            e.printStackTrace();
        }
    }```
#

it works

#

but the blank lines dont appear

#

and nor do the comments

unreal quartz
#

because bukkit strips those except the header comments

torn oyster
#

wait can i add all the info

#

at the header comments

unreal quartz
#

i guess? but then you'll have like a 100 line comment at the start of the file which is completely seperate from the keys they're describing

wraith rapids
#

like i said

#

use a proper config api or framework

#

bukkit's is shit and lackluster

torn oyster
#

snakeyaml?

#

will that work

wraith rapids
#

not really a config api nor framework

torn oyster
astral burrow
torn oyster
spare prism
unreal quartz
#

well in that case you can have two tables, one for clans and the other for players, clans storing information about clans only and players storing information about players, with a foreign key to a clan (assuming players can only have one clan)

wraith rapids
#

configurate is one

torn oyster
#

link>

wraith rapids
torn oyster
#

okay well

#

how do i get the config from the resources

#

and put it in the data folder

wraith rapids
#

see the docs

#

or ask in their discord

torn oyster
#

so

#

you don't know

wraith rapids
#

i don't, no

torn oyster
#

ill just stick with what i have

proud basin
#

What file would you delete to reset STATISTICS.PLAYER_KILLS?

onyx shale
#

without deleting everything about a player

#

dont think you can

wraith rapids
#

iirc stats are stored in a separate file

#

but yeah deleting it would nuke all stats of that player

onyx shale
#

minecraft loves storing everything

#

in one file

#

for each player

proud basin
#

that's awesome

wraith rapids
#

use the api to reset it

#

though I suppose you 1.8 plebians might not have said api

onyx shale
#

actually nvm

proud basin
#

wow NNY

onyx shale
#

world>stats>uuid

#

has the stats

#

in json form

wraith rapids
#

strange that it's json

onyx shale
#

yeah i expected

wraith rapids
#

usually everything is nbt

onyx shale
#

a .dat

proud basin
#

what's my uuid?

#

NNY tell me

#

you know it

onyx shale
#

you see it where you join

#

in the console

wraith rapids
#

given that you are an 1.8 user

onyx shale
#

saying uuid for...

wraith rapids
#

it's probably an offline mode uuid

onyx shale
#

or that

wraith rapids
#

since no 1.8 players can afford to purchase the game

onyx shale
#

fkng burn damn

proud basin
#

wow NNY

#

you're cow

onyx shale
#

fk is nny

wraith rapids
#

i'm a pretty cow guy

unique shuttle
#

hello
Do you know how I can use player.HasPermission () with a offline player?

sage swift
#

in EntityDeathEvent, would getEntity.getLastDamage return the event that caused the death or the one before?

proud basin
#

why would you check if a offline player has permission?

wraith rapids
#

uh, the former

sage swift
#

can't check for online players

onyx shale
wraith rapids
#

by that point the damage event has fired

unique shuttle
#

vault api return null with lucky perms plugin

onyx shale
sage swift
#

so use luckperms api :o

onyx shale
#

yeah was about to say

#

if you have luckperms just use theyr api with uuid

sage swift
#

if anyone isnt using luckperms in 2021 they dont deserve your plugin

wraith rapids
#

real men use pex

granite stirrup
#

i cant seem to find a vanilla way to make minecarts invisible and unbreakable XD

wraith rapids
#

use pex api

onyx shale
wraith rapids
#

that's because there is no way to make minecarts invisible

onyx shale
#

vanilla?

#

i mean a minecart is still a entity

#

wich still should have the default nbt data

granite stirrup
#

wtf in vanilla u have the Invulnerable tag in minecart but it Doesnt work

wraith rapids
#

the only way to make the minecart invisible is to not send the minecart entity to begin with

onyx shale
#

wich has the default nbt invisible

unique shuttle
#

i see

wraith rapids
#

yeah but the client doesn't respect it for all entities

granite stirrup
sage swift
#

mein kart

onyx shale
#

true i guess

wraith rapids
#

f.e you can't make falling sand invisible either

onyx shale
#

also why invisible minecart in the first place?

granite stirrup
#

cuz

onyx shale
#

actually nvm dont tell me

granite stirrup
#

i wanna spawn a minecart and make it follow on your head so u got like a little backpack thing

onyx shale
#

u want it the vanilla way

#

not the code it in way

wraith rapids
#

and why does this involve a minecart

#

and not literally any other entity

onyx shale
#

aka armorstand

sage swift
#

becuz min cart can has chest

granite stirrup
onyx shale
#

armrostand with chest on head?

granite stirrup
sage swift
#

genis

wraith rapids
#

that is the preferred method

#

then you just need to implement a gui for it

#

also what

#

how would you fucking open it

onyx shale
#

i mean hes going vanilla way

wraith rapids
#

it's on your back

onyx shale
#

so idk why hes asking here

wraith rapids
#

how are you going to click it

sage swift
#

quickly and efficiently

#

with vigor

granite stirrup
wraith rapids
#

spoken like a true 1.8 player

onyx shale
#

still why ask here?

proud basin
#

So deleting all files in stats actually doesn't reset it

sage swift
#

i love you jtx

granite stirrup
#

i have the minecart on top of the head

onyx shale
#

while u deleted them?

proud basin
#

no

sage swift
#

nice!

wraith rapids
#

dumb

sage swift
#

keep doing that

#

that's a good way to

wraith rapids
#

they haven't invented restarting in 1.8 yet

granite stirrup
#

f i guess i just remove the texture from minecarts

onyx shale
#

@granite stirrup go ask in some minecraft reddits if ur going vanilla way

#

there should be a bunch