#help-development

1 messages · Page 1345 of 1

outer crane
#

thats very odd, it worked for me

#

worldguard messes with it sometimes, but im not sure why it wouldnt work

barren locust
#

hm, I'll try again

oak mica
#

i did it another way

#

simple way really

outer crane
#

How?

oak mica
#

how should I make damage dealt from this fall damage cancell out but no other fall damage?

oak mica
#

so if they hold, they slowly fly up

outer crane
#

how do you tell if they hold though?

oak mica
#

vectir

oak mica
#

they will launch on right click

outer crane
#

so you launch them randomly or what

oak mica
#

but when they hold it code will run repeatedly

#

so no need to check if hold

oak mica
#

@lost matrix pinging cos no one else helping

#

anyone?

#

@quaint mantle can you help?

#

bruh

#

can someone help me

round finch
#

god damn how do i addStorageEnchantment to item 😂

#

did it lol forgot to

NewItem.setItemMeta(NewItemMeta);

NewItem.setItemMeta(NewEnMeta);

chrome beacon
#

Use camelCasing md_5

lavish basalt
#

hello?

lost matrix
outer crane
lost matrix
oak mica
#

I am trying to make the itemmeta change when you shiftrightclick but nothing happends

#

abillity also changes when meta changes

#

any idea why nothing happends?

#

@lost matrix

round finch
#

thread for check if player is shifting? 🤔

#

wait there probably a check for hold shift nvm (ignore me)

oak mica
lost matrix
# oak mica I am trying to make the itemmeta change when you shiftrightclick but nothing hap...

The very first thing you should do is listen to your IDE.
It tells you that comparing Strings with == is very bad and will not work in 99% of cases.

Then you need to re-structure your code. This whole lore tinkering needs to be in its own method or even its own class.
If you split your code in a lot of small method then it gets way more readable and flexible.

Now to your problem:
Preventing fall damage after a leap is hard because the player wont always take fall damage after he has lept.
So on leap you should tag him. (A Set<UUID> should be enough) and then remove the tag some seconds later.
Then you check the EntityDamageEvent. If its of type fall damage and the user is tagged then remove the tag and cancel the event.

oak mica
#

ok

lost matrix
oak mica
round finch
#

did you remeber to do Item.setMeta()?

lost matrix
oak mica
#

which i make in my itemmanager

#

then when shiftrightclick, abilty changes

#

so i want lore to show that

round finch
#

i think you missed it 🤔

main dew
#

I have small problem

lost matrix
main dew
#

How I can fix this?

lost matrix
main dew
#

this plugin how I see use version 4.0.0

#

yea I know old version

lost matrix
# main dew this plugin how I see use version 4.0.0

The repo currently looks like this:

    <dependency>
      <groupId>com.comphenix.protocol</groupId>
      <artifactId>ProtocolLib</artifactId>
      <version>4.6.0-SNAPSHOT</version>
    </dependency>
  <repository>
    <id>dmulloy2-repo</id>
    <url>https://repo.dmulloy2.net/repository/public/</url>
  </repository>
round finch
#

player.getInventory().getItemInMainHand() for 1.13+

lost matrix
chrome ferry
lost matrix
oak mica
#

oh lol

#

should i just change item holdin

#

g

round finch
#

@oak mica
player.getInventory().getItemInMainHand() 1.9+

otherwise use

p.getInventory().getItemInHand();

lost matrix
oak mica
#

ok

chrome ferry
sage swift
#

well then they'll need to elaborate on what the hell is so special about their system

chrome ferry
#

No

lethal knoll
#

Hey, anyone here experience with mockito and maven?

chrome ferry
lost matrix
chrome ferry
#

PreparedStatement ps = con.prepareStatement("SELECT * FROM playerwarps_warps WHERE name = ?"); that’s the code that it’s coming off of. Never really seen this issue ever before

lost matrix
chrome ferry
#

I sent that line just now

lost matrix
#

Thats the constructor of some class.

chrome ferry
#

That’s the line

sage swift
#

have him send the db maybe there's something messed up in there

lethal knoll
chrome ferry
#

He said he can’t due to something?

lost matrix
dire marsh
#

use MockBukkit

lethal knoll
#

You use that?

chrome ferry
#

I find this interesting

lost matrix
# dire marsh use MockBukkit

Its fine but the interfaces are not fully implemented. For most cases its fine but dont expect stable integration tests.

dire marsh
#

yeah

lethal knoll
#

Well, just going to be straight forward. I needed to mock the PluginDescriptionFile class, but because I couldn't because the class is final. So after some research, I found out I could use mockito-inline and version 2+ and use Mockito.mockStatic()

#

Now the problem is , no matter what I try, no matter what version I use in maven, that Mockito.mockStatic() method simply doesn't exist

#

I've been trying for hours now to find the solution

dire marsh
#

cant really give you any pointers, best to just experiment or try mockbukkit 🤷

lethal knoll
#

Any examples?

#

I might use it

#

if it's really good

#

but how reliable is it

dire marsh
lethal knoll
#

is it based on Junit?

#

I'll try MockBukkit

minor fox
#

does anyone know why you can't edit the yaw of entities spawned through spigot?

lethal knoll
#

what do you mean?

minor fox
#

no matter what location I give it, it will always be facing with yaw = 0

quaint mantle
#

ur doing something wrong then

lethal knoll
#

can you show ur code

minor fox
#

spawned using location.getWorld().spawnEntity(location, entityType);

lethal knoll
#

yea

#

but show the location

#

how do you define the location part

minor fox
#

new Location(Bukkit.getWorld("Lobby"), -30.5, 63, 2.5, -90, 0)

#

I tried editing through nms but that didnt seem to work either

#

totally lost rn

lethal knoll
#

hmm

#

what I would recommend you trying

#

is get your own (player) location

#

try setting that

#

as the location

#

and see if the yaw is correct there

quaint mantle
#

are u disabling the AI?

minor fox
#

perhaps

quaint mantle
#

?

#

yes or no

minor fox
#

yes

#

yes I am

quaint mantle
#

that’s the issue

#

i’ve had it before, i can’t remember what i did to fix it, unfortunately

#

try teleporting after spawn

minor fox
#

okay so it's either nice yaw or ai LOL

lost matrix
minor fox
lethal knoll
#

there is also the setPositionRotation if I'm not mistaken

minor fox
#

I don't seem to have that method

quaint mantle
#

if you’re not using latest version then you’re gonna have to play around with it

lethal knoll
#

ah nvm, nms

