#help-development

1 messages · Page 355 of 1

river oracle
#

It's a solid fry

tender shard
#

Haha

#

Nice

#

Anyway, i am german. We invented potatoes

#

We also invented hitler, so i better shut up

river oracle
#

I'm American we invented everything good

tender shard
#

Except cars

#

And rockets

#

And atomic bombs

#

And the internet

worldly ingot
#

They're mid

tender shard
#

I think you‘re going to lose this discussion

river oracle
#

I don't need your shitty opinions

tender shard
#

Go home miles, you‘re drunk, everything nice was invented by non-muricans.

Cars & rockets = german
Internet = english
Maple syrup = canadian

#

Nothing left to say

river oracle
#

Culvers = Wisconsin

#

All ima say

tender shard
#

Fried were invented in belgium

river oracle
#

Clearly you are drunk

#

I don't discuss serious topics with people so drunk as you

tender shard
#

Fries were invented by a german dude in belgium

river oracle
#

I was gonna say well Germany invented Hitler but they didn't even do thay 😭

#

Guy was Austrian

tender shard
#

Fun fact: WW1 started because an Austran dude got shot.
WW2 started because an austrian dude did NOT get shot

river oracle
#

Damn Austrians

tender shard
#

Yeah

#

Heres a pic of my spigot btw

#

Do you like it?

river oracle
#

My spigot is better

tender shard
#

D:

river oracle
#

I'm in bed so I can't show you though

tender shard
#

Dw

river oracle
#

Just trust me

tender shard
#

You can send a pic tomorrow

restive elm
#

How do you use Display Entity in Spigot API? there's no google results (Minecraft 1.19.4)

worldly ingot
#

Spigot doesn't do snapshot releases

#

You'll have to wait until 1.19.4 to do anything with them

restive elm
#

ahh

#

thank you

#

when do you guess will it be released?

worldly ingot
#

Whenever Minecraft 1.19.4 releases at least lol

#

Mojang hasn't given an estimate yet ¯_(ツ)_/¯

restive elm
#

ahh

#

oh wait

#

then in maven, why it has "SNAPSHOT"? like

#

1.19.3-R0.1-SNAPSHOT

worldly ingot
#

That's just naming convention for Maven projects

#

No correlation to Mojang's snapshot terminology

restive elm
#

ahh

#

maven weird

restive elm
tender shard
#

go troll somewhere else

#

here you can troll as much as you want ^

worldly ingot
#

I mean he just seemed curious lol

#

We get people ask for unreleased versions from time to time. Gotten more prominent ever since Fabric picked up given they do snapshot releases

tender shard
#

true, but they kept asking about 1.19.4

#

seemed scammy to me

#

people should know that there is no 1.19.4

#

if there's no client version for XXX, there sure as hell won't be any spigot version for it

#

also I blocked that person weeks ago because this isn't the first time they tried to annoy people

quaint mantle
#

Is there a way to connect data in proxy server? ( Only Can Mysql?)
I want to send config's data to another server Is it possible?

wet breach
# restive elm maven weird

Snapshots technically refers to test builds. But not everyone uses maven profiles to distinguish between snapshot and releases and if you dont just easier to just use the default which it appends snapshot.

wet breach
#

This happens when they fix something in the client but nothing needed to change with the server

#

There is only a handful of versions where this has happened

brave sparrow
#

They just thought spigot had api for snapshots

tender shard
#

hm idk

rough drift
#

06a is an amazing snapshot

remote swallow
rare flicker
#

i'm trying to have maven handle the version incrementing for me using the Build-Helper plugin.
what i have so far is three profiles which respectively (are supposed to) increment patch, minor, and major versions
but whenever i run a mvn validate, the version is simply not updated (but it shows in the lifecycle)

what should i check for first?

#

(i can ofc send my pom.xml)

buoyant viper
vague swallow
#

Which Event gets triggered if a player changes the selected item in the hotbar?

vague swallow
#

Thanks!

zealous osprey
#

Does someone have any idea why my code isn't adding the "durability" aspect to the ConfigurationSection?
And yes, the bool is true, I quadruple checked. And there are no errors in the console

hybrid spoke
#

either you didnt save or nbtData is empty

zealous osprey
#

The customItemConf obj is instantiated in the following way:
YamlConfiguration customItemConf = new YamlConfiguration();

quasi flint
#

did u save after that?

hybrid spoke
#

also it looks like the yml is an old version

quasi flint
#

after the write

zealous osprey
#

I do, that's why there's something in the config at all

hybrid spoke
#

since you are expecting lowercase

#

but the material is uppercase

quasi flint
#

best guess is durability is somehow null

remote swallow
zealous osprey
quasi flint
#

can you give the return value from getDurability

zealous osprey
hybrid spoke
#

but you dont load it from the file again dont you?

quasi flint
#

make sure its not nukl ig

zealous osprey
#

one sec, gotta check smth. The material shouldn't be uppercase, yet it is?

hybrid spoke
undone axleBOT
zealous osprey
#

gimme sec, wanna check something really quick.

remote swallow
#
ConfigurationSection section = FileConfiguration.getConfigurationSection()
section.set("among", "us")
// save the config
#

?configs

undone axleBOT
remote swallow
#

all explained

zealous osprey
#

ik how they work, it's rather the issue of everything works, except if it's key is "durability", then it just doesn't

#

ok fixed it, there was an issue with the server suddenly not using the correct plugin, ause a jar was created, server registered it, then it got deleted again.

quaint mantle
#

is there a way to check if villager job is priest?

vague swallow
#

yes

#

.getVillagerProfession()

quaint mantle
#

Oh Yeah I know that method

vague swallow
# quaint mantle Oh Yeah I know that method
Villager myVillager = ...;
if (myVillager.getVillagerData().getProfession().equals(Villager.Profession.PRIEST)) {
    // The villager is a priest
} else {
    // The villager is no priest
}

quaint mantle
vague swallow
quaint mantle
#

Oh That's work but still don't find priest enum

vague swallow
#

oh wait I got it

quaint mantle
#

Okkay

vague swallow
#

It's

if(myVillager.getProfession() == Villager.Profession.CLERIC)
#

@quaint mantle

quaint mantle
#

Ohh

#

you're my savior

vague swallow
quaint mantle
#

Ohhh

#

it was same name

vague swallow
#

XD

quaint mantle
#

haha

