#help-development

1 messages Β· Page 714 of 1

lilac dagger
#

just make the multi line one from the single hologram

plain plaza
#

What's the best method to import and remove a disposable 50x50 map into a void world?

mossy quiver
#

Hey! I have been trying to find a good way to "push" someone away when they are in a region they shouldn't be while in combat. The easiest one was:
player.setVelocity(player.getLocation().getDirection().multiply(-1).add(new Vector(0.0, 0.5, 0.0))) but obviously this means that if you face backwards, you actually just get thrown further into the region you shouldn't be in.
I also tried player.setVelocity(player.getVelocity().multiply(-1).add(new Vector(0.0, 1.0, 0.0))) because I figured if I just multiply their velocity by -1 it would also invert them but handle the pushing backward problem. However, it ended up just throwing them straight up even if they are walking forward. Could anyone help me out?

plain plaza
#

Do I just paste it, discard it after usage, or do I load multiple maps at once and then discard it on stop. Or should I use something like asyncslime?

lilac dagger
#

light is optional tho, i assume you want it to have shadows inside

lilac dagger
#

there

#

πŸ˜„

#

or the other way around

#

i always forget the order

mossy quiver
#

I'm sorry I don't understand the "other player". I'm just checking if they are inside of a cuboid region and if they are, I run that. I don't understand how to apply your response to that.

plain plaza
#

So what im asking is what the sequence would look like

#

To minimize lag

lilac dagger
#

probably you need nms for this

plain plaza
#

what

lilac dagger
#

if you want to optimize it further

#

or

#

separate it in chunks

#

i mean

#

slices

#

and paste each one on some interval

mossy quiver
#

Optionally just have a preset amount of duel arenas so you aren't pasting on demand 😎

plain plaza
#

so like on startup, I paste per say 50 maps slowly and mark down the locations

lilac dagger
#

yes

plain plaza
#

alright thanks, appreciate it

lilac dagger
#

or use slimeworld

#

i don't think it removes the lagg completely

#

but it should help a lot

plain plaza
lilac dagger
#

there is a plugin

#

slimeworldmanager i think it's the name?

plain plaza
#

isnt that for 1.8?

#

let me check

#

1.8-1.14

smoky oak
#

I'm trying to create potions, but the code i find online only gives me a type, boolean, boolean method. how do i make a potion with custom strength, duration, and block it from being able to be chucked into a brewing stand?

lilac dagger
#

type has in the constructor what you're looking for

#

actually this is how you're making a potion

smoky oak
#

and how do i put that into a itemstack

lost matrix
#

PotionMeta#addCustomEffect(PotionEffect, boolean)

smoky oak
#

is that boolean alwasy true?

lilac dagger
smoky oak
#

I'll just assume it is

lilac dagger
#

up to you

lost matrix
#
    ItemStack potion = new ItemStack(Material.POTION);
    PotionMeta meta = (PotionMeta) potion.getItemMeta();
    PotionEffectType type = PotionEffectType.REGENERATION;
    int duration = 100 * 20;
    int amp = 1;
    PotionEffect effect = new PotionEffect(type, duration, amp);
    meta.addCustomEffect(effect, true);
    meta.setColor(Color.FUCHSIA);
    potion.setItemMeta(meta);
smoky oak
#

hm

#

would this be blocked by default from going into the brewing stand?

lost matrix
#

No idea

smoky oak
#

wait tf

#

whats the material of a filled water bottle

#

'Bottle' only gives glass, honey and xp

lost matrix
#

Isnt that just a potion?

smoky oak
#

i... maybe?

#

if thats the case how do i check if it doesnt have any effects tho

#

setIngredient only takes material

#

oh it has a materialData option

#

goddammit

lost matrix
#

setIngredient?

smoky oak
#

yea

#

im looking at recipechoice

lost matrix
#

For a shaped recipe?

smoky oak
#

but thats an interface

#

yea

lost matrix
#

Yeah use RecipeChoice.ExactChoice for nbt sensitive ingredients

#

Custom Predicate<ItemStack> support when?

smoky oak
#

that doesnt have a set method tho

#

oh

#

its in the constructor options

#

havent seen a varargs constructor yet

kindred sentinel
#

how to change time of action bar using spigot().send type.actionbar

lost matrix
#

You mean the time it gets displayed?
@kindred sentinel

smoky oak
#

how do i get the recipechoice for an ominious banner? And does the data in a recipechoice have to be exact?

#

its just a white banner but if i just say 'white banner with nbt hidden' that might not count if it's exact

lost matrix
smoky oak
#

of goddamn course

#

isnt there partial matching for smth like this

worldly ingot
#

They're fixed

lost matrix
smoky oak
#

ah tru

#

java.lang.IllegalArgumentException: Must have at least one choice

#

fucks that kinda error

#

its not giving me a caused by

lost matrix
#

You didnt add a choice to your recipe (put the crayon aside squirtle )

smoky oak
#

now its Caused by: java.lang.ClassNotFoundException:

lost matrix
#

πŸ‘€

smoky oak
#
Caused by: java.lang.ClassNotFoundException: io.github.moterius.GreekGodsPlugin.Player.Eldritch.PatronHandler
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]```
#

dafuq

#

wdym spigot crashed

lost matrix
#

I sure hope you dont use the /reload command

smoky oak
#

it didnt cause issues before

#

like the class is still there and it stops all functionality on onDisable

#

so why would it have issues with this

lost matrix
#

Did you completely ignore the warning?
Just never use reloads. It is bound to cause issues.

kind hatch
#

Recipies are known for having issues on reload. Along with a myriad of other things if not handled properly.

#

It's why /reload isn't advised

sterile token
smoky oak
#

no this happens even with the recipes disabled

kind hatch
smoky oak
#

and as i said i get rid of em in ondisable

sterile token
kind hatch
#

I mean yea, that could be done, but I doubt it would ever be approved.

smoky oak
#

wait wtf

#

this is pointing to my onDisable

#

the plugin classes are unloaded BEFORE onDisable?!

#

WHY

hushed spindle
#

does anyone happen to know if Material#isEdible() returns true for potions as well? lol

#

i would think yes, but then why is it isEdible and not isConsumable

smoky oak
#

alright i really want to know this now cuz this is nonsensical

#

isnt the onDisable meant SPECIFICALLY to handle things that need to be serialized stored etc

#

so why would the classes already be removed from the class loader

lost matrix
#

They are not

#

Just dont reload

smoky oak
#

smile

#

thats no the point

opal carbon
#

did you do /reload

smoky oak
#

why do i get that error that tells me 'class doesnt exist' when the plugin it belongs to is being diabeld

lost matrix
#

The classes are not unloaded before every single plugin is disabled

smoky oak
#

certainly seems like that

lost matrix
#

Does this occur on normal shutdowns?

smoky oak
#

i bet my ass the only reason it isnt erring out on stop is because that kicks the players and then disables plugins

lost matrix
#

Or did you reload?

#

I would bet this originates from

  • A broken compile
  • You forgot to shade something
  • You used /reload
high pewter
#

I am having a very strange issue, and I have a feeling I understand why it's happening but have absolutely no idea how I can fix it.
Pretty much, I'm making a plugin which randomises block drops, so I need to replace drops in both the BlockBreakEvent and the BlockDestroyEvent. So I have this code```java
List<Item> dropItems(Block block) {
final List<ItemStack> newDroppedItems = game.getNewDropsFor(block.getType());
if (block instanceof InventoryHolder inventoryHolder) addFromInventory(newDroppedItems, inventoryHolder);
return newDroppedItems.stream().map(
itemStack -> block.getWorld().dropItemNaturally(block.getLocation(), itemStack)
).toList();
}