quaint mantle
#

teleport, nms, etc

minor fox
#

yeah I have no problem dealing with nms, but nothing seemed to work there either

#

tried sending rotation packets, setting fields, etc

quaint mantle
#

it’s definitely possible, i’ll try to find the project i had the same issue in

minor fox
#

I noticed the pitch works fine though

lost matrix
minor fox
#

Yeah unfortunately I don't have a method matching those parameters

lost matrix
minor fox
#

im on 1.8

lost matrix
# minor fox im on 1.8

Oh. Then you are on your own. That version is half a decade old and has some bugs that will never be fixed + lacks a ton of API methods.

real vapor
lost matrix
#

Support was dropped a long time ago+

minor fox
#

I know I'm pretty much on my own, just thought I'd hear if anyone ever faced this problem working with 1.8 before

#

there's no reason for it to act the way it does even if it's an outdated version

minor fox
open vapor
#

what would be the correct event for when a player is killed by a charged creeper explosion

unreal quartz
#

death event? then look at the cause

#

or the entity who killed the player

open vapor
#

PlayerDeathEvent has no getCause method?

unreal quartz
#

you can get the last damage cause from the player

open vapor
#

what method

#

or should I be using a different event

open vapor
#

ohhhh

#

not the event

#

the entity

unreal quartz
#

huh?

open vapor
#

I thought getLastDamageCause was a method of PlayerDeathEvent

unreal quartz
#

the above returns an event, which is the last damage event that the player took and if it was from a creeper then it will be an instance of EntityDamageByEntityEvent

#

ah

open vapor
#

what is typeof in java?

unreal quartz
#

instanceof

open vapor
#

ok

modest oar
#

is there a command that spawns a mob every few seconds automatically?

#

i know how to spawn a mob

unreal quartz
#

nope

modest oar
#

you sure?

open vapor
#

use a scheduler

modest oar
#

ok

unreal quartz
#

assuming you're just talking about vanilla, then no

daring sierra
#

you could set up a simple script with command blocks

#

i think

#

idk I don't use em very often

modest oar
#

alright thx

unreal quartz
#

you could, but command blocks are iffy

daring sierra
#

^^

modest oar
#

ill just try a scheduler then

unreal quartz
#

if you can, you're better of writing a plugin and spawning one yourself rather than relying on commands and command blocks

lost matrix
cunning cloak
#

How do I fix this? Cannot resolve method 'getConfig' in 'AntiSwear'

quaint mantle
#

by making a getConfig method

modest oar
#

alr im stuck

#

BukkitTask Listeners = new Listeners(plugin:this).runTaskTimer(plugin:this, delay:100L);

#

this is in the main.java

#

and this is in the listeners

#

Main plugin;
public Listeners(Main plugin) {
this.plugin = plugin;
}

#

the plugin in "Main" shows an error

#

what did i do wrong

#

i have no idea what plugin:this does

noble nacelle
#

remove the plugin: part

#

just have "this"

modest oar
#

BukkitTask Listeners = new Listeners(this).runTaskTimer(this, 100L);
?

stuck ruin
#

what do yall use to code in java?

modest oar
#

like this?

noble nacelle
#

ye

modest oar
#

eclipse

noble nacelle
cloud berry
#

intelli jay since 2 days ago .-.

modest oar
#

it says i have to implement runTaskTimer on listeners...

#

im prettty sure it was inclusded in

#

scheduler.BukkitTask

cloud berry
#

@modest oar wut u tryna do?

stuck ruin
#

is intellij ultimate worth it?

#

or just stick with community addition

modest oar
#

make like a command that runs automatically every few secs

stuck ruin
#

this is more opinion than anything

cloud berry
cloud berry
#

leme show u example

modest oar
#

alr thanks

stuck ruin
#

intellij idea ultimate

#

there is a community and ultimate edition for it

cloud berry
#
    period = 20; // how many ticks in between after that

getServer().getScheduler().runTaskTimerAsynchronously(Plugin, new Runnable() {
    @Override
    public void run() {
        // timer code goes here
    }
}, delay, period);``` @modest oar somethin like this
modest oar
#

so this goes into the listeners i suppose...

#

wait no

cloud berry
modest oar
#

this goes into the main

cloud berry
#

yeah that works if it's always gonna be running

#

in the onEnable()

modest oar
#

thank you

#

ill try it out now

quaint mantle
cloud berry
#

gl 😄

#

@quaint mantle perhaps u strike ppl as an imaginative dev ;pppp

quaint mantle
#

well

#
from apps import *

app = App()

app.addwidget(Text('What is your name?'))
entry = EntryBox(var='name')

def onclick():
    variables['name'].set('')

app.addwidget(entry)
app.addwidget(Button('Submit', onclick=onclick))

app.run()

i made this

cloud berry
#

pythan ❤️

quaint mantle
#

its a lib for Tkinter

cloud berry
#

wuts tintker .-.

quaint mantle
vague sable
#

hi, is there anyway you can return the location of the block thats hit by a projectile with ProjectileHitEvent?

quaint mantle
#

?jd

unreal quartz
quaint mantle
#

.getLocation()

vague sable
#

ahh ty

cloud berry
#

ohhhhh tk

#

i see

wise cape
#

Working with trying to get user input from a config file. I think Im using ConfigurationSection..
Example config input:

drops:
  SomeDrop:
    SomeKey: SomeValue
    SomeOtherKey: SomeOtherValue
  SomeOtherDrop:
    SomeKey: SomeValue
    SomeOtherKey: SomeOtherValue```

How can I access the names of `SomeDrop`
unreal quartz
#

you can get the configuration section

#

then get the keys

wise cape
#

Oh so like SomeDrop would be a key of drops

unreal quartz
#

essentially yeah

#

and SomeKey is a key of the configuration section drops.SomeDrop

wise cape
#

yeah so once I obtain the Set of all of the input, I can access the keys/values as a map of each drop

#

Or are all of those also sections

unreal quartz
#

they're all sections, however internally they are kept as maps

wise cape
#

Perfect.

#

Finding it challenging to migrate from json to yaml but bukkit does make it easier

#

or spigot is responsible for this class it seems actually

unreal quartz
#

you can see they are effectively maps, but they get loaded in as ConfigurationSections (or more specifically MemorySections)

wise cape
#

So can they be accessed with getConfig.getMap?

unreal quartz
#

the preferred way to get the section would be with getConfigurationSection

#

I'm not sure if getMap is a method

wise cape
#

Oh it sure isnt 😫