vague swallow
#

yeah

vague swallow
#

There is a fuction for the spectator gamemode to highlight all players. How's that function called and is there a way to use it for other gamemodes? So technically to highlight all players for specific players?

hardy pollen
#

i really want to make npc player just use nms please not citizens

#

hi?

round finch
#

yo that is cool
you can save config selection :woah:

#

the more you know

shut mauve
#

Hi everyone,
All my NMS villagers don't spawn in the first launch of my local server, but only after a restart... There's only half of them at the first launch... Does anyone knows why ?

eternal oxide
#

spawning too early before the worlds have finished loading

shut mauve
eternal oxide
#

don't spawn in onEnable

shut mauve
#

I've got 2 villagers in one side, and two others in the other side

eternal oxide
#

you need to make sure the chunk is loaded, if not load it. When the chunk is loaded spawn your NPC.

mild violet
#

is here a good place to ask for help for a minecraft Maven Plugin? (regarding dependencies like craftbukkit and such)

eternal oxide
#

Don't depend on craftbukkit anymore, depend on Spigot

alpine swan
#

does getnearbyentities detect all areas of a bounding box or only the centre of an entity

eternal oxide
#

all areas

alpine swan
mild violet
#

more precise, this import: import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer;

remote swallow
#

?nms

icy beacon
#

please help me simplify this god forsaken code

if (UnderscoreKillstreaks.killstreaks.stream().anyMatch(ks -> ks.getUuid().equals(uuid.toString()))) {
    final int kills = UnderscoreKillstreaks.killstreaks.stream().filter(ks -> ks.getUuid().equals(uuid.toString())).findFirst().get().getKills();
    UnderscoreKillstreaks.killstreaks.removeIf(ks -> ks.getUuid().equals(uuid.toString()));
    UnderscoreKillstreaks.killstreaks.add(new Killstreak(uuid.toString(), kills + 1));
}
#

i believe it can be simplified

tardy delta
#

dont do anyMatch

hybrid spoke
#

ifPresent

tardy delta
#

and dont do Optional#get

frank kettle
#

Why not use plain a hashmap which stores that?

tardy delta
#

and dont expose collections

icy beacon
icy beacon
icy beacon
hybrid spoke
#

simplify isnt the right keyword here

#

you gotta optimize that

#

you are iterating three times over the same collection

tardy delta
#

youre doing two streams instead of one

icy beacon
#

yeah

#

that's why i'm trying to simplify it 😭

tardy delta
#

equivalent of checking map.contains and then map.get

hybrid spoke
#

if (UnderscoreKillstreaks.killstreaks.stream().anyMatch(ks -> ks.getUuid().equals(uuid.toString()))) { final int kills = UnderscoreKillstreaks.killstreaks.stream().filter(ks -> ks.getUuid().equals(uuid.toString())).findFirst().get().getKills(); UnderscoreKillstreaks.killstreaks.removeIf(ks -> ks.getUuid().equals(uuid.toString()));
all of this could be a single removeIf

tardy delta
#

work with java Optional<SomeData> data = killStreaks.stream().filter(ks.getId()::equals).findFirst(); if (data.isPresent()) { int kills = data.getKills(); // }

icy beacon
#

i guess i could indeed combine anymatch and removeif

#

but removeif is a boolean, doesn't return kills like remove does

icy beacon
#

ty

hazy parrot
#

There is also Optional#orElse if you want for example to default kills to 0 if not present in collection

tardy delta
#

his optional returns some holder for the kills, not the kills itself

hazy parrot
#

Oh, didn't notice, nvm

hybrid spoke
#

but looking at that a map would be the simpliest

round finch
#

then i see that java guava
I'm always baffled

icy beacon
#

i did refactor it to a list because 1) i might expand the killstreak class at some point 2) it's more convenient for me to use a class everywhere else

hybrid spoke
#

so map the killstreak class to the uuid?

icy beacon
#

oh that's actually a good idea

#

yeah it works much better

#

thanks for the idea

round finch
#

teach me the magic of java guava

#

what is the magic source

tender shard
#

that code is not good for my blood pressure

#

134/80

icy beacon
#

btw

#
try (final Reader reader = new FileReader(killstreaks)) {
      final Type type = new TypeToken<Map<UUID, Killstreak>>() {}.getType();
      UnderscoreKillstreaks.killstreaks.putAll(gson.fromJson(reader, type));
    } catch (final IOException e) {
      e.printStackTrace();
    }
#

can someone explain this code to me

#

particularly the second line

#

i'm trying to figure out how it works

#

copilot suggested it to me

tender shard
#

the second line creates a new TypeToken<Map<UUID,Killstreak>>

icy beacon
#

yeah but i'm a bit weirded out by the syntax, maybe i'm just sleepy, why are there curly brackets lmao

tender shard
#

the curly brackets are there because it's a new anonymous class

#

one second

#
SomeClass myObject = new SomeClass();

this is the normal way to instantiate a new SomeClass

#

but

#

you can ofc also just create a "new class on the fly":

#
SomeClass myObject = new SomeClass() {
  // Override some methods here
}
#

you are doing this ^ except that you do not override anything

icy beacon
#

oh yeah that's true, but typetoken has no methods that must be overridden?

#

that's why

#

thanks alex haha

tender shard
#

you could just remove the { } part I guess

icy beacon
#

i cannot

#

ngl this is my first time seeing this type of syntax

tender shard
#

huh weird

#

but gson is weird all the time, so it's nothing unusual lol

icy beacon
#

lol

tender shard
#

my squid is almost done

tardy delta
#

🦑

icy beacon
#

ok i kinda see why i'm creating this abomination

#

so if i had to deserialize one class i'd just go with

gson.fromJson(reader, Killstreak.class);
#

but i am deserializing a map

#

and it's weirder

#

lol

tardy delta
#

cant you use the Files static methods instead of using a filereader?

#

Files.readString and writeString

tender shard
#

erm is spigotmc's 2fa broken?

#

I just enabled 2fa by app, then logged out and logged back in, and it didnt ask for any code lol

#

does it work for anybody else?

eternal oxide
#

I avoid 2fa when possible

tender shard
#

I got 3 yubikeys, they demand to be used

#

i got 2fa enabled everywhere

#

slytherin

urban mauve
#

anybody knows how i can get block under targeted? my zombie looking at Y:65 and i wanna get Y:64