public void onBlockBreak(BlockBreakEvent event) {
// Bunch of checks if an item should actually be dropped/replaced
event.setDropItems(false);
new BlockDropItemEvent(
event.getBlock(), event.getBlock().getState(), event.getPlayer(), dropItems(event.getBlock())
).callEvent();
}

public void onBlockDestroy(BlockDestroyEvent event) {
// Bunch of checks if an item should actually be dropped/replaced
event.setWillDrop(false);
dropItems(event.getBlock());
}```And it works if I break or destroy a single block, but if both happen at the same time when cancelling the BlockBreakEvent prevents me from being able to drop items in the BlockDestroyEvent. For example, if I break a dirt block with a torch attached to it, the dirt block's drops are successfully randomised and the torch block causes dropItems to be called (including dropItemNaturally) but the torch doesn't actually drop anything. I'm guessing this is because the BlockBreakEvent has already created the item drops, so after cancelling them it destroys all the items which were queued to be dropped, even if not specifically from BlockBreakEvent.getBlock() (BlockBreakEvent.getItems() includes the items dropped by attached blocks, such as the torch, so this kinda makes sense).

#

The only thing I can think of doing is just waiting a tick before actually dropping the items, but I feel like there must be a better solution

sullen marlin
#

Why are you manually calling the drop event

high pewter
#

I'm monitoring the BlockBreakEvent, because I don't want to "replace" the drops if another plugin has cancelled the event or something, but I want other plugins to be able to handle the BlockDropItemEvent with the replaced items. That isn't the source of the issue, though, because I've tried removing that line and the torch still doesn't drop anything (of course, neither does the dirt, but that's to be expected). It's the event.setDropItems(false); that causes the issue

smoky oak
#

hey @lost matrix i didnt change any (relevant) code. It's not erring out now wtf

hushed spindle
#

you annoyingly cant actually add drops to a BlockDropItemEvent in spigot for some reason

#

on paper and its forks you can

#

so you gotta manually call it basically

#

to still make it play nice with other plugins

kind hatch
kind hatch
hushed spindle
lost matrix
high pewter
#

Oh, sorry, I didn't realise any of that was Paper, I tried to remove the Paper stuff lol. Well, I'm using the Paper API, so if the Paper API has a better solution I'd be happy to know it πŸ˜… I just thought it was a Spigot issue

kind hatch
#

I thought you were talking about the BlockBreakEvent

hushed spindle
#

lol nah

#

blockbreakevents if not cancelled then call blockdropitemevents

smoky oak
hushed spindle
#

i would just have liked to edit the drops from BlockDropItemEvents directly

kind hatch
#

There is BlockDropItemEvent#getItems().
I'm not sure why it says that adding items to the list is illegal as it is a mutable list.

hushed spindle
#

the weird thing is, its not illegal on paper and its forks

#

its just spigot that disallows this

#

or maybe it's on bukkit's end idk

kind hatch
#

Have you confirmed that behavior? I would assume that it would work since the list is mutable. Even if there is a warning not to.

smoky oak
# lost matrix ❔

Idea:
player.getInventory().getItemInMainHand().getItemMeta().serialize().toString()
Reality:

package org.bukkit.configuration.serialization;

import java.util.Map;
import org.jetbrains.annotations.NotNull;

public interface ConfigurationSerializable {
    @NotNull
    Map<String, Object> serialize();
}

That's the whole interface according to Fern

hushed spindle
#

i have yes

high pewter
#

Same here, I had the same issue

hushed spindle
#

i even have a spigot post on it and md5 commented on it saying it should be possible, and it wasn't

#

so it seems even he isn't aware of why its like this lol

high pewter
#

(in fact, for me it doesn't work on Paper either so)

hushed spindle
#

really? i tried before on paper which worked fine

lost matrix
smoky oak
#

no, i just want to be able to use ominous banners in crafting

#

at this point im considering just serializing an inventory to get to that item

#

oh actually doesnt the ItemStack serializer have a deserialize method?

#

yea it has

high pewter
#

This is what I'm having to do at the moment, but I'm having to rewrite it using BlockBreakEvent and BlockDestroy event because I need to be able to differentiate between which blocks caused which items to drop in order to fix quite a few issues. Also because the BlockDropItemEvent only gets called for block drops caused directly by a player, so not for example explosions https://github.com/HopperElec/RandomEventsPlugin/blob/master/src/main/java/uk/co/hopperelec/mc/randomevents/RandomEventsPlugin.java#L217-L249

lost matrix
#

No need to call serialize or deserialize yourself

smoky oak
#

well yea, but it doesnt change right? shouldnt i hardcode it?

lost matrix
#

Sure, you can just create banners through code.
I dont understand why you would serialize it if you want to hardcode it tho.

hushed spindle
smoky oak
#

i just want to access it lol

#

i havent figured out how yet

hushed spindle
#

could call a custom event in such a case too

smoky oak
#

my idea is to deserialize the string serialization spits out, but i've not yet figured out how to get a map<string, object> from that

high pewter
smoky oak
#

ah

#

i found how i originally stored itemstacks

#
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BukkitObjectOutputStream oos = new BukkitObjectOutputStream(bos);

oos.writeInt(stack.length);

oos.writeObject(itemStack);

oos.close();
return bos.toByteArray();```
#

this is argruably even worse

eternal night
#

that is literally just the exact same

#

the Bukkit OOS literally just does the same

smoky oak
#

yea but i can reverse this one

hushed spindle
high pewter
#

If I break a dirt block with a torch on it, the BlockBreakEvent and BlockDropItemEvent is only called once and event.getBlock() is just the dirt but event.getItems() has both the dirt and the torch

kind hatch
#

BlockDropItemEvent#getPlayer()?

hushed spindle
#

we're talking about BlockDestroyEvent shadow

#

doesnt have a player

kind hatch
#

Is that a Paper thing?

hushed spindle
#

and ah like that

#

i think its spigot also

kind hatch
#

I don't believe it is.

#

I thought you were talking about packets for a second there.

hushed spindle
#

ah nope you're right

#

paper only

#

spigot has individual events per block destruction reason

smoky oak
#

goddammit
java.lang.RuntimeException: java.io.StreamCorruptedException: invalid stream header: 5B2D3834

#

what does that even mean

#

its not the [] at the start / end

sullen marlin
#

Are you trying to read a text file via an object stream?

smoky oak
#

kinda

#

i must've screwed up the conversion from byte[] to string

#

cuz it worked on another project

#

does the byte thing not like spaces?

sullen marlin
#

Post all your code please

smoky oak
#

one moment

#

?paste

undone axleBOT
high pewter
#