#

Yikes, this seems like a nightmare lol.

#

Essentially need to pass each user defined section into an object

modest oar
# cloud berry in the onEnable()

wait would this work?
@SuppressWarnings("unused")
BukkitTask Listeners = new BukkitRunnable() {
public void run() {

        }
        
    }.runTaskTimer(this, 100L, 100L);
#

i dont know why its suppressing Listners though

hybrid spoke
#

test it

#

and see

unreal quartz
#

I actually prefer how they are loaded as ConfigurationSections, as it's easier to use in case the user has fucked something up

#

e.g you don't have to worry about what type they get loaded in as

modest oar
#

should it be new Linsteners(this) or should it be a runnable?

unreal quartz
#

what are you trying to do?

#

you've made an empty runnable there, which runs every 5 seconds

modest oar
#

yeah i know but how do i make it run listeners

#

instead of empty

unreal quartz
#

run listeners?

modest oar
#

erm... how do you do that again?

unreal quartz
#

I'm not sure what you mean

quaint mantle
#

Has anyone ever programmed a discord bot with nodejs? Or has experience?

round finch
#

is there anyway to put a itemStack amount to 100? in a inventory

unreal quartz
round finch
#

for me it only display 64

unreal quartz
#

yeah I don't think you can override that anymore

#

the later versions won't show stacks > 64

#

and spigot might not even let you set it to such a high amount

round finch
#

ohh i thought because of older updates

#

i also saw negative- amount items

cloud berry
unreal quartz
#

i mean you can make bots in any language

quaint mantle
unreal quartz
#

provided you can make http requests in it

cloud berry
#

wait really? its all just http requests? o_o

quaint mantle
#

idk but isnt it that u can do something like: inventory.setMaxStackSize(128); ?

round finch
unreal quartz
quaint mantle
unreal quartz
#

why is why if you ever read discord's documentation you see it's all requests to endpoints

#

discord.js is quite well documented

#

they also have a discord

quaint mantle
#

ty bud

round finch
#

is packet possible to update the inventory to show the right amount above 64?

wise cape
#

since it only returns a set

#

or jesus ignore me, now we have to go deeper

unreal quartz
#

well with the configuration section, you can get the values from there (if you know the keys), otherwise you can iterate through what is returned by the getKeys method and then get the values that way