Block blockY = block.getLocation().subtract(x, y-1, z).getBlock();

not works?

eternal oxide
#

getLocation().getBlock().getRelative(BlockFace.DOWN)

tender shard
#

that won't work

urban mauve
#

hm

tender shard
#

just substract 0, 1, 0

#

instead of x, y-1, z

#

or do what elgar said

urban mauve
#

okay, gonna try it
works, thanks

tender shard
#

np

#

you previously substracted the x,y,z value "from itself" so you basically always just got the block at 0,0,0

quaint mantle
#

hello how can i report server for using cracked plugins?

eternal oxide
#

Ther is no authority

#

If it's your plugin you can sue

zealous osprey
#

Has anyone here ever tried changing the method body of a foreign method? As in, having a library where you want to change a small detail, therefore need to change a method body.
If so, how did you go about doing so? Cause I'm currently trying to inject some code via javassist, but it doesn't work.
Any info or help would be greatly appreciated.

echo basalt
#

I'd just extend the class and inject it?

#

unless it's static

zealous osprey
#

To give some context:
I'm currently developing an addon for a different plugin. One which I cannot or rather whos jar file I don't want to change.
I would extend it, but it would not do what I need from it. Therefore I'm trying to inject some code, which is currently not working.
If someone pings me, I'm gone for a while, so don't expect an immediate answer.
Edit: Found a fix for this.

urban mauve
#

can i make repeating timer inside run() method?

tardy delta
#

what run method

urban mauve
tardy delta
#

first of all, dont instantiate bukkitrunnables but use the scheduler

#

and yes you can nest runnables

midnight shore
#

Hi, how can i change the wood type of a block in spigot 1.8.8? Like i have a WOOD block but i want it to be specifically SPRUCE planks

quiet ice
#

set the damage

#

ah, block

#

?jd-s

undone axleBOT
midnight shore
#

What am i supposed to learn from javadocs? xD

quiet ice
#

Both methods were removed since then however so they are likely only available on 1.12 and before

midnight shore
#

Thank you

exotic pumice
#

how do i convert uuid object into the 4 integers stored in nbt?

quiet ice
#

UUID#getMSB and UUID#getLSB

#

Then get the MSBs and LSBs for both the MSB and LSB (giving you 4 ints in total)

#

I am not too sure why one would store an UUID as 4 ints anyways

#

But if the NBT spec demands it, you are kinda forced to - whether it is sensical is a nonsensical question

scarlet moat
#

Im trying to create custom enchantment, but i get error, here is the code:

undone axleBOT
scarlet moat
#

Spigot 1.12.2

#

yes

#

done

#

int id

#

How then can i create custom enchantments?

serene sigil
#

hi, is there a built in method to get the player face as an image? (like the one in tab)

chrome beacon
#

No

serene sigil
#

how could i acheve this (im trying to save the online players name and face in a db)

#

namemc api?

chrome beacon
serene sigil
#

cool! tysm

serene sigil
opal juniper
#

its an api OMEGALUL

#

like REST

serene sigil
#

oh

#

oh now i understand... this is actually very cool tysm!!

untold jewel
#

When making a custom strength enchantment, should I use EntityDamageByEntityEvent, EntityDamageEvent or PlayerItemDamageEvent. The enchantment is only available for swords but it should apply when hitting other entities like sheep and zombies, not just players.

chrome beacon
#

EntityDamageByEntityEvent

untold jewel
#

Ok thank you

onyx fjord
#

which bungee event is first fired when client connects and is accepted

chrome beacon
#

?jd-bc

frank kettle
#

well, you can use ServerConnectEvent depending which type of connect you want

onyx fjord
#

ye im looking at it rn

frank kettle
#

that event is called when it starts connecting, not when its successfully connected

#

not sure which u want

onyx fjord
#

the one before deciding a server to connect to

#

or actually that one

#

the one that decides where to connect

frank kettle
onyx fjord
#

ye seems perfect

mortal hare
#

have anyone used gradle for setuping multiproject builds?

#

is there any way to setup subproject name without renaming it from rootProjects settings.gradle file?

untold jewel
#

How would I modify the damage in EntityDamageByEntity event?

worldly ingot
livid dove
#

Im asking here as it seems more of a common sense thing for the dev lads than a typical server owner. What does this particular catch mean?

#

There are "too large of a y axis movement" etc but the wording of "impossible" gives me pause

remote swallow
#

i would guess its like passing through blocks or moving way way to high way y value

cobalt thorn
eternal oxide
#

null at whatever is ListenerDrugs.java:80

cobalt thorn
eternal oxide
#

split it up but I'd guess Config is null

cobalt thorn
#

im sure

#

i already debuged it

eternal oxide
#

Then getItemMeta() is nullable. you never check it

cobalt thorn
eternal oxide
#

yes

#

AIR has no ItemMeta

#

so your other empty hand

remote swallow
#

hasItemMeta

cobalt thorn
tardy delta
#

just check if itemmeta is null cuz hasItemMeta does some bs you dont need

remote swallow
#

hasItemMeta returns true if it has modifiy-able item meta

#

i think

tardy delta
pseudo hazel
#

does the PlayerInteractEvent also fire for when you press Q, because it seems like it, but doenst make any sense imo

tardy delta
#

what does pressing q even do

pseudo hazel
#

drop items

#

for me

tardy delta
#

ah

#

PlayerDropItemEvent doesnt extend interact event so ig not

worldly ingot
tardy delta
#

👀

worldly ingot
#

The interaction event is called based on the swing of the arm

#

Unless that's changed recently but if that's behaviour you're experiencing, that's why

pseudo hazel
#

oh

#

also it seems to also affect me pointing at air or an actual block

#

which is kinda annoying

#

since I cant prevent it afaik

#

I just want the player to "use" my item when they right click on it

#

oh, skipping the event if the action isnt a right click seems to work

#

they probably need to add a dropitem action

worldly ingot
#

Can't. If that's something we could control we would just not fire an interact event when an item is dropped

#

The way we detect punching the air is the same code that gets called when an item is dropped

pseudo hazel
#

I guess so haha

#

that's too bad

#

anyways, nothing a few more lines of code wont solve haha

west quarry
#

Can anyone help me make a shop menu? wit the plugin deluxemenu

alpine swan
#

just wondering, will there be possible issues if you get the location of an entity just after youve .remove() 'd it (same tick)