Don't know why I hadn't actually tried this yet, but I've confirmed that java getServer().getScheduler().scheduleSyncDelayedTask(this, () -> dropItems(event.getBlock()));fixes the issue, so it is definitely just that the dropped items are removed after the event call. However, this still seems like a janky solution (and if I understand correctly, not specifying a delay still results in a tick delay, which is kinda annoying) so if there's a better way do let me know

torn shuttle
#

I am having the most unhinged chat right now

smoky oak
# sullen marlin Post all your code please

Serialization is basically the toStack in reverse

//function works when passed the byte array from serialization
itemStack[] byteToStack(byte[] data) throws IOException, ClassNotFoundException {
  ByteArrayInputStream bis = new ByteArrayInputStream(data);
  BukkitObjectInputStream ois = new BukkitObjectInputStream(bis);

  int length = ois.readInt();
  ItemStack[] stack = new ItemStack[length];

  for (int i = 0; i < length; i++) {stack[i] = (ItemStack) ois.readObject();}

  ois.close();
  return stack;
}

//Numbers string somehow faulty, error here
ItemStack omenBanner = byteToStack("-84,-19,0...".getBytes(StandardCharsets.UTF_8))[0];```
torn shuttle
#

some dude downloaded a map I made and have been distributing for free for years, changed the name and reuploaded it in like 7 different websites for sale, I told him to take it down and that I would keep sending dmca takedowns until he did and now he's mad because I might get him banned

sullen marlin
#

Just serialise to a yamlconfiguration

#

Also "-84" to bytes is not -84

#

It's the ASCII of - 8 4

smoky oak
#

Ive specifically not done that because in a previous project i had to store thousands of items and opted for a sqlite db

#

ah so the string conversion cant be done with that method then?

sullen marlin
#

Correct

#

Why is it a string anyway

#

Base64 it at the least

smoky oak
#

so i can copy it from console and paste it here

#

all i want is the ominous banner item in code lol

#

yea the base 64 thing did it

#

i really want to know why that 'class missing exception' only shows up on some reloads tho

sullen marlin
#

?paste

undone axleBOT
mellow edge
#

is it against mojang eula for us community to make our account authentication system instead

kind hatch
#

Likely

torn shuttle
#

I don't think it's specified

#

at least I don't remember it the last 4 or 5 times I read it

#

but these things change

#

could fall into some other less specific subsection though

smoky oak
hushed spindle
#

some people just got very special minds

#

just earlier i got someone asking why one of my commands wasnt working and he was knowingly using the wrong syntax because he thought it made more sense

torn shuttle
#

guys

#

did you know filing dmca strikes when people are illegally selling content content they took from your free download page and renamed is bullying

#

today I am learning a lot of things

hushed spindle
#

i did know that actually and you're being, dare i say, a doo doo head

worldly ingot
#

bro

#

rude

hushed spindle
#

just let them commit theft bro

#

stealing is fun and productive

torn shuttle
#

oddly enough I don't know if it qualifies as theft, just piracy

#

I mean, the download was free to start with

smoky oak
#

you wouldnt steal a car

torn shuttle
#

I'm not losing money

#

but at the same time I didn't authorize redistribution

hushed spindle
#

i mean its not theft its just plagiarism

#

which might be a type of theft? idk lmao

torn shuttle
#

it's not just plagiarism

kind hatch
#

All of those things boil down to theft.

smoky oak
#

personally i believe piracy and theft are different things. both bad, yes, but not the same

torn shuttle
#

if I go to the app store and pick free games and reupload them with a price tag I'm not "plagiarizing"

hushed spindle
#

i dont think things need to have a price tag for it to be considered theft, in this case its theft of intellectual property because they're distributing it as their own

#

semantics aside tho you're being a doo doo head and definitely a bully (cringe)

torn shuttle
#

wow

#

I've been thoroughly dunked on for having the gall of getting my content pirated

#

I've learned my lesson

hushed spindle
#

thank you god bless

#

actually now that im thinking about it

#

bullying is kinda fun

#

so keep doing it

smoky oak
#

aaanyway, different topic, how do i put a name into ItemMeta without making it go cursive?

hushed spindle
#

add a color code with it

sullen marlin
#

Now now children

torn shuttle
#

add formatting

smoky oak
#

rly?

hushed spindle
#

yea

torn shuttle
#

or &f

hushed spindle
#

you'd need to do that whole translateAlternateColorCode stuff but yeah

smoky oak
torn shuttle
#

now convert it to the correct character

lilac dagger
#

the color code

hushed spindle
#

Do ChatColor.WHITE + your name

#

just for the sake of simplicity but there are much better alternatives

smoky oak
#

oh this isnt about chat

#

its about custom item names

hushed spindle
#

i know

#

just do it

torn shuttle
#

chatcolor applies to just about every single last bit of minecraft UI

hushed spindle
#

chatcolor isnt just for chat

torn shuttle
#

also italicized is not cursive you uncultured swine

#

go learn penmanship

hushed spindle
#

disgusting

#

definitely going to hell for that one

smoky oak
#

youre right but im tired

#

it worked tho so thanks

hushed spindle
#

for ease of use you can make a utility method that translates all traditional color codes to chat color, it'll be easier to work with

smoky oak
#

i just do the &f thing with the translate method at the end

torn shuttle
#

just one last hot take, the dude left anyway but turns out my content actually belongs to mojang, which means that actually it's not piracy because now he's reselling something he didn't make and belongs to mojang... somehow

last charm
#

hey , im getting this error "Couldn't parse element predicates:fast_leaf_decay:should_start_raycasting", any idea how to fix it?

sullen marlin
#

From where

#

That sounds like a shader or something

kind hatch
#

Love it when IJ takes too much time to load the language syntax highlighting correctly so it marks everything as incorrect, then once it finally loads, it updates line by line removing all of the errors. .-.

worldly ingot
#

Sounds like their recent language server change

wise mesa
#

hard drive or ssd

sullen wharf
#

I'm trying to update a chest's inventory during a PlayerInteractEvent and it doesn't seem to update. Already tried forcibly closing player's current inventory (old chest inventory before items were added) and open the new one with the contents, doesn't seem to work. Any thoughts?

wet breach
#

Hard drive

river oracle
#

SSD unless the data is important

undone axleBOT
#

It’s hard to answer a programming question without code
Oh no! You ran into a problem. But no worries, people are willing to help, but first they need to see your code. This is because otherwise, they would be providing help based on guesses instead of concrete knowledge. Whether it be a compile error, runtime error, or an unexpected output, I'm sure that if you were to provide code, you'd receive a quick solution.

sullen wharf
#

mb πŸ™

wet breach
#

?paste

undone axleBOT
wet breach
#

It helps if you can provide the class this resides in and not just the code excerpt for the chest

sullen wharf
#

it's just a listener

wet breach
#

Otherwise we lose some context ie your code could be fine but not the order its done for example lol

sullen wharf
#

this is the InteractListener, nothing else is happening

wet breach
#

Ah ok

sullen wharf
#

let me put the whole method

#

I've verified that the container's inventory contains items after the addItem() method call

#

I think is due to the old inv overlapping the new, updated one

#

idk

wet breach
#

What is customchest?

#

Also if you are going to use physical blocks you need to set the holder of the inventory to that block

sullen wharf
#

Uh, just a class with some other data not related to the block in itself

wet breach
#

Otherwise you first create a generic inventory and then set its type of inventory you want

#

Anyways hopefully someone else can help further i am at work now lol

sullen wharf
#

πŸ€”

wet breach
#

Depends on your custom chest implementation assuming it works and actually gives you an object that refers to a physical block and not just one in memory

sullen wharf
#

uh, it gives a copy of a chest item that's on memory yes

wet breach
#

Well cant set an inventory of a block that doesnt exist

sullen wharf
#

No, but the block is placed. I'm trying to update the inventory when the chest is opened

#

while already placed on the world

wet breach
#

I understand that, but you have this custom chest object you are relying on and you create the object in the event. Since we cant see the code for it as well as what chestregistry is we cant say for certain that object is indeed pointing to the same thing

#

And it could just be one in memory only which if true is why you are not seeing any changes

sullen wharf
#

CustomChest doesn't not relate in any form to the block. It's just a data class, the influence it could have is the fact that I get the chest's itemstack from there before placement.

#

I'll drop the class src

#

relevant classes in there

wet breach
#

Hmm i will have to look at it more when i am on my break. Interesting you made it abstract

wet breach
#

Using git bash?

half wyvern
remote swallow
#

you can ignore it

#

as long as it makes the jar those errors dont matter

worldly ingot
#

They're actually unavoidable

half wyvern
remote swallow
#

does it still continue to run and and give you the spigot-1.17.1.jar

half wyvern
remote swallow
#

okay, its not an issue with buildtools then

#

do you use a .bat to start your server

half wyvern
remote swallow
#

right click it and edit it with notepad, then on a new line at the bottm add PAUSE then save it and run it again

quaint mantle
#

Is there any way to set/place a BlockState that was took from a Structure?

#

Using Bukkit/Spigot API

remote swallow
#

so check the error in console

#

?paste it

undone axleBOT
quaint mantle
#

My current code just sets the BlockState's Material and BlockData
The issue I am having is related to TileEntities

#

They get set/placed in world but don't get set/placed with their data. I've figured out that BlockData doesn't hold the information for TileEntities

#

Good evening guys, I was wondering how to read the space in the config.yml when I want to put more strings for example

message:

  • "hello"
  • " "
  • "welcome"

This is because it simply doesn't read it and doesn't give spaces

echo basalt
#

getStringList and iterate

quaint mantle
#

Ok thank you πŸ˜„

naive loom
#

Do you know of a solution or a link to like a bug issue?

echo basalt
#

no thumbsup

sullen marlin
naive loom
naive loom
eternal valve
#

how can i fish different fish on my nbt tagged(optifine) special fishing rod or ittemsadder fishing rod in minecraft

eternal valve
#

how can I get the diamond sword in the add-on I don't know how the lore tag works

#

items:
sword:
chance: 100 #

item-name: "&a&lMy Custom Sword" # 


lore: # 


  - "&7Made from CustomFishing!"
amount: 1 # 


material: DIAMOND_SWORD #
quaint mantle
#

There’s no setter, just getter method for BlockState’s Location

naive loom
#

Can someone help me with a vectoring issue? I'm just being stupid and it's alot to explain.

quaint mantle
#

And from what I’ve read you cannot instantiate a BlockState from a constructor alike (like, I can’t dependency inject the location…)

tender shard
#

I don't see any error there

lost matrix
quaint mantle
#

I already have the Structure (I loaded it from InputStream).
I just simply cannot set it's Palette's blocks...

quaint mantle
#

That's a Structure block

#

What I am attempting to do is pasting the Structure on World myself, splitting the operation through multiple ticks

#

With my current code it pastes entities without issues. I am only having issues with TileState instances since there's no way to copy/pass the existing TileState

sullen marlin
hushed spindle
#

when the player presses the jump key, is any packet sent to the server even if they happen to be in mid-air? basically is there a way for the server to know when a player attempts but fails at a jump

#

i want double jump mechanics but im tired of the requirement to use the toggle flight control to do it

smoky anchor
#

no, there is a reason the flight is used for that
and it is the fact that the server does not know about the player "wanting to jump"

hushed spindle
#

darn

small current
#

strange question

#

but how can i check if a block is actually a block

#

a cube

#

not stuff like walls and flower pots or brewing stands

hushed spindle
#
public boolean isCube(Block block) {
    VoxelShape voxelShape = block.getCollisionShape();
    BoundingBox boundingBox = block.getBoundingBox();
    return (voxelShape.getBoundingBoxes().size() == 1
            && boundingBox.getWidthX() == 1.0
            && boundingBox.getHeight() == 1.0
            && boundingBox.getWidthZ() == 1.0
    );
}
small current
#

asking this exact question

#

loool

hushed spindle
#

oh bruh

#

lmao

small current
#

im rewriting the same plugin

hushed spindle
#

did that not work?

small current
#

lolll

#

no i ignored the thread

hushed spindle
#

πŸ—Ώ

small current
#

oh no

#

im using 1.12.2

hushed spindle
#

oh no

smoky oak
#

not a dev question per se but can someone explain why theres multiple common things that don't have one unifying event? Item transmutation through crafting stations, item movement between inventories or between world and an inventory...

hushed spindle
#

what do you mean item transmutation

#

like a milk bucket turning into a bucket when making a cake?

mellow edge
bitter rune
#

Besides commenting is there another way to show a block of code is related? A way to wrap all the methods together?... not talking about adding it to it's own file, I'm trying to make my code look better by getting together like the beginning, middle ending within the class itself

hybrid spoke
#

in terms of javadocs there is @see and @link

bitter rune
#

Inside the code itself I'd upload a picture of what I currently have but imgur tells me the link is broken for some reason... I have everything very organized utility classes in a utility package, even the main class in it's own package (I don't know if this is optimize friendly but it looks nice to my eyes)

smoky oak
#

theres like 10 events

#

crafting

undone axleBOT
#

Can't send images? That's because you're not verified! Use !verify to complete verification.
Alternatively, you can upload screenshots to any image hosting site and share the link.

Here's some screenshot utilities that can use to upload images.
Lightshot: https://prnt.sc
Imgur: https://imgur.com/upload
Flameshot: https://flameshot.org

smoky oak
#

brewing

#

the new armor gilding thing

#

etc

hushed spindle
#

i mean usually the answer for not having such a unifying event available is because such conversions are different enough to not really make such an event very useful

#

brewing is pretty terrible though, i've had to redo that entire system to get custom recipes to work

smoky oak
#

bleugh

#

cancelling the brew event just makes it happen again doesnt it

hushed spindle
#

yeah

smoky oak
#

yea u know my pain

hushed spindle
#

i think 1.20 added a brewing stand burn event so you can stop it from brewing but aside from that yea nah

smoky oak
#

yea what if someone inserts a potion later

#

urgh theres so much nonsense in brewing

#

and of course the input and output data structures arent the same

hushed spindle
#

think those recipes are hardcoded in minecraft to begin with

#

theres no recipes even related to it

smoky oak
#

ouch

#

also

hushed spindle
#

so the only way to properly make brewing recipes is through modding

#

otherwise you gotta do hacky shit

smoky oak
#

why is one an inventory and the other a List

hushed spindle
#

wdym

smoky oak
#

i havent figured out how they correlate yet

#

BrewEvent

#

has the inventory as input and a List<ItemStack> as output

hushed spindle
#

yea

bitter rune
eternal valve
#

I'm a beginner. :D

abstract iron
#

Hey doing spigot coding for the first time
having some issues with setting up the world variable because it keeps returning a null value. anyone mind telling me if I wrote this right?

private World world;
private BukkitTask task;

@Override
public void onEnable() {
    world = Bukkit.getWorld("world");

    spawnMobs(9,10,5*20);
}
smoky anchor
#

Do not keep reference to the World like this.
Use UUID instead and get the world from it every time.

#

(Probably don't forget to check if the world exists or is loaded or whatever)

chrome beacon
#

By default it will load before the world causing it to be null

abstract iron
#

that might be the issue, how do I change that?

chrome beacon
#

It's a setting in the plugin.yml

#

I forgot the name

abstract iron
#

ah the load: I assume

#

what other options can I toss in there then

smoky anchor
#

Has two possible values: STARTUP and POSTWORLD

abstract iron
#

thank

sullen marlin
chrome beacon
#

Mb

abstract iron
smoky anchor
#

By default I think they mean if you do not specify "load" at all

chrome beacon
#

Startup might have been default in the mcdev plugin

abstract iron
#

Yeah thats more likely the case

#

also the thing you write to spawn in entities is
world.spawnEntity(loc, EntityType.ZOMBIE);
right?

sullen marlin
#

Yes

abstract iron
#

okay yeah mb it was working was just using the wrong coords

subtle folio
#

?paste

undone axleBOT
subtle folio
#

I'm trying to add hibernate orm into my plugin but I cannot for the life of me get the plugin to turn on due to JAXB or wtv. Does anyone know how I can fix this error? https://paste.md-5.net/icolenobus.cs

I already have the maven depdencies in my pom listed

lost matrix
remote swallow
#

ur not meant to use a file config anymore iirc

subtle folio
#

for hibernate?

remote swallow
#

yeah

#

thats setup to library loader

small current
#

guys is networkmanager a private field in 1.19.4?

remote swallow
#

which class

small current
subtle folio
#

what verison of hibernate are you using

small current
#

i cant access it

remote swallow
small current
#

and i dont know how to get the type of click of a PacketPlayInUseEntity

remote swallow
#

ServerGamePacketListenerImpl?

lost matrix
#

Btw why did you include both javax.xml.bind:jaxb-api and jakarta.xml.bind:jakarta.xml.bind-api.
Arent they essentially the same libraries under different groupIds due to Java EE moving to the Jakarta namespace?

remote swallow
#

thats the only network thing

small current
#

i dont have time to implement mojomaps

remote swallow
#

osfucated is b for that

small current
#

at least 30 minutes

small current
remote swallow
#

connection

small current
#

and netowrkmanager?

#

in connection

remote swallow
#

this is the only network thing i see

small current
#

playerconnection

#

in PlayerConnection

#

or

#

servergamepa....

remote swallow
#

yeah its b

small current
#

yeah yeah that

remote swallow
#

player connection is b

small current
#

and in that

eternal oxide
#

onlyt takes 10 minutes to implement mojmaps, including building spigot

lost matrix
#

Dont use nms if you dont use mojmappings. Thats a horrible idea and you will loose
a lot more time than simply setting up mappings.

small current
#

in player connection

remote swallow
small current
#

i have 35 minutes max

#

i need to fix other stuff

eternal oxide
#

you will waste more time not doing it

#

your choice though

hasty prawn
#

It definitely is worth it

lost matrix
#

?nms

lost matrix
#

I mean its just running BuildTools and adding a few lines to your pom

small current
#

ok and

#

how can i get the click type

#

for

#

PacketPlayInUseEntity

eternal oxide
#

um, might sound silly but why are you using nms for this?

lost matrix
#

Probably for fake entities

small current
#

npc

eternal oxide
#

I guess. I'd just addToWorld and use Spigot events

small current
#

thats the worst answer

#

if you want help with fake entities

eternal oxide
#

using teh API is ALWAYS the correct answer

small current
#

anyone knows how to do it?

#

the click type of an interact

#

PacketPlayInUseEntity

hasty prawn
#

I'm not sure why you're expecting to get an answer considering 3 people have told you better ways to do what you're trying to do

lost matrix
#

ServerboundInteractPacket has an action field of type ServerboundInteractPacket.Action

small current
hasty prawn
#

Sounds like poor planning, but what you're looking for is exactly what smile just gave you, he just gave it to you in mojmaps because that's what you should be using for NMS.

small current
#

u guys are bunch of npcs fr

hasty prawn
#

It's not our fault you didn't do your research and time management well πŸ˜‚

lilac dagger
#

i used to be an adventurer like you, then i took an arrow to the knee

#

@small current i don't know what you mean by this

small current
#

by what

#

PacketPlayInUseEntity

#

is it right click

lilac dagger
small current
#

or left click

#

nothing nvm

lost matrix
# small current nothing nvm

Create an implementation of ServerboundInteractPacket.Handler and then call ServerboundInteractPacket.dispatch(Handler) on the packet.
This way you can get hold of the Action and ActionType of this packet.

#

*Without mappings: Use ProtocolLib or play around with reflections for an hour.

small current
#

can we do it without implementing stuff?

lilac dagger
#

this is how i do it

lost matrix
#

I would never read out a bytebuf if i can gain access another way

lilac dagger
#

the id is private

#

i rather use bytebuf to read

#

than reflections

small current
lost matrix
#

You dont need reflections to get the ID or Action

small current
#

is this plib

lilac dagger
#

no, nms

#

how do you get the id?

small current
#

reflections

lilac dagger
#

without

small current
lilac dagger
#

FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(Unpooled.buffer()); packet.write(friendlyByteBuf); int id = friendlyByteBuf.readVarInt(); int action = friendlyByteBuf.readVarInt(); if (action == 2) { friendlyByteBuf.readFloat(); friendlyByteBuf.readFloat(); friendlyByteBuf.readFloat(); } if (action == 1 || action == 2 && friendlyByteBuf.readVarInt() == 0) { Bukkit.getPluginManager().callEvent(new AsyncPacketEntityInteractEvent(player, id, action == 1)); }

small current
#

there is no packet.write

#

and is that for 1.19.4?

lilac dagger
#

it's in my packet sniffer

lost matrix
#

nvm i thought the id could be read through the handler.
public Entity getTarget(ServerLevel var0) looks like a garbage method which should not exist.
Since when is a packets responsibility to fetch an entity from a serverlevel.

lilac dagger
small current
#

cant i do it with reflections?

lilac dagger
#

you can

small current
#

because the only var int i see

#

is

#

private final int a;

#

which is the ID

#

there is no other int in the packekt

lilac dagger
#

the enum is stored as an int anyway

lost matrix
#

Use the bytebuf then. Reflections on packets will kill your servers performance if not done correctly

small current
#

public class PacketPlayInUseEntity implements Packet<PacketListenerPlayIn> {
private final int a;
private final EnumEntityUseAction b;
private final boolean c;

small current
#

private final EnumEntityUseAction b;
doesnt look like an int to me

lilac dagger
#

it's stored as ordinal()

small current
#

EnumEntityUseAction is not even an enum

lost matrix
#

The field is of type Action. Only the buffer has it as an int.

lilac dagger
#

it is named as one

small current
#

interface EnumEntityUseAction {
b a();

    void a(c var1);

    void a(PacketDataSerializer var1);
}
#

it is

#

😭

lilac dagger
#

that doesn't seem right

lost matrix
#

Well. Then get the Action via reflections and the ActionType by calling a() on it

lilac dagger
#

the type is b

lost matrix
#

b is the enum

lilac dagger
#

that's the action

small current
#

there is

#

b

#

private static enum b {
a(d::new),
b((var0) -> {
return PacketPlayInUseEntity.d;
}),
c(e::new);

    final Function<PacketDataSerializer, EnumEntityUseAction> d;

    private b(Function var2) {
        this.d = var2;
    }
}
#

well

#

a is attack

#

b is interact

#

looking at the ordinal you used

#

correct?

lilac dagger
#

yes

#

no

#

1 is attack

small current
#

well a is 1

#

or

#

0

#

wait

#

b is attack

#

c is interact

lilac dagger
lost matrix
#

a is Interact
b is attack

You just fking wasted 10 more mins by digging through mappings

lilac dagger
#

just use ?nms

#

it'd be so much easier

small current
#
    static final EnumEntityUseAction d = new EnumEntityUseAction() {
        public b a() {
            return PacketPlayInUseEntity.b.b;
        }

        public void a(c var0) {
            var0.a();
        }

        public void a(PacketDataSerializer var0) {
        }
    };

so here, i should get the d ith reflections, then get a() ?

#

its static

#

wha

lost matrix
#

No

lilac dagger
#

it's package private

small current
#

well thats the only b

lilac dagger
#

means you can't read it like that

lost matrix
#

Get the b field

small current
#

that i can get

small current
#

so b field

#

then

lost matrix
#

From this object you call a()

small current
#

i get the a()

#

aaaaa

lost matrix
#

Which gives you the b enum

small current
#

thx m8

valid burrow
#

is there any way i can trigger a void that is not static from a command

eternal oxide
#

?di

undone axleBOT
valid burrow
#

thx

scenic onyx
#

Do you know a site that creates text for you with gradient colors but can be used in the console.

remote swallow
#

Spigot console doesnt support normal colors iirc so youd need a specific one

scenic onyx
lilac dagger
#

mojang namings

floral drum
#

genericsFtw

#

cmon they could've capitalized TW

solar sparrow
#
public void onPlayerInteract(PlayerInteractEvent event) {
        Player player = event.getPlayer();
        Block clickedBlock = event.getClickedBlock();

        if (clickedBlock != null && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
            Material clickedBlockType = clickedBlock.getType();

            if (clickedBlockType == Material.SOIL) {
                // Verifique o nΓ­vel do jogador para determinar a distΓ’ncia mΓ‘xima para plantar trigos
                int playerLevel = getPlayerLevel(player);

                int maxPlantDistance;

                if (playerLevel == 2) {
                    maxPlantDistance = 4; // Se o jogador estiver no NΓ­vel 2, aumente a distΓ’ncia mΓ‘xima para 4 blocos
                } else {
                    maxPlantDistance = 2; // Use 2 blocos como distΓ’ncia padrΓ£o (NΓ­vel 0 ou NΓ­vel 1)
                }

                Block targetBlock = findNextFarmlandBlock(player.getTargetBlock((HashSet<Byte>) null, maxPlantDistance));

                // Verifique se o bloco de destino estΓ‘ vazio e Γ© um bloco arado (Material.SOIL)
                if (targetBlock != null) {
                    // Defina o bloco de destino como CROPS (trigo)
                    targetBlock.setType(Material.CROPS);
                }
            }
        }
    }

Hello, I once had a problem similar to what I'm having now, when I tried to plant the seed on the nearby plow block, it was breaking where it was planted, how can I do it to plant it and not break it, the last time I had this problem Someone told me to use something like "nextblock" but I don't remember anymore ((spigot 1.8.8)

young knoll
#

What is the goal here

#

And what does findNextFarmlandBlock look like

solar sparrow
#

findNextFarmlandBlock is to search for the block next to the side the player planted and plant a seed

young knoll
#

Why do you use getTargetBlock when you already have the block they clicked on from the event

gritty brook
#

ey

lilac dagger
#

is there some other way to get this without reflections?

#

nope

#

no getter

young knoll
#

Then no

lost matrix
lilac dagger
#

PlayerConnection or mojang ServerGamePacketListenerImpl

gritty brook
#

If I create a public repository on github for my standalone library without any license meaning that I retain all rights to my source code and no one may reproduce, distribute, or create derivative works from my work. But if I upload the same standalone library with another plugin which uses that library on SpigotMC, will the rights stay the same or will it go under GNU license?

young knoll
#

Technically plugins should be GPL since spigot is GPL

#

At least that's how I intemperate it, idk I'm not a lawyer

#

But it's not enforced at all and tons of plugins are ARR

eternal oxide
#

If you want to keep your code your own, don;t publish it on GH

gritty brook
#

and what if someone decompiles my code from Spigot and creates a new plugin out of the code?

#

do I have the right to report a take down?

eternal oxide
#

you could issue a DMCA IF you can 100% prove it's yoru code

#

If you can't you open yourself to being sued

gritty brook
#

what do you mean by 100%?

eternal oxide
#

You'd have to be able to prove its your code without a doubt

gritty brook
#

interesting

gritty brook
eternal oxide
#

A server was reported to me once, where it looked like they had broken my license. The display of all text was identical.

#

I contacted them and asked, where they offered to show me theior code, so I asked for specific sections. It wasn;t mine, although teh final output looked identical

gritty brook
#

and?

#

what did they do about it?

eternal oxide
#

and it wasn't my code so that was the end of it. You can;t copyright an idea.

young knoll
#

You can patent it though

eternal oxide
#

if its functional, yes

young knoll
#

Me omw to patent my skripts

gritty brook
kind hatch
#

Money

young knoll
#

And legal stuffs

eternal oxide
#

its nto really worth it, in most cases

lost matrix
#

You dont have anything worth patenting

young knoll
#

How dare you, I invented oxygen

shadow night
#

Why are people so greedy, just let peeps use your code

lost matrix
#

Oxygen is useless to us. We are spigot devs, surviving on basement fumes.

lost matrix
remote swallow
#

choco isnt here untill the 17th

eternal night
remote swallow
#

chollco is our replacement

lost matrix
#

lol

young knoll
#

I didn't even change it myself

scenic onyx
#

Can anyone tell me that ascii text is the writing LP?

lost matrix
#

| _ )

young knoll
#

I would generally advise against those kind of messages

#

They just take up log space for no real reason

kind hatch
scenic onyx
scenic onyx
sullen wharf
#

How do I set a list of ingredients to a specific character on a recipe?

#

Atleast, what's the best way to approach that

lost matrix
#

Just create a RecipeChoice and use the vararg or List constructor.
Both MaterialChoice and ExactChoice work.

sullen wharf
#

I'll have a look at it, thanks πŸ˜‰

shadow night
#

Hey guys, let's say I have a method that has to take a object like ThisIsAclass.class and the class has to extend some other class I specify, like for example ExtendMeClass. How would that look? public void myMethod(Class<idkwhattoputhere> clazz){...}?

hazy parrot
#

Class<? extends ExtendMeClass>

#

Or T

#

Depends what u want

lost matrix
#

Viable

public <T extends ExtendMeClass> void myMethod(Class<T> type) {

}

Also ok

public void myMethod(Class<? extends ExtendMeClass> type) {

}
shadow night
#

Hmm, ig the T one is better as I wanna have a variable with T type and return the T type variable

hazy parrot
#

Use T if u need T

#

If not just ?

shadow night
#

Thanks!

subtle folio
#

Why not any other letter?

#

Why can't I return B

#

will there be a sniper to my head

smoky oak
#

no itll just not compile

#

T and ? are special characters here

hazy parrot
#

It's not

subtle folio
#

T is not true

hazy parrot
#

U can put whatever u want

subtle folio
#

you can have any type you want

remote swallow
hazy parrot
#

T just stands for Type

lost matrix
#

Nah you can also just use VELOCIRAPTOR if you wanted to

smoky oak
#

alright u do you

subtle folio
#

wait it can be full words?

hazy parrot
#

Yes

subtle folio
#

im returning apacheHELICOPTER

lost matrix
#
public <BUSDRIVER extends ExtendMeClass> void myMethod(Class<BUSDRIVER> type) {

}

This does the same

#

T is just a convention

#

T - Type
E - Element (used extensively in the Java Collections Framework)
K - Key (common for maps)
V - Value (also common for maps)
N - Number

hazy parrot
#

Same as K for key and v for value

subtle folio
#

i saw someone use L and R for a tuple once

chrome beacon
#

and then there's the DFU

zealous osprey
#

left, right

lost matrix
#

Sounds good to me. But Pair or Tuple are evil and dont belong in java.

zealous osprey
#

Use records instead?

lost matrix
#

Any type of class will do

smoky oak
#

isnt there that K, T, Z thing too

worldly ingot
lost matrix
young knoll
#

I belive @remote swallow has a class for like

#

4 generic objects together

remote swallow
#

3

lost matrix
#

Quintuple

remote swallow
#

Bi and Tri Value

lost matrix
young knoll
#

I swear you did 4 too

remote swallow
#

couldve used @builder

remote swallow
#

then thought i dont want to make my code that bad

young knoll
#

he says while using lombok

#

Oh boy people finna come at me for that one

remote swallow
#

my lombok is perfectly fine

#

lombok is fine if you know what its doing, using it without knowing what it does is whats bad

worldly ingot
lost matrix
#

imo needing to use something like that indicates a design issue

remote swallow
#

yeah

young knoll
#

It's more of a skill issue

remote swallow
#

lets just remove the actual usage for insert key and give it to ides

opal carbon
#

i am a lombok hater

#

lombok nasty fr

remote swallow
#

reminds me of cmarcos toml thing

lost matrix
#

I always love seeing the @SuppressWarnings("unchecked") on top of a method.
Prepares me to read some nasty stuff.

opal carbon
#

i just ignore warnings smh why supress them

young knoll
#

@SupressWarnings("all") on every class

worldly ingot
#

You guys don't do that?

worldly ingot
remote swallow
#

seems like something you would do

worldly ingot
#

Probably

opal carbon
#

wow hm that class seems rather generic

onyx fjord
#

even jdk code uses that

river oracle
#

Still wish you could do instanceof but alas type erasure

lilac dagger
#

this vs:

#

which is cleaner?

#

is it worth making this a method?

#

actually without the last line

hazy parrot
#

Isn't there computeIfAbsent?

young knoll
#

yes

lilac dagger
#

wait there is

young knoll
#

mhm

lilac dagger
#

and with a function

hazy parrot
#

Yes

lilac dagger
#

i was using a supplier into mine

#

it's actually shorter too

#

so thank you πŸ˜„

young knoll
#

even shorter if you just use k instead of uuid :p

livid dove
quaint mantle
# sullen marlin Just call blockstate.update(true)

It does not work as intended. I checked carefully and it seems that said reference of BlockState whenever you do BlockState#getLocation it returns an offset from an origin. That location is not even linked to a world...

young knoll
#

Yeah

#

That is documented

#

There is currently no way to place a blockstate from a structure aside from placing the entire structure

quaint mantle
#

Guys, when I restart the server via /rl confirm and right click on the items I drop this error, but if I exit and return everything works normally and opens the server selector gui etc.

pastebin.com/v13YTatJ

quaint mantle
glad prawn
#

/restart

quaint mantle
#

that changes, excuse my ignorance

quaint mantle
livid dove
#

So before i go into a rabbit hole, ive been thinking about the Bukkit Scheduler and, as of the moment, it doesnt have a way to be checked during event listeners unless you bodge job.

(E.g: Say you had a scheduled task that teleports a player, there is no out of the box way to tell if a TP's cause was via an execution within a task, or even if the player is involved with the a currently scheduled task) .

Would there be utility (other than my own cases that ive seen, but am concious of tunnel vision) to adding a system to allow for this sort of check

worldly ingot
#

Could make use of a CompletableFuture

livid dove
#

How so?

smoky oak
#

would use y cuz u just fall down

fossil flax
#

how can i create a only console command?

tall dragon
#

and show an error message if thats not the case

fossil flax
#

oh ok

#

ill try, thank you

kind coral
#

hellooooo! can anyone help me on this? i am trying to dynamically load a world from a directory, but when doing so i apparently create a normal world

File outputFile = new File(Bukkit.getWorldContainer(), "game_world_" + externalWorldDirectory.getName() + "_" + System.currentTimeMillis());

            try {
                Files.copy(externalWorldDirectory.toPath(), outputFile.toPath());
            } catch (IOException e) {
                getLogger().severe("Failed to copy map " + mapDirectoryString + "!");
                getLogger().severe(e.getMessage());
            }

            WorldCreator worldCreator = new WorldCreator(outputFile.getName());
            World loadedWorld = Bukkit.createWorld(worldCreator);
sterile token
#

What is the best way for creating multiple player nametags lines, independent fron each other. Something like:

<other line> <line here>
player head

#

I had find so far that the only way is by multiple armor stands

rough drift
sterile token
#

I have asked to some devs and they told me to use them

smoky oak
#

im not sure about this one, since i haent looked into it yet, but afaik new minecraft versions have them

#

basically the same thing but simpler

sterile token
#

yeah tha tthe whole issues, shity versioning

kind hatch
#

Display Entities are the successor to Armor Stands. There is no reason not to use them if they are available to you.

floral drum
#

Just a suggestion

floral drum
#

so it doesn't affect server performance

#

yea

#

Or at-least not as much as a real entity

sterile token
#

because each line == 1 armor stand, 2 lines == 2

floral drum
#

Mhm

sterile token
#

I mean so far armor stands cant have more than 1 text, or im wrongly?

#

I mean i never really worked in deep with them

floral drum
#

Well, entities overall, can only have one displayname, so I'm not sure about having more than "1 text"

#

Doubt they have support for \n though

sterile token
#

so you can simulate many lines with it?

floral drum
#

Not with a single armorstand, from my knowledge.

#

Each line is an additional armorstand

#

Just make it packet based and you should be fine

sterile token
#

yeah what i mean before?

#

allright thanks sir

#

Have a nice day

#

If i need or havbe any doughts i will tell you

upper hazel
#

I need help related to programming and politics. Can the prepayment for the program be demanded back? I'm just sick and would like to be cured

sterile token
#

oh i just understand, you are having legal problems

fossil flax
#

is there a way to run a command like gm 1 for player that are not in the server like CMI?

upper hazel
sterile token
upper hazel
#

as a performer

sterile token
#

ohh you mena performance and applications

#

I understand u were having legal problems because i read politics

upper hazel
#

I’m making a plugin with an advance payment for a considerable amount, but I’m sick and maybe I won’t make it on time or the customer will change his mind and I need to get cured

remote swallow
sterile token
#

Atleast in my case im none 18, i made the reponsable my fathers. So if i have any legal problems they respond for me

sterile token
#

Yeah i think is really necessary to have a form when selling

#

I know i dont have best enlgihsi but i will translate what i mean

upper hazel
#

do I need a contract? Does it protect completely?

sterile token
#

Yes contract protect a lot

#

Because you clarify everything for both part, you as a dev and client

#

So then if they broke it, you can take legal actions

upper hazel
#

but I heard about consumer rights, some conditions cannot be included in the contract

sterile token
#

Yeah, well it depends on the counry laws

remote swallow
#

this isnt legal advice, im not responsible if anything bad happens if you follow it but im pretty sure a legally binding contract will help, if it includes "you get paid xyz for software with xyz features and if its not completed in xyz time all money returned etc etc"

#

then if they would charge back you could take legal action and sue for the cost and court fee's

echo basalt
#

Uhh

#

There usually is no need to like

sterile token
upper hazel
#

Can the time spent be considered an expense?

echo basalt
#

Write a full contract

#

for each commission you do

#

I'd be signing 200+ contracts

#

It's pain

sterile token
#

Yeah, i just write a single contract which is meant for all comissions

echo basalt
#

If you are doing serious work for a team, and doing part/full-time hours every week for months

#

Get a contract

#

If you can

sterile token
#

Why wouldnt you?

upper hazel
#

I've been writing for 2 weeks now

echo basalt
#

tax evasion

sterile token
#

If you ask then a contract and they dont give it, its not the way

echo basalt
#

For example

#

I've signed 3-4 contracts in my life

#

Been working for this dude for the past year and a half and no contracts with him

#

but we have mutual trust

#

Contracts cover your ass

#

They cover both parties

sterile token
#

yeah, but when you dont know the people you must sign

echo basalt
#

As it lays down the expectations for both parties

#

What they can and should do

sterile token
#

if not they will fully open and take approach of you

echo basalt
#

Etc

#

If you don't know the person, sign contracts

sterile token
#

right, so in conclusion smile?

echo basalt
#

If you can trust them with your life, do whatever

#

NDAs and ICAs are two different things

sterile token
echo basalt
#

Sometimes they're merged

upper hazel
#

It’s too late, I’ve already spent 10% on treatment. Is it possible to give him a program for this amount as insurance?

echo basalt
#

Uhh depends on the contract

#

Is it reasonable to charge them 10% for treatment?

sterile token
#

If you dont have any contract he cant barelly do much

echo basalt
#

If you're only been working with them for 1-2 weeks

#

If you don't have a contract they don't have to pay jackshit

upper hazel
sterile token
echo basalt
#

And when you usually sign contracts

#

If you're an employee, they can cover depending on where the contract was signed

#

If you're a contractor, you're on your own

#

9/10 chance you're on your own

upper hazel
#

I don’t have many orders for large amounts, very rarely, so not yet

echo basalt
#

But why would you try to pass on medical fees to someone in this industry is beyond my understanding

sterile token
#

okay, could really describe what happen specific

echo basalt
#

just make more money and pay for it

remote swallow
#

you have already spent 10% of the pre-payment but dont want to complete the comission now?

sterile token
echo basalt
#

If that's the case

#

Refund the 90% and explain how you had to spend some in medical fees

#

and offer to refund the other 10% later

#

Hold yourself to the highest standards possible and ask yourself "what would a perfect person do in this scenario?" and follow through

#

That's how I got as big as I am

remote swallow
#

u sure its not bc ur a nerd

sullen marlin
#

Can U make me a ploogin

remote swallow
#

what kind of plugin

echo basalt
#

🎢 they said I would be nothin' 🎢
🎢 now they only say 🎢

eY aliSon mAke Me Poogin Hypixl 5$

sullen marlin
#

^ Hypixel ploogin would be grate

upper hazel
#

I was made the plugin over 2 weeks 50 %. Everything was fine until I got sick. I couldn’t write a plugin while I was sick, so I decided to recover and pay for treatment. I didn’t ask my family for money; everyone there got sick. The customer is not set up for a refund, I'm worried just in case

echo basalt
#

this is why I don't take upfront money anymore

#

lesson is simple

#

don't spend upfront money

sullen marlin
#

Depends on what the contract says

remote swallow
remote swallow
sullen marlin
#

If there's no contract well then that's a lesson

sterile token
echo basalt
sullen marlin
#

I think there's enough attempted legal advice here already taps sign

remote swallow
#

entirety of hypixeel in 2 weekl?

echo basalt
#

ye

remote swallow
#

go get urself some new wrists

sterile token
#

lol you are a fucking nerd, how the heck you can recreate entire hypixel in 2 weeks

scenic onyx
sullen marlin
#

πŸͺ­

remote swallow
echo basalt
sterile token
sullen marlin
#

It's a fan emoji

#

Guess it's new

remote swallow
#

smh iphone

echo basalt
sullen marlin
#

Doesn't show in discord for me either

scenic onyx
#

I can replicate it in console?

sullen marlin
#

Even though it's on the keyboard

worldly ingot
#

πŸͺ­

echo basalt
sullen marlin
#

Android

eternal night
worldly ingot
#

I’m on iOS

remote swallow
sterile token
worldly ingot
#

Sue me

eternal night
#

πŸ‡ͺπŸ‡Ί

sullen marlin
#

That's USB 2

worldly ingot
#

Thank you EU overlords

scenic onyx
sullen marlin
#

That's the outrageous part

eternal night
#

no no no

#

the max one has 3

echo basalt
#

getConsoleSender instead of getLogger 90% chance

tranquil beacon
sterile token
echo basalt
#

I love how they're advertising usb3 hardware on apple silicon as a selling point

remote swallow
#
 _   \              /
|_)    \    /\    /
| )      \/    \/
 - ```
scenic onyx
remote swallow
#

that fucked up

echo basalt
#

even a raspberry pi has usb3

upper hazel
#

There was a pleasant incident when, by the mistake of my youth, I took an order for a large amount (large in our country) and failed. But the money was not taken. β€œKeep it with you, I’ll go” - something like that

eternal night
#

didn't think so

livid dove
#

Cant let a guy choose between illness and plugin work