wise cape
#
Set<String> keys = config.getConfigurationSection("drop").getKeys(false);
        keys.forEach(key -> {
            System.out.println("-----" + key + "-----");
            Set<String> subKeys = config.getConfigurationSection("drop."+key).getKeys(false);
            subKeys.forEach(subKey -> {
                String value = config.getString("drop."+key+"."+subKey);
                System.out.println(subKey + " - " + value);
            });```
#

There HAS to be a better way lol

#

That's what I just hacked together lol

round finch
#

nvm i will use lore to display instead of item Amount

unreal quartz
#

someone might, but it's the easiest solution to implement

wise cape
#

oof alright

#

Then I can just create my objects there

#

Thanks for the help fella

quaint mantle
#
import time
from threading import Thread
import random
import sys

class WorkerThread(Thread):
    def __init__(self, id):
        self.id = id
        Thread.__init__(self)

    def run(self):
        time.sleep(random.randint(0, int(sys.argv[1])))

threads = []

for i in range(int(sys.argv[2])):
    t = WorkerThread(i)
    threads.append(t)
    t.start()

while threads:
    for t in threads:
        if not t.is_alive(): print('Thread', threads.pop().id, 'completed.')
    time.sleep(1)

print('Completed')
Thread 14 completed.
Thread 13 completed.
Thread 12 completed.
Thread 11 completed.
Thread 10 completed.
Thread 9 completed.
Thread 8 completed.
Thread 7 completed.
Thread 6 completed.
Thread 5 completed.
Thread 4 completed.
Thread 3 completed.
Thread 2 completed.
Thread 1 completed.
Thread 0 completed.
Completed```
wtf
#

am i doing something wrong?

#

it shouldnt keep completing in chronological order

unreal quartz
#

threads.pop().id will always return the last thread in the list

#

so in this case you're not removing the dead thread, but the last one instead

quaint mantle
#

damn my thought process is failing

#

thanks

#
while threads:
    for t in threads:
        if not t.is_alive():
            threads.remove(t)
            print('Thread', t.id, 'completed.')
    time.sleep(1)
#######################################################
Thread 1 completed.
Thread 10 completed.
Thread 0 completed.
Thread 3 completed.
Thread 6 completed.
Thread 2 completed.
Thread 7 completed.
Thread 13 completed.
Thread 11 completed.
Thread 5 completed.
Thread 14 completed.
Thread 9 completed.
Thread 4 completed.
Thread 12 completed.
Thread 8 completed.
Completed
modest oar
#

idk if this works

#

not sure how to get it to run in the public void run()

#

what does entity represent?

#

only living mobs?

#

or just regular blocks

#

nvm its mobs

untold rover
#

Hey, So I have 3 Classes
ExtensionProvider: https://paste.sentinalcoding.eu/km75qCSvR9
ExtensionRegistry: https://paste.sentinalcoding.eu/VI8L6ph7iE
und Extension: https://paste.sentinalcoding.eu/84Zlwj1wy5

and my goal is to make a custom APIExtensionProvider.
keeping it short, using a method (for example getExtension(LuckPerms.class)) I want to get a specific Interface, that Interface should have a method called getPlugin, using that I want to get an Instance of the needed API (in this case LuckPerms)

I am guessing I need to use Generics for that, and I have never worked with them so I need some help.

I made that ExtensionRegistry which I can basically add to a Arraylist and if the class matches a specific generic, using the Get method it would return a Extension<LuckPerms>.

but I am not sure if this is correct and if that is a good way todo it, I want the system to be very expandable but I want it to be also custom.

modest oar
#

alr last question

#

would this work

#

public boolean onBlockBreak(BlockBreakEvent event) {
Player player = event.getPlayer();
player.getWorld().spawnEntity(player.getLocation(), EntityType.CREEPER);
return true;

#

why is there a return true?

untold rover
#

you dont need it, you can change boolean to void and remove the return true

modest oar
#

oh right

#

its supposed to be void

#

mb

modest oar
untold rover
#

yep

modest oar
#

thx

sick ravine
#

EntityDamageByEntityEvent don't work for minecart

worldly ice
#

So i have a question:
I'm trying to make a plugin where you right click an item, and the block you're looking at becomes let's say stone.
The problem is, I don't want to replace the block, I want something like right clicking with a stone block on another block. So, like "placing" a block. Is there any way to do this? Thanks!

quaint mantle
worldly ice
#

so like

#

when u place a block

#

i want to get the position of the placed block

#

without placing it

#

does that help?

sick ravine
#

BlockFace?

#

PlayerInteractEvent

quaint mantle
#

uhhhh

sick ravine
worldly ice
#

mhm

sick ravine
#

Block blockR = event.getClickedBlock().getRelative(event.getBlockFace());

worldly ice
#

ok I will try that

quaint mantle
#
@EventHandler
    public void onClick(PlayerInteractEvent event) {
        if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
            if (event.getItem().getType().equals(Material.AZURE_BLUET)) { // < Change to Material of Choice
                Block block = event.getClickedBlock().getRelative(event.getBlockFace());
            }
        }
    }
#

try that.

modest oar
#

is it supposed to be spawnentityevent?

round finch
#

missing ```@EventHanlder

quaint mantle
#

Wheres the @EventHandler

modest oar
#

wait

#

do there have to be two @ event handler?

#

s

quaint mantle
#

Yes!

modest oar
#

holy crap

#

alr thx

limber dust
#

you need @EventHandler above all event methods

modest oar
#

thank you

round finch
#

yes

quaint mantle
sick ravine
#

re:
EntityDamageByEntityEvent don't work for minecart

how to get a minecraft hit event?

quaint mantle
#

Well. What Version, 1.16?

sick ravine
#

yes

round finch
#

VehicleDestroyEvent?

quaint mantle
#

try one of these

#

Actually VehicleDamageEvent.

sick ravine
round finch
#

i should send doc instead xD

round finch
quaint mantle
#

Yep!

sick ravine
#

the point is that they made dedicated Events for vehicles, probably because someone might be in the vehicle*

#

thanks for the help ❤️

sick ravine
#

-. -

worldly ice
#

thanks to u too

quaint mantle
#

Glad to help!

round finch
#

Note: i also saw someone claim that Entity#getLastDamageCause() is possible with a Entity Vehicle

worldly ice
#

It's firing twice though, even when I return if the hand is the offhand

quaint mantle
#

Could I see your code?

worldly ice
sick ravine
#

I was destroying vehicles and listening to EntityDamageByEntityEvent, HangingBreakByEntityEvent and it detected nothing

worldly ice
#

the debug is saying HAND twice

sick ravine
#

PlayerInteractEvent is performed by pressing and unpressing the mouse

#

(as far as I know)

quaint mantle
sick ravine
#

what is the inverse of "press" in english? xD

quaint mantle
worldly ice
#

i did more testing and it seems like when i right click the air it only fires once

wet breach
#

push @sick ravine

#

or pull

#

I mean XD

sick ravine
#

um

#

okey

wet breach
#

well if you press something, you are also pushing it

#

so the inverse is pull

sick ravine
#

"pull the mouse" it looks strange in my mother language. ;_;

wet breach
#

lol, what are you trying to describe?

quaint mantle
#

yes, lets"push the mouse"

hasty lynx
#

Hello! could you help me how to create inventory pages please?

quaint mantle
#

@worldly ice it fires for both hands

#

so make a check for what hand

worldly ice
#

i already did a check

quaint mantle
#

alrighty

worldly ice
#

it seems like it only fires twice when i right click a block

quaint mantle
hasty lynx
#

I don't need plugin I'm making a plugin and I need how to make pages in inventories and I haven't found anything to help me.

sick ravine
#

or learn to program in spigot

quaint mantle
#

That's low key a cool plugin

sick ravine
sick ravine
#

||we can't do everything for you*||

quaint mantle
#

Then you can make it so when you click on an Item it opens another inventory by creating another inventory. Scratch that. Use one of the API's/ Libraries at the bottom of the link @sick ravine sent.

wet breach
#

@hasty lynx pages work by either re-using the same inventory window and you just remove the old items and put in the updated items in the so called next page or you create a new inventory window

#

Then it is just a matter of choosing which slot to put your previous and next buttons and listen for clicks on those slots

quaint mantle
# hasty lynx Hello! could you help me how to create inventory pages please?
wet breach
#

another solution use these ^

#

and don't bother making your own boilerplate code for this 😛

quaint mantle
#

Exactly unless you know java and the spigot api pretty well. It will be to complicated for you at this very moment.

wet breach
#

well its not too complicated

#

the complicated part is when you try to implement checks to prevent duping XD

quaint mantle
wet breach
#

sure, so I mean its situational in that term

#

overall making a GUI inventory, isn't all that difficult in itself. Super easy to get that to happen. The hard part is implementing protection checks to prevent certain things from happening which most gui inventory plugins don't do lol.

quaint mantle
#

That's definitely true. I see what you mean.

#

bruh I couldn't spell definitely for what ever reason lol.

wet breach
#

really the cause of most duping that happens on servers too. But, unfortunately when it comes to the free plugins you take a gamble I suppose

quaint mantle
#

Yep unless you make it you self haha

quaint mantle
#

🤭

sick ravine
#

Hey, I want a plugin that will be an advanced item shop, unfortunately there is no one for free, can someone help me make the entire plugin?

wet breach
#

there is chest shop

quaint mantle
#

||I think he was being sarcastic||

wet breach
#

lol

sick ravine
#

||I think so too||

quaint mantle
sick ravine
#

can i pay in venezuelan bolivars?

quaint mantle
#

||oh and if you think as a plugin dev you should be paid by the hour, you are dumb.||

worldly ice
#

ok well i figured out that it only fires twice when placing the stone blocks

torn shuttle
#

Lol aternos removed my plugin

worldly ice
#

not sure why but

#

its something

quaint mantle
#

bruh that currency is inflated. 100USD = 24821000VEF

sick ravine
#

I will pay you 20000VEF

wet breach
#

I have been paid by the hour before for programming

quaint mantle
wet breach
#

usually I will do an hourly rate if its something super easy but will take a couple of hours

#

But hourly rate isn't based on project rate though

#

if you do that you are dumb XD

#

you can have those two things separate

quaint mantle
# wet breach really depends for this

I should of specified, meant like a commission. Commission should be flat rate and time should be included in the price, depending on the size of the project.

wet breach
#

I agree

#

I was just saying if its something super easy, I don't bother with commission rate was all

round finch
#

do people teach? 🤔

quaint mantle
#

yeah yeah. like I made a plugin for some one where you could place water in the nether. Took me like 5-10 mins and made $5 lol and 5 stars.

wet breach
#

@round finch sometimes

round finch
#

i would consider paying someone to teach me stuff

quaint mantle
#

like? NMS?

round finch
#

for now it is just a thought

#

idk what the price is for some people

#

and their skills

wet breach
#

Some of us here, are up there on the ladder in terms of skills. But it really depends what exactly it is you are wanting to be taught

round finch
#

maybe Nms and packets

wet breach
#

if you are talking about Java, there is already great courses out there for free and paid

sick ravine
wet breach
#

You can learn about packets with a generic Java course on networking btw

#

Minecraft packets are not special

round finch
#

java networking hmm 🤔 nice

wet breach
#

we only refer to the minecraft packets because there is a protocol or better termed a standard in how the packets for minecraft are structured

round finch
#

i know they change that stuff for each update maybe

wet breach
#

They do sometimes. Sometimes it is just a minor change some where and thus a bump in protocol version lol

quaint mantle
#

That will be your best friend with protocol

wet breach
#

But I mean learning about packets in general is going to be more beneficial for you in the long run then justt learning minecraft packets

#

because packets for everything are pretty much the same, only difference is how the data in said packet is laid out

#

most packets have their own numbering system so you already know from the start what kind of packet it is. Thus, determine do you really need to dig through the packet for data or not. An example would be, maybe a packet with 01 in the header means it is just a ping packet. Only thing it might have in it is something useless like hello or helo

#

really didn't need to decipher the packet for that at all XD

quaint mantle
wet breach
#

easiest way to learn about packets

#

is to setup a simple chat server and simple chat client

#

running from the command line

#

and then just practice sending messages back and forth by using packets only 😉

#

Not hard to find a decent Java course on networking and how to create a simple chat server/client to do this

#

its like what, at most 50 lines of code for the server and maybe the same with the client. Just depends how you choose to go about it really and which protocol standard you want to try to use

#

IE, TCP or UDP

#

or maybe some other protocol standard

#

minecraft uses TCP just fyi

quaint mantle
wet breach
#

why do they always include /IP -.-

dusty herald
#

TCP/UDP* DogKek

wet breach
#

IP is the most upper protocol where almost all protocols are derived XD

quaint mantle
#

lol idk

wet breach
#

watching it

#

so I can determine how good it is

quaint mantle
#

same

#

very easy to understand

dusty herald
#

frostalf how have you been? Haven't seen you around for a few months

wet breach
#

Yeah, took time off from the internet kind of

#

just had way too much going on XD

dusty herald
#

understandable

wet breach
#

@quaint mantle ok I watched it. It is a decent video to recommend someone watching to possibly get a little bit of understanding of how IP works. Didn't really describe TCP though ironically.

quaint mantle
#

Yeah. Noticed that

wet breach
#

@dusty herald what is the song in that video?

#

can't remember what it is XD

#

need to add it to my playlists so I don't lose these old great songs >>

dusty herald
#

I feel good - James Brown

wet breach
#

real Pop right there with some jazz mixed in

#

hate the new pop of today XD

#

Thanks

quaint mantle
#

LMFAO forgot about that video

minor knot
#

i'm trying to set an Item(the entity)'s customName to something like {"translate":"item.minecraft.egg"}, so the client will automatically translate it
but apparently spigot translates that into something like that in the image
is there a way to bypass this without nms/packets?

#

this problem also somehow happens with sendMessage/sendRawMessage

wet breach
#

how are you attempting to do this?

minor knot
#

i set the customName to

ComponentSerializer.toString(
    TranslatableComponent(
        ItemHighlight.localeManager!!.queryMaterial(
            item.type
        )
    )
)

the string it returns is correct
i verified it by literally telling the server to send a tellraw command
and it worked

#

(note that i did check if localeManager is null)

wet breach
#

Not entirely sure then. But there is API methods for setting entity names though without using the text components

minor knot
#

without using the text components
ComponentSerializer.toString(component) translates the component into a string

wet breach
#

do you have no other way other then using toString? o.O

minor knot
#

again, i verified that the toString is doing its job
i sent a tellraw with something like this

Bukkit.dispatchCommand(
    Bukkit.getConsoleSender(),
    "tellraw " + player.getName() + " " + ComponentSerializer.toString(it) //"it" is the component
)

and it actually got translated by the client

#

i listened to the packets sent by the server to see what exactly the server sent to players
up: tellraw
down: sendMessage
(both taking ComponentSerializer.toString(it))

wet breach
#

would appear this is something gson is doing

quaint mantle
#

yo

#

where tf you been

#

havent seen frostalf in decades

wet breach
#

everywhere and nowhere 🙂

quaint mantle
#

lurker

wet breach
#

Not entirely sure why gson might be doing that @minor knot but the '\' is generally an escape character. Maybe there is something wrong with your json format that might cause gson to think characters need escaping?

minor knot
wet breach
#

even so gson is what handles all the component stuff behind the scenes mostly though. I can't see anything in the bungee API that would cause this other then it gets ran through gson's api methods

#

bungee chat api*

minor knot
#

but like, i used tellraw to send ComponentSerializer.toString(it), and it worked
that should verify that ComponentSerializer.toString(it) is correct :/
further more, sendMessage(ComponentSerializer.toString(it))
sent that problematic/weirdly-escaped message to players
so the sendMessage() must had done something to the string

wet breach
#

Well sendMessage isn't part of the bungee chat api

#

instead of using toString, could you just send the TextComponent to SendMessage?

#

think you are able to do that, I don't mess with text component stuff all that much. And first time actually seeing this problem lol

minor knot
wet breach
#

well not sure if you can do that with Text Components or not. Minecraft doesn't just magically translate whatever you put in there.

#

I am sure that is something possible to do. But if you are asking if there is such a plugin out there for download. I doubt it but I really have no idea as this isn't really a common thing people seek out lol.

minor knot
limber dust
#

you'll need to do it yourself

restive mantle
#

How can I make a block activate normally? Setting the block data seems to break the piston properly moving the block above it

limber dust
#

i mainly say that cause i don't think anyones does this in this discord

#

there is a section on the api that shows you the java code you will need

quaint mantle
#

how would you modify the text of a BaseComponent or TextComponent but keep the original modifiers? I just want to change the message is all but keep the fancy little colors and what-nots

wet breach
#

yes you can

#

however, there is a limit in where it will just register as block of air

quaint mantle
#

any ideas Frosty?

wet breach
#

No, because I don't mess with that stuff all that much

quaint mantle
#

thank u good sir

wet breach
#

I generally stay away from chat related things. Too much of a hassle

#

and I just like plain and simple

dusty herald
#

DogKek you're telling me, I'm forced to fuck with the raw json to get what I want

#

shit aint fun

wet breach
#

lol

#

this should help you out. That is the repo for the chat api stuff that the spigot server uses

outer sorrel
#

are hackers able to make the server think they are sprinting when they are not so that isSprinting is true but they arnt?

chrome beacon
#

Probably, I wouldn't worry about it though

limber dust
#

as long as they toggle sprint (double tab w, or press their sprint key) the server will always think they are sprinting

#

if that helps

#

so in context if a hack client made the player use sprint by normal minecraft standards and just increased walk speed yes the server will read they're sprinting

outer crane
supple elk
#

Hey guys, I asked this yesterday but didn't really get an answer

minor knot
outer crane
supple elk
#

I'm making a lobby system for a minigame. I have an abstract class called Lobby and then any game I make will have a class which extends from that. So for example if I have ExampleGame I'd also have ExampleLobby. The purpose of this is so that say ExampleGame has a bunch of kits, and I want to allow players to select kits whilst in the lobby. In my extended class I want to override the playerJoin() method and give them items

#

I'll post the classes now

minor knot
outer crane
#

Still doable with adventure iirc

supple elk
outer crane
#

if not on paper/its forks you need to also use a LegacyComponentSerialiser

supple elk
#

My current issue is that in the parent class (Lobby) I call playerJoin() and pass in the creator of the lobby

#

however the items I want to give the player in the playerJoin() method have yet to be initialised

#

as I initialise them in the child class constructor, which happens after the super constructor has been called

minor knot
supple elk
#

any suggestions on how I could resolve this would be great

sullen marlin
#

@supple elk you shouldnt be doing actual game logic in the constructor

#

move it afterwards to a new method

supple elk
#

wdym?

#

when am I doing game logic?

sullen marlin
#

well giving things to a player is game logic

#

constructors only serve to construct the object

#

giving items to a player is not what a constructor is meant to do

supple elk
#

ok

#

ok so I still need to add the creator the list of plaers when the lobby is created

#

so if I were to separate that into something like an init() function which I then call at the end of my constructor

#

actually yeah that makes sense

#

I could then overide that in the child class

#

yeah this is perfect

#

cause I can now add stuff before the parent init() method

#

ty @sullen marlin

sullen marlin
#

np

supple elk
#

actually

#

one last thing

#

doing it like this means that I can't make it a final field?

sullen marlin
#

you can probably move that stuff up into the constructor

#

(the compass init)

supple elk
#

well that's the thing I can't

#

this is the problem I was having earlier

#

in my parent constructor I call the method addPlayer()

#

as I want to add the creator of the Lobby to a list of players who are in the lobby

#

the addPlayer() method gives the player items in the child class

#

but the items haven't been initialised yet

#

as the super() constructor has to be the first thing which is called

#

so if I had ```java
Child {
super() //super calls addPlayer()
//initialise items
}

addPlayer() {
//give player items
}```

#

then I think the problem becomes pretty clear

sullen marlin
#

yes you need to split it

#

constructors calling this methods is bad practice

#

call addPlayer manually after new Child

supple elk
#

ugh

#

right okay

eternal oxide
#

new Child().addPlayer()

sullen marlin
#

netbeans warns about code that looks like your example

supple elk
#

kk

#

I don''t know what netbeans is .-.

#

anyway ty for the help

summer scroll
queen dragonBOT
summer scroll
#

I'm guessing you using PlayerInteractEvent?

oak mica
#

no

#

wait yes

#

i do use

onyx shale
#

wut? if (ItemManager.metatype == "launchplayer"){

summer scroll
#

Yeah, you don't compare string using ==, but use .equals() or .equalsIgnoreCase() instead.

onyx shale
#

im mostly poiting about the logic there

#

a static field?

oak mica
#

ok

onyx shale
#

whats ItemManager

oak mica
#

item manager

#

i use metatype

#

so ability changes

onyx shale
#

pastebin..

#

and dont ommit things

oak mica
#

right yh

#

?paste

queen dragonBOT
oak mica
oak mica
onyx shale
#

so currently metatype can be only launchplayer?

onyx shale
#

then you didnt post

#

...

oak mica
#

when you shiftrigcht click, lore and metatype is supposed to change

onyx shale
#

but you know this is global right?

#

if you create lets say 3 items and change the metatype

oak mica
onyx shale
#

only the last one will remain

oak mica
#

ok

onyx shale
#

meaning there will be no more skills

oak mica
#

so?

onyx shale
#

than the last one

#

meaning there will never be 2 cases

oak mica
#

i just want the ability to change

onyx shale
#

but its changing for everyone

oak mica
#

when the player sifht right clicks

onyx shale
#

not 1 person

oak mica
#

ok

#

so hashmap?

onyx shale
#

store the skill name in the item

summer scroll
#

You need to play with PDC I guess, so the ability will be detected each item.

oak mica
#

meaning?

onyx shale
#

what version are you on

#

?

oak mica
#

ok doesnt matter

#

im going ez way

onyx shale
#

this aint it chief

oak mica
#

shiftrightclick = 1 ability

onyx shale
#

in that case yeah

oak mica
#

rightclick = another ability

#

simple

onyx shale
#

more or less..you are avoiding learning new things though

#

PDC is a op feature of the api

#

allowing you to store everything

oak mica
#

well it is too hard

onyx shale
#

inside a item

oak mica
#

and i have no idea abot it

#

plus original idea was using it as separate abilities

#

not swapping between

onyx shale
oak mica
#

this was just a idea

#

l,

#

thanks

summer scroll
#

Basically you can store a variable inside an item for example.

onyx shale
#

thing is pdc will allow you for unlimited skills if you want togo the name way

oak mica
#

it is pretty easy

#

after seeing

#

but i am finding changin lore very hard

#

like it deosnt update

onyx shale
#

well you can always post here for help

oak mica
#

yh

#

but i dont get what to do with lore

onyx shale
#

wich part

oak mica
#

cos right now

#

i make new item

#

and do that

#

since i cant figure out

oak mica
#

to what i want

onyx shale
#

are you sure the code reaches it?

#

debug with a console message

oak mica
#

i dont know tho

#

like how to actually update

#

i dont know how

onyx shale
#

well the code is properly doing it

#

its more of a "can it even get there"

#

type to console before doing it

#

Bukkit.getConsoleSender().sendMessage("Reached");

oak mica
#

it doesnt stay sword

onyx shale
#

well you also set the meta to the sword rather than only the player one

#

ItemManager.sword.setItemMeta(meta);
item.setItemMeta(meta);

#

you change both the global sword

#

and the one in the player inventory

oak mica
#

oh ok

#

player.getInventory().getItemInMainHand().setItemMeta(meta); ?

onyx shale
#

should change the lore

oak mica
#

ok thanks

#

will test it later

supple elk
#

is there an easy way I can order player into the list based on the integer returns by the getKills() function?

#

I know there's a list.sort() but I don't know if that's applicable here

eternal oxide
#

sort or a TreeSet

#

With a TreeSet you can specify a Comparator so it auto sorts.

supple elk
#

how do I use sort?

eternal oxide
#

is getKills() an int?

#

is so, a TressSet would be somethign like Set<MutantMayhemPlayer> treeSet = new TreeSet<>(Comparator.comparing(Integer::getKills()));

supple elk
#

yeah getKills() is an int

quaint mantle
#

Does complex data caches in pdc?

eternal oxide
#

explain?

#

You declare what you are storing and retrieving when accessing the PDC

supple elk
#

isn't removeIf() meant to be a way to get around concurrent mod?

quaint mantle
#

For example, i have uuid complex data type. Every time when i call PersistentDataContainer#get, uuid serializes from primitves?

#

Or is it cached?

eternal oxide
#

no cache

quaint mantle
#

So, its being serialized/deserialized everytime?

eternal oxide
#

from the object in memory yes

#

@supple elk removeIf only implements an iterator so you can remove from the collection you are iterating. it doesn't provide serialization with other code.

#

synchronize on the tickables

supple elk
#

I think it's because I was trying to add an item to the list whilst iterating over it

eternal oxide
#

that would do it

supple elk
#

my solution

eternal oxide
#

you'll want the synchronize the three lines that access toadd

#

as your code its still possible to add and read/clear the toadd collection

#

just needs a synchronized(this.toAdd) {} around the two calls in in tickAll and in your add method

oak mica
#

Please could you help me?

#

I am using a hasmap now lol

#

ok screw it

#

im not doing this

#

Under the name The sword of air, it says combat, how should I remove that?

#

why does no one help

young knoll
#

Leave creative mode

oak mica
#

thanks

minor fox
#

does anyone know which packet is being sent to the client when an armor stand spawns?

lost matrix
minor fox
#

oh ok so PacketPlayOutSpawnEntityLiving?

outer crane
lost matrix
#

EW! Electron

#

But looks neat

outer crane
quaint mantle
#

if (e.getClickedInventory().getTitle())

Why isnt getTitle identified?

lost matrix
quaint mantle
ivory sleet
#

e.getView().getTitle()

#

probably

#

I don’t know what e is though

quaint mantle
ivory sleet
#

okay please use more suitable names for variables like event instead of e

quaint mantle
#

k

#

why is getTitle not identified?

eternal oxide
#

Both 7smile7 and Conclure gave you your answer

lost matrix
quaint mantle
#

It should work, I am doing it the same way as the guy on youtube

eternal oxide
#

Your Youtube video is out of date

quaint mantle
#

Could be that he is doing 1.12.2 and me 1.16.5?

eternal oxide
#

yes

quaint mantle
#

weird

eternal oxide
#

Not weird at all. its called API changes

quaint mantle
#

I dont get it, there is getTitle in javadoc in 1.16.5

#

wtf

eternal oxide
#

You really should read what people tell you.

quaint mantle
#

getView doesnt exist

quaint mantle
#

Intellij tells me someting else : /

eternal oxide
#

Then you are doing something wrong

quaint mantle
#

Thats very probable

eternal oxide
#

my guess is you are trying to get it from the inventory

quaint mantle
#

the question is, where?

lost matrix
eternal oxide
#

view is on the event not the inventory

quaint mantle
#

Ohhhh

#

So i put it before getClickedInventory

#

yea

#

works now

#

thanks guys

#

ok now getClickedInventory is gone 🙄

eternal oxide
#

no its not

quaint mantle
#

It doesnt get identified anymore

lost matrix
quaint mantle
#

package guimenu.guimenu.events;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import sun.jvm.hotspot.ui.ObjectHistogramPanel;

public class ClickEvent implements Listener {

@EventHandler
public void clickEvent(InventoryClickEvent e){

    if (e.getView().getClickedInventory())



    e.setCancelled(true);
}

}

eternal oxide
#

both are from the event, you can;t get the inventory from the view

quaint mantle
eternal oxide
#

Sorry but take some basic java classes on object inheritance

quaint mantle
eternal oxide
#

of course it is

lost matrix
quaint mantle
eternal oxide
#

Inventory is a child of event.
View is a child of event.
Inventory is NOT a child nor parent of view

quaint mantle
#

Well then.

lost matrix
quaint mantle
#

and view is unidentified

eternal oxide
#

he literally gave you the code to access both

ivory sleet
#

Clash of clans is nice tho

#

So is clash Royale ngl (:

eternal oxide
#

I don;t play anything that has micro transactions

ivory sleet
#

I only play micro transaction games

eternal oxide
#

So its your fault games these days are shit 😦

ivory sleet
#

Lmao very well, I’ve come to realize games that does not have micro transactions aren’t as good

eternal oxide
#

To be honest games went to crap when it became all about the money.

ivory sleet
#

Lol feel quite the opposite

eternal oxide
#

Games developed in a bedroom by someone with a real passion for writing games are the best

quaint mantle
ivory sleet
#

Lol I concur

summer scroll
#

for me micro transactions is fine as long it doesn't pay2win

eternal oxide
#
event.getClickedInventory()```
quaint mantle
#

Nevermind, im an idiot

summer scroll
#

it's fine too ig

#

clash of clans isn't pay2play, you can download it for free right?

quaint mantle
#

its free, but later almost impossible to progress without paying

eternal oxide
#

Yeah, those games make it almost impossible to advance at any reasonable rate without paying more

#

Often they run double XP weekends and things of that type.

#

playable during the double XP, then impossible to advance after

ancient plank
#

best paywall is the wizard 101 pay wall

quaint mantle
#

no I just cant

#

wtf

#

OOOOOH

#

NOOO

#

NEVERMIND

#

Alright I did it

rugged topaz
#

does anyone know a good website to go for colored heads of a certain hexa? e.g. need lime head that i can find on namemc

lost matrix
rugged topaz
#

ty

distant fern
#

Hi. I have problem with replacing seeds at place where the weath was. Can someone help?

#

My code is

#
    public void onBlockBreak(BlockBreakEvent event) {
        
       if(event.getBlock().equals(Material.WHEAT)){

           Bukkit.broadcastMessage("test");
           event.setCancelled(true);
           event.getBlock().breakNaturally();
           event.getBlock().setType(Material.WHEAT_SEEDS);

       }
       
    }
}
lost matrix
distant fern
#

can you show me and example/

lost matrix
# distant fern can you show me and example/
  @EventHandler
  public void onBreak(final BlockBreakEvent event) {
    final Block block = event.getBlock();
    if (block.getType() != Material.WHEAT) {
      return;
    }
    final Ageable ageable = (Ageable) block.getBlockData();
    if (ageable.getAge() != ageable.getMaximumAge()) {
      return;
    }
    Bukkit.getScheduler().runTask(this.pluginInstance, () -> block.setType(Material.WHEAT));
  }
#

Didnt test

distant fern
#

Ther is something wrong with pluginInstance

lost matrix
distant fern
#

Shit

#

Im not so into this

lost matrix
distant fern
#

What am i supposed to write?

lost matrix
#

You need an instance of your plugin in your Listener class. Best way is passing it as an argument in the constructor of the Listener class.
Thats very basic Java

ripe coyote
#

Defining the constructor in your listener
public MyListener(JavaPlugin plugin)
and then when you instantiate a new listener in the main class extending JavaPlugin
new MyListener(this)

mystic lion
#

Question, should I either update a mysql table whenever a player gains some virtual currency or cache the data and save it when the player logs off, server shuts down and an interval

quaint mantle
#

caching is always better for mysql

mystic lion
#

Yeah thats what I thought

ripe coyote
#

Can I convince anyone to look through a quick prototype of a plugin before I continue working on it? Would like to build it somewhat smart from the get-go and avoid as many beginner mistakes as possible.

mystic lion
#

What type of plugin is it

ripe coyote
#

It's supposed to let players perform a variety of "spells" through items. Currently only have a leap.

mystic lion
#

Ah

#

Thats kinda cool

ripe coyote
harsh kayak
#
                            loc.setYaw((float) Math.toDegrees(loc.getYaw()+90));```
#

this works in every dir except east

#

and now its returning 2054

#

2053

rotund ravine
#

setYaw, convert already converted yaw + 90 is what you're doing

harsh kayak
#

thats because if the yaw if already 360 then errors arise

rotund ravine
#

Is 90 in degrees?

harsh kayak
#

as in?

rotund ravine
#

As in, is it degrees?

#

Math.toDegrees(loc.getYaw()+90) getYaw is already degrees since you're already converting that, but what about 90?

#

Are you doing math correctly, what is going on?

lost matrix
harsh kayak
#

wut

rotund ravine
#

Look at the delimeters

#

Of what you're doing

lost matrix
#

90 * (360° / 2pi) is around 5150°

rotund ravine
#

Considering he also has the latest Yaw you can add a few hundred potentially

harsh kayak
#

oh im just trying to add 90 degrees

#

the toRadians method didnt work

lost matrix
#

But you are adding 90 radians currently

rotund ravine
#

Well you are not understanding the delimiters

harsh kayak
#

i originally just did loc.setYaw(loc.getYaw()+90);

#

but that didnt work

rotund ravine
#

What is Yaw in, degrees or radians?

paper viper
#

degrees

#

Sets the pitch of this location, measured in degrees.

harsh kayak
#

it returns a float

rotund ravine
#

Adding 90 is what is correct, but you gotta "wraparound"

Gets the yaw of this location, measured in degrees.
A yaw of 0 or 360 represents the positive z direction.
A yaw of 180 represents the negative z direction.
A yaw of 90 represents the negative x direction.
A yaw of 270 represents the positive x direction.
Increasing yaw values are the equivalent of turning to your right-facing, increasing the scale of the next respective axis, and decreasing the scale of the previous axis.
eternal oxide
#

just set it, no need to calculate, the method in Spigot will do that for you

rotund ravine
#

Oh i see nice.

sage swift
#

i remember working with yaw and it worked without mod

#

¯\_(ツ)_/¯

rotund ravine
#

Oh prolly handled when applying onto a player then

eternal oxide
#

what exactly are you trying to do?

#

another wall from an arrow plugin?

harsh kayak
#

yes

#

same thing as last time

eternal oxide
#

was it you doing it before?

harsh kayak
#

as in?

eternal oxide
#

a few weeks back

harsh kayak
#

ye

eternal oxide
#

I'm fairly certain I gave you a fully workgin class

#

?paste

harsh kayak
#

was that the one wich i said didnt work and just built a 4 high pilar

queen dragonBOT
eternal oxide
#

that works 100% tested

lyric grove
#

im trying to make a gui

#

its not working when i get the lore

sleek pond
#

your doing a super constructor

#

you can't reference anything

#

make one of the constructor parameters be disabled lore

#

a string

#

and then put that as the super

stark linden
#

Intellij is telling what you have to change , you have to make an Super Constructor.

lyric grove
#

thanks

paper viper
#

its cause the variable is initilized after the super call

ivory sleet
#

Also wrong naming convention

sleek pond
#

lol

paper viper
#

it aint a constant

#

also seeing atomic integer

#

worries me in that function

#

lol

ivory sleet
#

He probably uses it as an effective final variable in a lambda function

gritty urchin
#

How would I get the yaml key length of a certain value?

#

e.g

#
 Value1:
 Value2:
#

Would be 2

paper viper
gritty urchin
#

How would I get all of the keys.

paper viper
#

YamlConfiguration?

eternal oxide
#

getValues(true) gets you the map from that path

#

from there you can get the keySet and check its size

gritty urchin
#

Ok thank you

eternal oxide
#

or getKeys(path)

#

both will work

harsh kayak
#

it didnt work

eternal oxide
#

it works for me

#

shoot an arrow and it builds a wall 2x3 where the arrows lands

harsh kayak
#

it builds a 311 pillar from the player

#

oh wait no

#

it just doesnt turn

eternal oxide
#

not the code I just gave you doesn't

harsh kayak
#

the wall was in the ground because the arrow hit the ground

eternal oxide
#

shoot a tree

harsh kayak
#

i tried shooting a block and it faces in a strange dir

eternal oxide
#

show the code you are using

lyric grove