hazy parrot
#

ig you would get location where entity was at before it was removed

limpid nexus
#

Was the playerdeath event disabled / removed

remote swallow
limpid nexus
#

Doesnt come up on the jd and doesnt fire on code

remote swallow
#

1.19.3?

limpid nexus
#

yeah

remote swallow
#

the fuck? idk how that wouldnt appear on java docs

limpid nexus
#

seems to be my code

mortal hare
#

which suits my needs

#
// prefixes all the subproject artifacts with rootProject name. Neat!
subprojects{
    afterEvaluate {
        if (pluginManager.hasPlugin("java")) {
            archivesBaseName = "${rootProject.name}-${name}"
        }
    }
}
mortal hare
#

finally I separated bukkit implementation classes from my core plugin classes

#

at least i learned gradle more

formal egret
#

can someone remind me which version it is in which the API had an overhaul in regards to items? for example when Material.LOG changed to Material.OAK_LOG?

#

thank you

gaunt relic
#

Hello, so I want to break this block, but when I call block.breakNaturally() the block just disappears, I wanted to make so it breaks with the particles and sound.

#

Is there a method for that?

remote swallow
#

breakNaturally should do that

#

actually

gaunt relic
#

it doesn't tho

remote swallow
#

any errors

gaunt relic
#

the method just makes the block disappear, i wanted so it plays the break sound and show the particles

#

i looked up and the only thing I could find was this thread of a guy telling that you could only do it with nms

remote swallow
#

what version

gaunt relic
gaunt relic
remote swallow
#

1.19.3?

gaunt relic
#

yes

remote swallow
#

if theres no errors not much else i can say, breakNaturally should do exactly what you want

gaunt relic
#

It doesn't tho, i don't think there's a method for what I want. breakNaturally documentation only says it "breaks the block, and of you provide the correct itemstack tool, the block will drop"

remote swallow
#

you have 2 methods

#

one that you provide an item stack, one that you dont

gaunt relic
#

breakNaturally() just calls breakNaturally(null)

remote swallow
#

yeah

#

if its null it will just force break it with the correct tool

gaunt relic
# remote swallow

yeah it doesn't look like it's calling the particles and sound, i guess I'll have to resort to nms

remote swallow
#

what block are you breaking

gaunt relic
#

glass

remote swallow
#

does glass even have particles for being broke

gaunt relic
#

yes

remote swallow
#

you can probably just summon the particles normally

gaunt relic
#

every block does

remote swallow
#

no need for nms

gaunt relic
#

how can I do it

river oracle
#

using spigot api is for the weak I haven't coded a spigot plugin in years NMS only

echo basalt
#

using spigot is for the weak

#

I just have my own NMS fork

simple mica
#

how come when players move in servers there's minimal to no jitter?

river oracle
echo basalt
#

using servers is for the weak I made my own game

river oracle
#

making your own game is for the weak I made my own operating system to run my own game to run my own server

echo basalt
#

making your own operating system is for the weak, I made my own hardware

river oracle
#

hah I invented my own hardware to make

echo basalt
#

I made the universe, fuck it

river oracle
#

I made the simulation the universe is in

echo basalt
#

that's cool and all

#

but here's the real question

#

can you get sturdy

remote swallow
#

what came first

echo basalt
#

I came first

remote swallow
#

what about ur mom

river oracle
#

so probably not

echo basalt
remote swallow
#

how are your brains feeling

river oracle
#

no no I can not

echo basalt
#

I got a major headache

river oracle
#

you win

echo basalt
#

and am listening to a 2008 song remixed into hardstyle

remote swallow
#

just take a look at that

echo basalt
#

is the guy braindead

#

it's really not that hard

remote swallow
#

most liekly

echo basalt
#

getClass -> maxStackSize -> setField

#

no need for commands

remote swallow
#

i wonder if that ever changes

echo basalt
#

it does not

remote swallow
#

im bored so im remaking it

#

but better

echo basalt
#

want a fun project

#

remake Builder's Utilities

#

code is garbo

remote swallow
#

whats builder utilities

#

this is insane

echo basalt
#

check NoClipManager and all

remote swallow
#

ive only got to the spigot page and hate it already

echo basalt
#

it's braindead

remote swallow
#

and its fucking gradle kotlin

echo basalt
#

here's how they do aliases

remote swallow
#

why

#

just why

#

you know what is fun, just looking at projects where people use a domain as their package and they dont own that domain

#

what the fuck

echo basalt
#

Cries in me.illusion

remote swallow
#

what the fuck

remote swallow
#

wait

#

dont you own illusion.ev

#

.dev

echo basalt
#

sure

remote swallow
#

why dont you use dev.illusionthe

echo basalt
#

oo the owner of that domain has a mutual discord server with me

#

and it's minecraft plugins related

remote swallow
#

dayum

#

the music is a bop

echo basalt
#

Let's hope I get answered

remote swallow
#

what discord server is that

#

looks like JOB

echo basalt
#

TheSourceCode

remote swallow
#

cheap

#

looks like job

echo basalt
remote swallow
#

thats nothing

#

i dont get the point of doing this

#

most people have already seen its gpl or whatever

echo basalt
#

illusion.tech is 1.3k/yr fuck

#

it would've been so cool

remote swallow
#

like

#

how does builders utilites manage to do that

#

he added the bug tag

#

1 fucking year ago

echo basalt
#

do I really want to spend that much when my website is poo poo

#

and I can't bother learning the absolute minimum of HTML

remote swallow
#

its like maven

echo basalt
#

I might just make my website with wix honestly but I really can't bother

remote swallow
#

but worse

echo basalt
#

I'm making my web app in fucking Vaadin

#

which is a java framework

#

because I can't bother

crimson relic
#

whats wrong with illusionthe.dev lol

remote swallow
#

fun

remote swallow
echo basalt
#

and package name looks bad

crimson relic
#

makes sense

echo basalt
#

illusion.dev is owned

#

I want it

#

illusion.tech is 1.3 grand

remote swallow
#

i wonder when choco will fix his ssl cert

crimson relic
#

because .tech is extortion

echo basalt
#

yaeh

crimson relic
#

i have casper.sbs which i like but the registry thought it would be funny to jack up the price so i cant afford it anymore lmao

echo basalt
#

why am I looking at domains I can't even afford food lmao

#

well I can but not for long

#

gotta renew my domain in like a month

remote swallow
#

is nms stuff now just net.minecraft.server.stuff not the net.minecraft.server.version.stuf

crimson relic
remote swallow
#

i wonder what net.minecraft.server.version.Item is now-a-days

ancient plank
#

Fork

#

Grrr this discussion reminded me about something

frank kettle
# echo basalt mmm

illusion.center is 20$/year, illusion.place is 15$

or u could go for a very high tier one: illusion.pizza at just 60$ a year 🗿

echo basalt
#

🗿

#

make it redirect to domino's

#

I actually had a very nice experience with domino's today

#

store was empty, was just me and the manager

#

guy asked us what the request would be so he could prep while we were paying

#

we just sat down, guy went out of his way to serve

#

brought cups and a drink and all

#

didn't accept tips

#

pizza was a bit undercooked but was probably because I asked for extra sauce

frank kettle
#

i only went to a domino's once and it was nice employees there🗿

echo basalt
#

they opened like 2 months ago, here

frank kettle
#

so nice experience as well 🗿

echo basalt
#

they also remade the entire website like 2 days ago

#

which means my selenium automation is broken

#

yes I automated the ordering process

upbeat hornet
#

Is there a built-in method to get a username from a uuid?

lavish hemlock
#

I believe...

#

Server,getOfflinePlayer(uuid).getName()?

#

That won't work perfectly, I think a player has to have joined the server

#

(And it's also broken for offline servers but we don't support those anyway)

upbeat hornet
#

Yeah the player I'm gonna check will have joined at least once

upbeat hornet
lavish hemlock
#

If you wanted to check for players who hadn't yet joined, you'd probably have to work with the Mojang API

#

I'm not entirely sure if Spigot supports that through PlayerProfile, but looking through CraftBukkit it doesn't seem likely.

upbeat hornet
#

ok thanks

wet breach
gaunt relic
#

Yea that method can be a huge lag source

ivory sleet
#

no

#

just getOfflinePlayer(name) can cause hang

worldly ingot
#

That's why we always call that method asynchronously Sunglasses

sterile token
#

What convention should i use for naming an alt account object? I dotn really finding a good time to call it

sterile token
worldly ingot
#

Because that's not really the responsibility of the API tbh. Maybe you want to run it synchronously

#

All you realistically have to do is wrap it in a CF

sterile token
#

This are the most significative example of bad api design - Taken from a paid plugin api

upbeat hornet
#

is it possible to spawn some item on the ground (entity, not itemstack) and have it only collectable for a certain player?

wet breach
wet breach
upbeat hornet
wet breach
#

That is one way to do it

#

Item entities have uuids as well so you could just store that in a map too

#

Either way is acceptable and which you should use is up to you. Recommend going for which ever is easier for you

upbeat hornet
#

there really isn't pros/cons of one over the other?

#

except that pdc would take more storage ig?

wet breach
#

There is. Pdc adds information to the item. Where as the map is more temporary. If items are short lived on the ground anyways, then no reason to store information in a persitent way so a map does just fine as it is easier to evict objects out of a map.

#

But like i sais, both methods accomplish what you are needing

#

Now the downside of the map is that if the items will persitent on the ground and want to still track said items between restarts. Then pdc it is

#

Map wont persist between the restarts

upbeat hornet
#

right

#

ok well tyvm

sterile token
#

How would get a list of numbers? So then you can simply recommend thru tab completer

#

Because i tried doing it with Integer.MAX_VALUE, but then tab completer get bug because they are thosen of number

lavish hemlock
sterile token
hazy parrot
# sterile token

When you register api, it override those classes, tbh don't see why it's bad design

#

Same as with using interfaces, just throws error instead

floral drum
#

it was FUN debugging that :D

worldly ingot
#

Yeah, if it's something important (like SQL) it's usually a good idea to supply an executor

sterile token
#

LMA0 working ith arguments its so confusing, specially when working over nested commands (commands with sub commands, inside of sub commands, etc)

halcyon hemlock
#

Hi guys, How are you guys doing today?

hardy pollen
#

Hi how to use pathfindergoals in EntityPlayer?

halcyon hemlock
#

EntityPlayer?

#

NPC Right?

#

I've never tried it

#

maybe someone else can help you with it

halcyon hemlock
#

if u use LibsDisguises you can disguise a zombie or some other entity and give the zombie path finder goals and it works fine

tender shard
#

Did you already set NMS remapped up?

halcyon hemlock
#

you can look through LibsDisguises code and make your own

halcyon hemlock
#

cause i use obfuscated version

tender shard
#

Yes

#

Remapped is great

#

?nms

halcyon hemlock
#

well

tender shard
#

If you use maven ^

halcyon hemlock
#

too late

#

i alr build all my pathfinders and shit on default

tender shard
#

In that case:

#

?switchmappings lol

halcyon hemlock
#

It's fine not like I can't read the obfuscated code

tender shard
#

But you will have to adjust it on every new release

#

Remapped is basically „always working“ no matter which version

halcyon hemlock
#

and its not like decompiling would hurt

#

not saying that you have a bad point, you have a great point it's just that im lazy

tender shard
#

well okay then lol

#

anyway, what's your question about pathfinding goals? they are quite straightforward to use

halcyon hemlock
#

theirs

#

they were asking to make pathfinder for EntityPlayers

tender shard
#

ah

#

EntityPlayer D:

#

SeverPlayer ❤️

hardy pollen
tender shard
#

so what's the problem?

#

usually you can just delete everything from the existing goal selector, then add your own goal

#

and that's it

halcyon hemlock
#

can u use pathfinders for actual players? im curious

tender shard
#

good question

#

probably not

hardy pollen
sterile token
#

Im debuggign a Bungee plugin, but now the event seems not to be toggled

hardy pollen
#

Do you have any example of this

halcyon hemlock
hardy pollen
#

Cuz i want to make a npc model player can challenge player to pvp with them

tender shard
tender shard
halcyon hemlock
#

Then it should work

tender shard
#

IIRC "EntityLiving" is "Creature" in mojang maps

#

let's check

#

?switchmappings

tender shard
#

it's LivingEntity, and yes ServerPlayer extends that

#

but I am also pretty sure that players cannot have pathfinder goals because obv they are controlled through their PlayerConnection

halcyon hemlock
#

ask ChatGPT

tender shard
#

ChatGPT doesnt even know the order of event priorities

halcyon hemlock
#

¯_(ツ)_/¯

#

I'll ask for you, wait.

tender shard
#

oh they got it fixed

#

a few days ago, it claimed HIGHEST was executed first

#

now it got fixed

halcyon hemlock
#

Man chill, it's still an AI

tender shard
#

I don't complain, I just say that you cannot rely on GPT giving correct answers

#

sometimes it's correct, sometimes it isnt

halcyon hemlock
sterile token
#

ChatGPT also gives wrongs answer

halcyon hemlock
#

I asked for 1.17.1 btw

halcyon hemlock
sterile token
tender shard
#

this is what they mean

#

you can tell it "no, that's bullshit" and then it'll give you another answer

#

however, in this case the original answer was right lol

halcyon hemlock
#

just test the code, if it doesnt work, tell it what doesnt work

#

or just go through the NMS code yourself and figure out a way

hardy pollen
#

Nah chatgpt sucks

halcyon hemlock
#

ok

#

then good luck finding a way to apply pathfinding to your npc

hardy pollen
#

I have asked it 10 time

#

And it give me a wrong way

halcyon hemlock
#

do you want me to make it for you?

#

wait

hardy pollen
#

Sure

halcyon hemlock
#

I'll make it on 1.17.1 obfuscated NMS

#

since i dont want to use remapped or some shit

tender shard
#

stop calling it shit 🥲

halcyon hemlock
#

:>

tender shard
#

it's not shit 😦

#

you are just not used to it

earnest forum
#

he said or some shit

#

i dont think he was trying to say something bad about remapped

tender shard
#

idk

#

all I can say is, I love remapped, and it was the best decision ever to use it

#

if now spigot would use it too, my life would be awesome

#

that'd stop requiring plugin devs to recompile their plugins for every new version

vague swallow
#

There is a fuction for the spectator gamemode to highlight all players. Does anyone know how that function is called and is there a way to use it for other gamemodes? So technically to highlight all players for specific players?

iron palm
#

should i wait for some ms to get the response of plugin message from bungee?

#

how much should it be

rough drift
desert tinsel
#

How to send a hoverable message with more than one line?

iron palm
rough drift
#

You won't get the result at the call site

#

you'll get the result in another class

iron palm
#

im using a class for both listening and sending bytes

rough drift
#

oh

#

well it doesn't have to be instant

#

as soon as the event fires that's the response

iron palm
#

I may have to use wait method i guess but for how much ms should i use it

rough drift
#

there is no wait method needed though?

#

Like

Send -> Bungee -> All Listeners (if any response)

quaint mantle
#

Hi. I'm making a skin plugin which has command /skin <username> command to set the player's skin but when I execute the command nothing happens and my skin doesn't change. What is wrong with this?

public void setPlayerSkinWithUsername(Player player, String username) {
        final EntityPlayer nmsPlayer = ((CraftPlayer) player).getHandle();
        final PropertyMap properties = nmsPlayer.getProfile().getProperties();

        nmsPlayer.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, nmsPlayer));

        properties.removeAll("textures");
        final String[] playerSkin = getPlayerSkinFromUsername(username);
        properties.put("textures", new Property("textures", playerSkin[0], playerSkin[1]));

        nmsPlayer.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, nmsPlayer));
    }

    @SneakyThrows
    public String[] getPlayerSkinFromUsername(String username) {
        final URL url = new URL("https://api.mojang.com/users/profiles/minecraft/" + username);
        final InputStreamReader streamReader = new InputStreamReader(url.openStream());
        final String uuid = new JsonParser().parse(streamReader).getAsJsonObject().get("id").getAsString();

        final URL url1 = new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid + "?unsigned=false");
        final InputStreamReader streamReader1 = new InputStreamReader(url1.openStream());
        final JsonObject textureProperty = new JsonParser().parse(streamReader1).getAsJsonObject().get("properties").getAsJsonArray().get(0).getAsJsonObject();
        final String texture = textureProperty.get("value").getAsString();
        final String signature = textureProperty.get("signature").getAsString();

        return new String[]{texture, signature};
    }```
dry yacht
#

Is there a reason for why the PlayerMoveEvent is triggered in this kind of very debounced manner? Is that intentional behavior as maybe performance would dip otherwise? Do I have to intercept the packet-stream to check for MoveLook packets (or whatever they were called)? :-:

I'm talking about yaw and pitch btw, positional updates seem to work fine.

mortal hare
#

gradle == groovy

dry yacht
terse ore
#

how can I grow a sappling?

#

I've tried to set maxage but didnt work

sullen marlin
#

delete it and call World.generateTree

eternal night
#

@tender shard there you go

#

now its merged

twin venture
#

hi , is it possible to :
when server start wait (Configurable time) minutes and start the method?

eternal oxide
#

?scheduling

undone axleBOT
twin venture
#

i tried this :

#

yeb , i tried it , but it seems its not working .. idk why nothing is hapening after 5 minutes

eternal oxide
#

scheduling is in ticks

twin venture
#

right?

#

alright gonna try it

remote swallow
#

yeah

twin venture
#

what if i want it to run every 2 hours?

#

do i need to save the last time it was run? then compare it to the current time?

eternal oxide
#

the repeat time

#

However, using the scheduler over long periods is likely to be fairly inaccurate.

twin venture
#

ok so :

just for testing :

#

this will run only 1 time

#

i want it to repeat it self after every 2 hours

#

is it possible?

terse ore
#

difference between

#

PlayerCommandPreprocessEvent and PlayerCommandSendEvent?

terse ore
sage dragon
#

Is there a dedicated Villager Trade event? (I can't seem to find one, so I'm asking here)

eternal oxide
#

When you are talking about 2 hours you would be better using a ScheduledExecutor than using the Bukkit scheduler.

#

The Bukkit scheduler is mainly for things you want to run in a few ticks to minutes

wooden osprey
#
    if (player.getGameMode() != GameMode.CREATIVE) {
            ItemStack item = new ItemStack(Material.HOPPER);
            ItemMeta meta = item.getItemMeta();

            meta.setDisplayName(ChatColor.WHITE + "Alloy Furnace");
            meta.setCustomModelData(1);

            meta.getPersistentDataContainer().set(CustomNamespacedKeys.customBlock, PersistentDataType.STRING, "AlloyFurnace");
            meta.getPersistentDataContainer().set(CustomNamespacedKeys.energyStored, PersistentDataType.INTEGER, energyStored);
            meta.getPersistentDataContainer().set(CustomNamespacedKeys.energyCapacity, PersistentDataType.INTEGER, energyCapacity);

            List<String> lores = new ArrayList<>();
            lores.add(ChatColor.GRAY + String.format(" ⚡ Energy Stored: %d / %d", energyStored, energyCapacity));
            meta.setLore(lores);
            item.setItemMeta(meta);

            block.getWorld().dropItemNaturally(block.getLocation(), item);
    }

this method is in a BlockBreakEvent it does run perfectly fine however it only sometimes drops the item
could someone help?

sage dragon
terse ore
#

ty

terse ore
twin venture
twin venture
twin venture
terse ore
twin venture
#

you can do minutes , seconds , miliseconds

eternal oxide
terse ore
#

ohhh

#

mb

twin venture
#

using TimeUnit

#

yeah

kind hatch
twin venture
#

yes its working perffectly thanks

wooden osprey
twin venture
#

this will run first time after 2 hours , and it will repeat after 2 hours

#

correct?

#

i just want to make sure

eternal oxide
#

yes

twin venture
#

nothing more

#

ok thanks that's what i want

eternal oxide
#

it will keep repeating every 2 hours

twin venture
#

its custom events for my skypvp plugin , the content is when event start , the most player's with lootbox clicked will recive a prize

#

the event for 15 minutes only

#

xd

undone axleBOT
twin venture
#

is this correct?

#

just the timings

wooden osprey
#

i doubt looking at the code will make a difference as I said it does run everytime

#

it just doesnt spawn it somtimes

desert loom
#

I believe delay is in milliseconds so that should be 900 seconds so yeah 15 minutes

you can also use TimeUnit.MINUTES.toMillis(15)

kind hatch
wooden osprey
#

oh damn yeah thanks

twin venture
desert loom
#

delay is the time in milliseconds before the task is executed

#

so yeah that should start after 15 minutes

#

I haven't used the timer stuff in java though so I might actually be wrong on that but I think that is how it works

quaint mantle
eternal oxide
#

take out your sneakyThrows and see what errors you get

desert loom
icy beacon
#

is there any way to beautify json? i'm using gson to save it to a file, maybe there's a built-in for saving it in a beautified way or a library to beautify json files?

eternal oxide
#

Bukkit scheduler is not accurate for long durations, like hours

desert loom
#

oh do you know why that is? kinda curious

icy beacon
#

well ticks are not accurate ig

#

tps is variable

#

it may slow down the scheduler

eternal oxide
#

The Bukkit scheduler runs based upon server ticks, which can vary drastically over time. Not all servers run a steady 20 ticks per second

desert loom
#

oh I forgot about that stuff I guess that is why

#

I forgot about ticks

mortal hare
#

10 tps == task runs x2 slower than when 20tps

eternal oxide
#

at 10tps all of a sudden your two hour events run every four

icy beacon
bright mica
#
        ItemStack sharp6sword = new ItemStack(Material.NETHERITE_SWORD);
        sharp6sword.addEnchantment(Enchantment.DAMAGE_ALL, 6);

i tried making an sharpness 6 sword, but i get java.lang.IllegalArgumentException: Enchantment level is either too low or too high (given 6, bounds are 1 to 5), but i actually want to make a craft to turn an sharpness 5 sword to sharpness 6

kind hatch
remote swallow
#

that should be done on meta

kind hatch
#

No it shouldn't

#

Enchants should be applied to the ItemStack directly after the ItemMeta has been set.

remote swallow
#

meta.addEnchant(Enchantment, level, true) would add it as if you ran addUnsafeEnchantment

bright mica
eternal oxide
#

?notwork

#

?doesntwork

kind hatch
#

?notworking

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

bright mica
#

it's showing the same error

kind hatch
#

What does your code look like now?

eternal oxide
#

you are not using addunsafe then

bright mica
#
// ---------------------------------------------- SHARP 6 NETHERITE SWORD
        ItemStack sharp6sword = new ItemStack(Material.NETHERITE_SWORD);
        sharp6sword.addEnchantment(Enchantment.DAMAGE_ALL, 6);

        ItemStack sharp5 = new ItemStack(Material.DIAMOND_SWORD);
        sharp5.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 5);

        ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(this, "netherite sword sharp 6"), sharp6sword);
        recipe.shape("AXA", "BCB", "DXD");
        recipe.setIngredient('X', Material.NETHERITE_INGOT);
        recipe.setIngredient('A', Material.GOLD_BLOCK);
        recipe.setIngredient('C', sharp5.getData());

        Bukkit.addRecipe(recipe);```
#

oh wait

drifting halo
#

remote debugging

bright mica
#

i did the wrong one

#

imma try with the correct one now

kind hatch
remote swallow
#

jank

tender shard
#

now my life is pointless

bright mica
#
@Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        System.out.println("Hello World from Blood SMP Plugin");
        recipes();
    }

    @EventHandler
    public void recipes() {
//rest of the code

i tried doing that, but i got this error

[12:03:16 ERROR]: [BloodSMP] BloodSMP v1.4.0 attempted to register an invalid EventHandler method signature "public void komas19.bloodsmp.plugin.Main.recipes()" in class komas19.bloodsmp.plugin.Main```
remote swallow
#

thats not how you make a listener

#

and you shouldnt call it yourself

#

?events

#

?eventapi

undone axleBOT
hazy parrot
bright mica
#

oh

#

im just a beginner in java

hazy parrot
#

Well, you need some event to handle, spigot can't guess it yet, also as epic said, no reason to call that method yourself in onEnable

bright mica
#

so i should just put the code in onEnable ?

hazy parrot
#

No, just put event you want to handle inside of recipes() function argument

remote swallow
#

or if there is no event, dont mark it with event handler and dont register the event

bright mica
#

since there is no events, should i move the code to onEnable?

remote swallow
#

you can still have it in that method

#

  @Override
  public void onEnable() {
      myCoolMethod();
  }
   

  public void myCoolMethod() {
      //code
  }
tender shard
#

why did you add it anyway?

bright mica
#

because i thought it had to be done like that

tender shard
#

no, just remove it

bright mica
#

ok

mortal hare
#

does someone understand java.nio package decently?

#

does FileSystems.newFileSystem can retrieve paths from network file systems

#

for example from network drives etc

bright mica
#
        recipe.setIngredient('C', Material.NETHERITE_SWORD);

i want that netherite sword to be sharpness 5, but idk how

icy beacon
#

i think that recipes only check for materials

#

if you want any custom data you'd better handle PrepareRecipeEvent by yourself or smth

#

so as to check if the items in the crafting table are what you want and then yield the result

bright mica
#

im just a beginner to java in general

icy beacon
#

?learnjava

undone axleBOT
icy beacon
#

but first read this

elfin notch
#

Hey when I wanna create a GUI. So when I set Items for example: inv.setItem(slot, item) can I put in this line multiple slots?

eternal oxide
#

no

#

one line per slot

elfin notch
#

alr ty

rough drift
#

In an entity damage by entity event, if the damager was an end crystal, how could I get the "igniter" of the end crystal?

#

such as an arrow, player, snowball, etc

eternal oxide
#

if the end crystal still exists you getLastDamager or cause

#

if you can get teh last damage you can cast to a damage event and get teh killer

rough drift
#

Smart, thanks!

serene sigil
#

this works?

#

lmao wrong server

eternal oxide
#

Too many colours, hard to read

rough drift
serene sigil
#

alright...

#

🤣

terse ore
#

you got the entire RGB in your palete

serene sigil
hybrid spoke
#

cant you keep it alive

#
  • you probably want to make it async
serene sigil
#

idk man first time using the webhook thing

rough drift
rough drift
#

Get the entity cause of an end crystal's explosion

eternal oxide
#

if the damage was by arrow you will have to drill deeper to get the shooter

rough drift
#

Yeah the entire method has many more cases

#

The actual thing is more of a recursive thing

#

like

#
if (entity instanceof EnderCrystal crystal) {
    var cause = crystal.getLastDamageCause();
    if (cause instanceof EntityDamageByEntityEvent event) {
        return getCause(event.getDamager());
    }
}
eternal oxide
#

should work

rough drift
#

Removed the recursion to make it simpler to read, but yeah it just recurses

tender shard
#

I hope java will remove var again

#

it was the worst thing ever added to java

scarlet moat
#

Hello, I Created my custom enchant, named 'isus', it works, i can enchant item with it, BUT when i try to
enchant things through the anvil with book, i cant, no errors, just wont give me item with enchant.. just nothing

rough drift
tender shard
#

you are not supposed to add custom enchants

#

rather use the PDC

rough drift
#

^

#

and edit the lore to display

scarlet moat
rough drift
#

?pdc

scarlet moat
#

hmmmm... im using 1.12.2

tender shard
#

then you're fucked

scarlet moat
#

😦

#

Is there a way to fix that?

tender shard
#

on 1.12 you gotta use NBT tags

scarlet moat
#

my problem is, that i cant enchant item with enchantment book though anvil

hybrid spoke
#

looks good to me

#

great for local variables

scarlet moat
#

i done lore, enchant, it work when i use /enchant

tender shard
#

because you never know which type the var has

#
var something = "asd";

what the heck is this? a string? a ChatSequence? An Object?

hybrid spoke
#

you do

#

its a string

tender shard
#
var something = somethingElse;

what's this?

hybrid spoke
#

your ide should tell it too

terse ore
#

can you make an ItemStack shiny?

terse ore
#

without any enchantments

hybrid spoke
tender shard
rough drift
#

like var makes a ton of sense

eternal oxide
#

var = bad design

tender shard
hybrid spoke
#

var = good design

terse ore
tender shard
#

no, var is shit

hybrid spoke
#

but only for local stuff

eternal oxide
#

var = lazy design

terse ore
#

or its just impossible

hybrid spoke
#

agreed on instance vars

rough drift
#

and if I need to know the type I just hover

tender shard
hybrid spoke
terse ore
#

okok ty

tender shard
#

you can create your own dummy enchantment

#

and use that

rough drift
tender shard
# rough drift

if now "event.getPlayer()" would change the return type, so would your "var" do. Sounds shitty to me

eternal oxide
#

You shoudl be able to tell that variable type by looking not by having to hover or jump around

tender shard
#

I would rather explicitly tell javac which type "player" has

rough drift
#

the methods wouldn't work

terse ore
#

is there any reason to make it var?

tender shard
#

no

rough drift
#

readability

hybrid spoke
mighty pier
remote swallow
#

the only time var is reasonable to use is if you dont know what something returns and you dont know, then you change it to the correct type

hybrid spoke
#

if you use var everywhere, its a you problem

rough drift
#

if you name your variable correctly, and don't do weird shit, it's fine

tender shard
hybrid spoke
tender shard
#

Player player = we know it's a player
var player = we know shit

hybrid spoke
#

more smooth

#

more readable

#

all in one

#

with just 3 letters

rough drift
#

correct variable naming goes a long ass way

tender shard
#

you do you. imho "var" is shit and it just hides the important information

hybrid spoke
tender shard
#

e.g. in InventoyClicKEvent, getPlayer() does NOT return a player

rough drift
#

it's simple

hybrid spoke
#

also the var stays the same

#

it doesnt change

rough drift
#

^

hybrid spoke
#

so if you want to use it somewhere else as a player, the ide will complain

tender shard
#

I would rather just declare the correct type in the first place

hybrid spoke
#

right, you would.

#

doesnt make it shit

rough drift
#

^

#

I just prefer var where it makes sense

tender shard
#

and imho it never makes sense

hybrid spoke
#

still have to get into it

twin venture
#

anyone know if the check is correct?

rough drift
#

such as on the same line as a math expression (eg 10L * someLong I know it's a long), same line as a cast (or +-1)

rough drift
remote swallow
#

^^

hybrid spoke
remote swallow
#

qut

#

quit

hybrid spoke
#

no

rough drift
#

or hell, if I know it's a method like getBytes I'll still use var, I know it's a byte array (such as in Files.readAllBytes)

#

and I'd name the var fileBytes

#

var filePath = file.getPath();

#

etc

#

And then when you have long generics like Map<SomeGenericType<T>, Function<T, SomeGenericResult<T>> I'd much rather using var

eager jacinth
#

Hello guys. My question may seem weird, but is it possible to somehow make a PlaceHolder between a Proxy and a Spigot?

#

It's just when a player type a special command on a proxy, he turns on a certain "mode", that's what I want to display in the placeholder...