#help-development

1 messages · Page 817 of 1

valid burrow
#

you can for example make a inventory holder class that creates all inventorys on server start and then uses them later one

#

is also easier on the server cause it doesnt need to constantly create new inventories

eternal oxide
#

Best to avoid InventoryHolders unless you can't

valid burrow
eternal oxide
#

it's to do with cloning when accessing (I believe), so not performant

valid burrow
#

any way i can check if an entity is an "animal" is there any such class

eternal oxide
#

just use the inventory instance

#

yes

rotund ravine
eternal oxide
#

instanceof Animals

valid burrow
#

WHAT IS HAPPENING TO MY LLAMAS

#

THEY ARE LITERALLY TELEPORTING

ashen quest
#

Llamao

valid burrow
#

why is commeted out code worth a warning now

#

whats the pointz

lost matrix
rotund ravine
#

Ignore me

#

?blockpdc

undone axleBOT
lost matrix
rotund ravine
upper hazel
rotund ravine
#

Time?

eternal oxide
#

code execution time is minimal in comparison to not overloading a tick

upper hazel
#

I mean if you distribute the task into ticks then the execution time will be longer as I understand it

eternal oxide
#

The whole point is to prevent lag

lost matrix
#

This approach will produce a small amount of overhead. But i would rather have 10 ticks with 6ms each (totaling 60ms)
instead of one tick with 50ms

remote swallow
#

the task taking longer with no lag over it taking less tim but everyone freezes untill its done

upper hazel
#

using this tactic, AsyncWorldEdit or whatever it’s called became faster?

rotund ravine
#

Asyncworldexception

remote swallow
#

what about fast async world exception

upper hazel
#

But I didn’t understand a little: the task without distribution tries to be completed in 1 tick, but with distribution we divide the task into several ticks?

eternal oxide
#

any overloading of a tick causes lag

#

you can;t do three days work in one day

lost matrix
#

If only CPUs had access to coke...

upper hazel
#

and after the end of the tick the task just stops or what?

upper hazel
lost matrix
valid burrow
#

when using commands animals always take over the aid of the mob riding it why isnt this the case when i spawn them through my plugin

#

am i missing something

upper hazel
valid burrow
upper hazel
rotund ravine
valid burrow
#

Ai*

rotund ravine
lost matrix
upper hazel
#

i see

weak bear
#

Why I Have this problem please ?

#

[18:24:35 WARN]: [ShinobiLegacy1-16-5] Task #7 for ShinobiLegacy1-16-5 v1.0 generated an exception
java.lang.IllegalArgumentException: Channel must contain : separator (attempted to use shinobilegacy)
at org.bukkit.plugin.messaging.StandardMessenger.validateAndCorrectChannel(StandardMessenger.java:503) ~[forge:?]
at org.bukkit.plugin.messaging.StandardMessenger.isOutgoingChannelRegistered(StandardMessenger.java:428) ~[forge:?]
at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:543) ~[forge:?]
at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1312) ~[forge:?]
at fr.spectr2155e.shinobilegacy.proxy.PacketListener.sendTextToPlayer(PacketListener.java:200) ~[?:?]
at fr.spectr2155e.shinobilegacy.stats.listeners.JoinStatsEvent$1.run(JoinStatsEvent.java:35) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:90) ~[forge:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:461) ~[forge:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1046) ~[?:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:345) ~[?:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:998) ~[?:?]
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:815) ~[?:?]
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:267) ~[?:?]
at java.lang.Thread.run(Unknown Source) ~[?:1.8.0_202]

undone axleBOT
upper hazel
#

That's cool, but I don't think it'll speed up my locator code, but thanks.

weak bear
weak bear
rotund ravine
#

The error says it all

lost matrix
weak bear
#

Oh that's for it ?

#

I just saw that I used Java 8 on my computer x)

lost matrix
weak bear
#

Oh ok I just understand my error I just switch on 1.16.5 since I was 1.12.2 so my packet change

#

I find the solution

lost matrix
upper hazel
# weak bear https://paste.md-5.net/ibeconabub.pl

chatGpt -> It looks like the error you are experiencing is related to the plugin sending a message to Minecraft using an invalid channel. According to the fires report, the channel must support the ":" delimiter and trying to use "sinobilegacy" caused this error.

To resolve the error, you need to check and fix the original channel for sending the added message. Make sure the channel contains the correct ":" delimiter format and meets the requirements for adding posts to your plugin or mod.

If you have more information about thousands of errors or how you tried to send a message, this can help pinpoint the problems and their conditions.

valid burrow
deep herald
#

anyone know how to check if a plugin is enabled in bungee?

valid burrow
#

no clue but your profile is cute

#

10/10

deep herald
#

thx

#

not my cat

lost matrix
#

"when using commands animals always take over the aid of the mob riding it"
This sounds like bogus to me. Idk what that even means.

eternal oxide
#

you can easily test thats hypothesis. Mount wolves, then spawn a sheep and see if the mounts go for the sheep

valid burrow
#

AI = aid*

#

let me make it very simple

#

i put zombie on chicken using command

#

chicken will be hostile

lost matrix
valid burrow
#

but with plugin

#

its not

valid burrow
lost matrix
# deep herald .

A bungee plugin or if a plugin on one of the proxied servers is enabled?

deep herald
#

uh

#

bungee plugin

#

im making a plugins cmd

#

for bungee

lost matrix
valid burrow
lost matrix
deep herald
lost matrix
#

?jd-b

#

?jd

undone axleBOT
valid burrow
#

?paste ill only put the crucial stuff cause theres like alot of other stuff in there

undone axleBOT
valid burrow
#

for the spawning related stuff at least

lost matrix
# deep herald .

Looks to me like you need to get the PluginManager and then call getPlugin(String) to check if its loaded.

twin venture
#

hi , so when spigot game server arena close i send this to the lobby server :

and i remove it once its requested .. am i doing anything wrong?

#

also the uuid is diffrent each time server is opned :

twin venture
#

how could i check it then?

lost matrix
#

What is your concrete problem?

valid burrow
#

seems to work now even though i didnt really change anything well

#

thx ig

#

in addition to that any idea how i can stop messages like these Named entity EntityDolphin['mosasaurus'/22115, l='ServerLevel[world]', x=-147.99, y=68.26, z=456.60] died: mosasaurus was blown up by Creeper from being printed out

#

theres like a thousand names entites bc of my plugin i dont want contstant death messages by them

twin venture
# lost matrix What is your concrete problem?

when a game server close :
it should update the gui :
updat this so , when a server game arena close , it should remove one from the size ... but it does not do that , so it keep increasing each time a the same server is opned.
that's my problem now

valid burrow
#

add debug statemenmts

#

i mean it gotta get lost somewhere

gleaming grove
#

Hi, how can I make itemstack of material stick with customModelData not stackable?

eternal oxide
#

add a random value to its PDC

gleaming grove
#

random namespacekey or random namespacekey value?

valid burrow
#

doesnt matter

#

just anything that makes it unique

gleaming grove
#

ok

proud badge
#

would it be possible for me to change the colour of a glow effect ?

gleaming grove
#

from curiosity, does PDC is bukkit fancy wrapper for NBT
or PDC data and NBT data are 2 different things ?

eternal oxide
#

PDC is stored in NBT

twin venture
#

nothing was send to lobby server :

proud badge
chrome beacon
#

Yeah

#

You need to use teams

vague swallow
#

@outer brook

lost matrix
vague swallow
#

does this change anything?

lost matrix
#

Yes, if it has no AI then it wont be ticked

vague swallow
#

If ound out I can set a velocity on the armorstand if it has gravity and is not marker. If it is marker or has no gravity or both then I can't set a velocity on it

proud badge
#

Is there no opposite void for this? setEnabledSlots or something

#

(i tried setEnabledSlots)

zealous osprey
valid burrow
#

quick question why is this the only one that can produce a null pointer exp

lost matrix
lost matrix
valid burrow
#

ahh thy

winter galleon
#

i need help,

    public void onArmorStandInteract(final PlayerInteractAtEntityEvent event){
        final Player p = event.getPlayer();
        final ItemStack macchinetta = new ItemStack(Material.PURPUR_BLOCK);
        final ItemMeta itemMeta = macchinetta.getItemMeta();
        itemMeta.setCustomModelData(16);
        macchinetta.setItemMeta(itemMeta);
        if (p.hasPermission("eternitystaff") && event.getRightClicked().getType() == EntityType.ARMOR_STAND) {
            final ArmorStand armorStand = (ArmorStand)event.getRightClicked();
            if (armorStand.getEquipment().getHelmet().getItemMeta().getCustomModelData() == 16) {
                getServer().dispatchCommand(getServer().getConsoleSender(), "dm open basics_menu " + p.getName());
            }
        }
    }
}```
i did this, but doesn't work cause of worldguard
lost matrix
drowsy helm
grim hound
#

Is there a way to know when the client is ready to have a map rendered? If I send it too early it doesn't get rendered, so I delay it, but that sometimes also isn't enough. Is there any specific packet (either client or server) I could listen for to know that I can send the map now and have it be rendered?

quiet ice
#

To any kotlin devs:
When can one use closures? I assume that I can use them whenever the only argument of a method is a functional interface, but are there any extra limitations (e.g. how many arguments the functional interface can have)? Are there additional usecase where closures can be used (e.g. if there are arguments before the method, as would be the case with void myMethod(int i, IntConsumer intConsumer) or with return types such as Consumer<Object> myMethod())?

zealous osprey
#

Does anyone know if there is a type of Cache which works similarly to a time based one, except that you "tick" it manually in the code?
So something where you have a cache and say, that it should clear all elements older than X "ticks".

So the code could go and "tick" the cache and that then performs the culling.

quiet ice
#

Wouldn't be too hard to write it yourself

dry hazel
#

function type being a first-class kotlin function or a java functional interface

sullen marlin
#

Check the bungee expiring list test

quiet ice
sullen marlin
#

FixedTicker

zealous osprey
sullen marlin
#

Spigot has guava and a scheduler built in

#

Et voila

quiet ice
dry hazel
#

I might be misunderstanding what a closure is

#

my only knowledge of that word comes from groovy

quiet ice
#

Same here.

dry hazel
#

the invocation of the method you linked would be just container.register(name, type, arg1, arg2, ...)

quiet ice
#

Yeah, now the question is whether I could use the returned provider to configure the task after registering it

dry hazel
#

gradle probably has either their configuration dsl, or you can just use the kotlin stdlib apply function to operate on it as a receiver

quiet ice
#

I guess I would be able to manually configure it container.register(/* ... */).configure { /* ... */ } though, so shouldn't matter now that I think of it

#

Yeah I am a dum-dum

dry hazel
#

if you're making a plugin, you can apply the kotlin-dsl plugin into your plugin's buildscript to get some kotlin niceties

#

which would probably have the necessary extension to skip the .configure

quiet ice
#

Nah, I'm writing my own version of gradle. However unlike most attempts I figured that the buildscript isn't that bad of an idea

eternal night
#

I am sure it will be as good as gradle if not better NODDERS

quiet ice
#

Depends on how you define good

eternal night
#

I mean I guess, you can make a terribly specific build tool for a terribly specific case

#

and maybe be more useful than gradle

lost matrix
#

Try to support java versions within 3 months of them being released and you are already a step ahead

eternal night
quiet ice
#

Yeah the usecase of the build tool will be working with multiple java versions. And the only real headache that I will get is whether kotlin supports a given java version, but thankfully that is only needed for running. For compiling I'll most likely go very fancy and use janino which I deem to be surprisingly debug-able

dry hazel
#

kotlin's earliest supported version is 8 nowadays iirc and there shouldn't be any problem with newest and future versions

quiet ice
#

Well great

#

Better than groovy which always seemed to break with every new java version

dry hazel
#

there used to be targets for 1.5 and such but those are removed/deprecated now iirc

quiet ice
#

Meh, I don't intend on running that low anyways.

valid burrow
#

goes anyone know from the top of their head how generic attack attribute damage scales

#

like how much is 1 heart

lost matrix
#

1 damage = 1 health being taken.
One heart in vanilla is equivalent to two health.
So 1 damage = 1/2 heart

valid burrow
#

alright thx

marble rivet
#

why do the results of complex recipes return air

deep herald
#

anyone know how to fix this

#

or get around this?

hazy parrot
#

your method is returning string

glossy venture
#

design a format to serialize the location into and decode it

hazy parrot
#

while you expect Location

deep herald
#

how do i get around that

hazy parrot
#

?learnjava this also seems like static abuse

undone axleBOT
hazy parrot
#

as that class doesn't seem like utils class

deep herald
#

?

glossy venture
#

you could for example do something like world:x:y:z

public static Location decodeLocation(String str) {
  // world:x:y:z -> location im too lazy to write
  // and u should learn to solve it urself
}

public static String encodeLocation(Location loc) {
  return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ();
}
deep herald
#

thx

#

lemme see

glossy venture
#

u still need to write the decode thing

grim hound
#

my plugin stopped building

green plaza
#

How to make packet entity glowing?

grim hound
#

or just entity.setGlowing

grim hound
green plaza
grim hound
#

and why do these 3 have different icons?

grim hound
grim hound
green plaza
#

Nah not using api

grim hound
#

inspire from their code

green plaza
#

XDD

grim hound
pulsar lava
#

what java version do I use for 1.20.1?

grim hound
eternal night
#

17

grim hound
#

17+

eternal night
#

or 21

#

I don't know if spigot is fine with 21, so I guess stick to 17

grim hound
#

damn, there's java 21 already?

pulsar lava
#

I guess I need help ;-; I'm using 17 and org.bukkit cannot be imported

eternal night
#

since early sept

#

sounds more like an issue with your build system ?

eternal night
#

what are you using

pulsar lava
#

I can't send images

#

I'm following that video

#

steps

grim hound
#

Eclipse

#

no

#

IntelliJ superiority

eternal night
#

and no build system skully

pulsar lava
#

oh I'm happy to ditch eclipse

#

XD

grim hound
eternal night
#

In this episode, I show you how to create your first plugin using the Spigot API and the Minecraft plugin for the IntelliJ IDEA. #Spigot #SpigotPlugin #MCCoding

Spigot: https://www.spigotmc.org
Code: https://gitlab.com/kody-simpson/spigot/your-first-plugin

⭐ Kite is a free AI-powered coding assistant that will help you code faster and smarter....

▶ Play video
#

can probably follow this series

pulsar lava
#

thank you so much guys

eternal night
#

uses intellij ^

pulsar lava
#

nicee

green plaza
#
        DataWatcher dataWatcher = entityPlayer.getDataWatcher();
        entityPlayer.setGlowingTag(isGlowing());
        Map<Integer, DataWatcher.Item<?>> map = null;
        try {
            map = NMSUtils.getF(dataWatcher);
        } catch (IllegalAccessException | NoSuchFieldException e) {
        }
        if (map == null) {
            return;
        }
        
        DataWatcher.Item item = map.get(0);
        byte initialBitMask = (Byte) item.b();
        byte b = initialBitMask;
        byte bitMaskIndex = (byte) 0x40;
        if (isGlowing()) {
            b = (byte) (b | bitMaskIndex);
        } else {
            b = (byte) (b & ~(1 << bitMaskIndex));
        }
        bitMaskIndex = (byte) 0x01;
        b = (byte) (b & ~(1 << bitMaskIndex));
        dataWatcher.set(DataWatcherRegistry.a.a(0), b);

        PacketPlayOutEntityMetadata metadataPacket = new PacketPlayOutEntityMetadata(entityPlayer.getId(), dataWatcher, true);
        NMSUtils.getConnection(player).sendPacket(metadataPacket);

Why the fuck he is not glowing? 1.17.1

grim hound
#

you be doing some serious

#

bit shifting

green plaza
#

Yea you have to

grim hound
#

you copied this from GlowAPI?

green plaza
#

Its not serious you basically put 1 in index 0x40

#

Nah i did it on my own in 2min and it should work

#

Cuz i change 0x40 index to 1

grim hound
#

how do you read

#

them

#

0x40

grim hound
#

using a singular value for many possible states

#

and retrieving that using bit operations

green plaza
#

Y

#

I somehow made him burning but not glowing XD

grim hound
#

why did it suddenly

#

give an error from a class I haven't used in ages?

#

nevermind

weak meteor
#

hello, how can i start to develop my plugin's api, like with maven repo dependency and stuff?

#

cant find a good tutorial or post

chrome beacon
#

What part do you need help with?

#

Don't crosspost and ask in the Oraxen discord

coral kelp
#

I can’t it won’t let me in

#

I’m not sure why

weak meteor
#

and the communication between the API and the real plugin

chrome beacon
#

How separated do you want the API to be

weak meteor
#

Lets say the API is imported like

chrome beacon
#

One way is to keep the API it it's own maven module

weak meteor
#

compileOnly "github.cirosanchez.enderchestplus:EnderchestPlusAPI:0.0.1"

#

in gradle

#

is smth like that

#

and that will interact with the Plugin

#

EnderchestPlus

#

that will have the classes like

#

EnderchestPlayer, etc, etc

remote swallow
#

did you publish it

weak meteor
#

no, its in development

#

just want to know

#

how would it work

chrome beacon
#

Basically what you'd do is have a module for the api and one for the implementation

#

Assuming it's a buildable project without any manual dependencies you can use Jitpack

#

Alternativly you can setup Github actions so automatically publish maven artifacts

weak meteor
#

okay

#

i guess

#

i need to search about it

heady leaf
#

tried also with:
cloneInventory.setContents(event.getClickedInventory().getContents()); Main.getLive().getBot().openInventory(cloneInventory);

#

still not working 😢

remote swallow
#

i just went to test this and thought over it again and thought i cant have it compact down to one @update bc it would someone could go from 1.0.0 to 1.0.1 and i also have a 1.0.2 but if i only have from 1.0.0 but they have 1.0.1 update it would break. So idk how i could add updates to it without like adding a load of annotations or some wrapper object(s)

minor junco
#

I don't exactly know what you need the update for really for a simple configuration wrapper

remote swallow
molten hearth
#

uh how can I check the itemstack used to destroy a block within BlockBreakEvent

#

bc i have something along the lines of ```java
if(stuff) {
event.setDropItems(false);

        /* Manually drop items... */

}```

#

im not sure if getting the player's currently held item is viable because that may be delayed as in the player could've swapped items by then, right?

eternal oxide
#

it may also have been broken by another plugin

molten hearth
#

yeah thats the issue

#

should i just create a queue of "the player successfully broke this block" and pop 1 every time 💀

#

seems like a weirdchamp play

#

or maybe i should dispatch a custom event

#

or maybe there's a less clown way of doing it

eternal oxide
#

what exactly are you trying to do?

molten hearth
#

when the plugin detects a custom block as broken, it calculates custom drops

#

wait cant i just setdrops

#

lmao

#

oh no ic ant

#

sad times

eternal oxide
#

you need to set the drops in teh BlockDropItem event

molten hearth
#

i wouldve sworn that was a method 5 picoseconds ago

#

oh

eternal oxide
#

teh break event only deals with the breaking

#

dropping is another event

molten hearth
#

ngl fam

#

this event is equally useless

#

LMFAO

eternal oxide
#

lol

molten hearth
#

it only has setCancelled 💀 🙏

eternal oxide
#

you have to detect your special block in that event, clear drops and drop your own

molten hearth
#

and the getters still dont provide itemstack at time of breaking

molten hearth
river oracle
#

well in BlockBreakEvent the broken Block would be broken by the item in the players hand?

#

what is so hard?

eternal oxide
#

^ as it only fires for player broken blocks

molten hearth
# river oracle what is so hard?

the event doesnt pass the item in the player's hand and im worried the player might be able to change item by the time i get the itemstack in the hand

river oracle
molten hearth
#

what if the player has like 1 microsecond ping and quickly swaps before i get the itemstack or sumthin

#

or am i paranoid

#

alright thanks

river oracle
#

well also

#

the BlockBreakEvent fires before its actually broken

#

at that point if the player were to switch the block would stop being broken

weak meteor
#

Yo i got a question

#

i wanna try base64 serialization for items

#

itemstack

#

somth like this public static ItemStack[] itemStackArrayFromBase64(String data) throws IOException {
try {
ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
ItemStack[] items = new ItemStack[dataInput.readInt()];

        // Read the serialized inventory
        for (int i = 0; i < items.length; i++) {
            items[i] = (ItemStack) dataInput.readObject();
        }
        
        dataInput.close();
        return items;
    } catch (ClassNotFoundException e) {
        throw new IOException("Unable to decode class type.", e);
    }
}
#

will cover everything on itemstack?

#

like enchantments, custom data holder, etc

young knoll
#

I think you can just read and write the array directly

molten hearth
#

uh

#

this PDC aint containing

#
persistentDataContainer.set(CustomItemKeys.IS_CUSTOM_ITEM_KEY, PersistentDataType.BYTE, (byte) 1); // set

// later
return persistentDataContainer.has(CustomItemKeys.IS_CUSTOM_ITEM_KEY, PersistentDataType.BYTE); // false```
#

oh i see

#

i did some fuckery my bad

weak meteor
#

ill take that

#

but i just wanna know

#

really covers everything?

molten hearth
#

nvm i didnt 😭

weak meteor
#

cause i dont wanna write something that doesnt work

#

for that i can use gson and the adapter

molten hearth
#

ye i did some fuckery

#

fixed it

young knoll
#

It uses the same data that would be saved to a config file for an item

#

Which afaik covers everything

weak meteor
#

okay

#

thanks

junior geyser
#

Is there an API to set an entity to target a specific location., rather than an entity?

#

There is setTarget(LivingEntity)

#

But I would like something like
setTarget(Location)

drowsy helm
#

No would have to change path finding

#

You could use an invisible entity

young knoll
#

?whereami

quaint mantle
#

if there is no item in the player's hand, RIGHT_CLICK_AIR will not work.

#

is there an event that can detect this?

quaint mantle
#

Can spigot handle kotlin corutines?

grand flint
#

spigot corutines 💀

rotund ravine
quaint mantle
#

Thanks

quaint mantle
eternal oxide
#

there is a swing arm for each hand

quaint mantle
#
@EventHandler
    public void onAnim(PlayerAnimationEvent e) {
            Bukkit.broadcastMessage("a");
        }```
#

I made it like this, but it doesn't print when I right-click air.

#

🤔 🤔

eternal oxide
#

then you can't

#

no packet is sent from teh client when actions are taken which produce no result

quaint mantle
#

okay, thanks for your help!!

eternal oxide
#

the animation packet was your only chance

lethal coral
remote swallow
#

no reason to tell people paper has it when they are asking in the spigot discord

lethal coral
#

you're right it makes more sense to gatekeep information!

eternal oxide
#

This is spigot so give spigot advice

minor junco
#

is there any way to get a colored material based off of a Color type that is already implemented? Or would I have to create my own mappings for that

mellow edge
#

Spigot 1.8.8 doesnt have persistentdatacotainer amd I will not use NMS, can I solve this issue with a hashmap to store itemstacks in it?

quaint mantle
#

How do I convert a kyori component to nms component?

shadow night
quaint mantle
#

" 1.81.91.101.111.121.131.141.151.161.171.181.191.20"

mellow edge
#

I mean they exist but can a hashmap do it's job

quaint mantle
shadow night
remote swallow
#

it is

#

thats what nbt api is

quaint mantle
#

...

shadow night
#

He is looking for saving things in a hashmap

#

Instead of pdc

#

From what it sems

quaint mantle
mellow edge
#

I mean I want a player that buys a potion to just store that potion in a hashmap until he uses it

shadow night
#

You'd need to also save the map to disk then

mellow edge
#

No because it is a minigame that is erased on restart

shadow night
#

Makes sense

#

Sounds like an acceptable case ig

minor junco
upper hazel
#

and I understand it's called a thread pool.

#

in the database used, too.

upper hazel
#

By the way, if I distribute tasks by ticks in the main thread, I won't be able to do anything at that moment? Just watch without lags how everything is loading?

lost matrix
zealous osprey
#

I have a weird error which I've never had before, could anyone please help?

java.lang.RuntimeException: Directory 'plugins\Raycasting-1.0-SNAPSHOT.jar' failed to load!```

?

Fixed it, all my modules had a <build> tag, not just the main one.

scenic onyx
#

it go?

valid burrow
#

i have an entity that is supposed to be a bird with a resourcepack later

#

but

#

problem is

#

i dont know what entity to utilize

#

cause i want the bird to be able to land and walk too

#

this not only causes animation problems but also

#

well

#

theres no entites that can walk and fly

minor junco
quiet ice
#

Haven't updated it in a while though, but I do not think that anything changed since

minor junco
#

i guess

#

but i definitely prefer my implementation of this if im honest

#

more flexible, less repetitive and also more performant (in another world)

#

just the memory overhead is different

quiet ice
#

That class was developed in a time where everyone complained about performance with my plugin

minor junco
#

i mean if it works

quiet ice
#

Won't for long though

#

The great thing is that I'm working on a Gradle alternative so eventually I will be able to fix the issues raised by the material refractor with compile-time bytecode transformation

#

Noone can take my switch-on-enums away babyy

minor junco
#

i mean thats why i was wondering why you were using switch statements since the compiler at its own as is won't be able to optimize your code due to the argument (maybe JIT* could, but dont think it would)

#

since the argument isnt known at CT

quiet ice
#

It is

minor junco
#

e.g. switch (this) will result in compile-time optimizations, but switch(arg0) wont i think

quiet ice
#

Switch-on-enums will be compiled to a switchtable with an array lookup

minor junco
#

makes sense

quiet ice
#

It is compiled to switch (MyClass.$switchMap$org$bukkit$Material[arg.ordinal()]) afaik

minor junco
#

thats what i thought initially but didnt know it was an actual thing at ct

#

well we're kinda similar in the end

#

like implementation wise

#

i use an EnumMap which underlying also uses the ordinals in an array

#

(I changed Map to EnumMap after realizing I used an enum as a key lmfao)

#

yh i just made that wrapper in like 15 minutes or so with a couple tests to ensure the right behaviour really

quiet ice
#

EnumMaps might be faster in the far future. But they WILL break till then unless you stay on old versions

minor junco
#

i mean we talking microseconds of performance differences, that doesnt matter with plugins if im honest

quiet ice
#

Though the Material enum probably uses jumbo EnumMaps which may be different

minor junco
#

yeah

#

i have a material associated to its dyecolor, thus the "key universe" of the enum map is not that large

#

and the lookup really fast, but in turn I use a couple more instances allocated -> more memory complexity

#

but again, all this stuff doesn't really matter for plugins imo, go with what suits your requirements the most and works efficiently and good is

upper hazel
grand flint
upper hazel
#

Is the hardness the same?

grand flint
upper hazel
#

so if player will use hand, block will breaking fast?

grand flint
upper hazel
#

this will be breaking fast

#

or you use effects

grand flint
#

the hardness is custom made

upper hazel
#

but you not can change hardness becuse this use in client

#

or he really have big hardness?

grand flint
#

we can

upper hazel
#

hm

grand flint
#

watch the video

young knoll
#

You have to use a system with mining fatigue magics

grand flint
#

breaks like stone, feels like stone

upper hazel
#

not tools

grand flint
#

yes

#

it will

#

ill show later im sleeping rn

#

its also bedrock compatible

upper hazel
slender elbow
upper hazel
# grand flint yes

I make custom blocks too and in the process I learned that strength and break/paste song cannot be changed

grand flint
#

ok

#

yet i did

upper hazel
#

so how you was do this

upper hazel
#

ok what obaut break/paste sound

#

how you change

grand flint
#

magic

upper hazel
#

lol

quiet ice
upper hazel
grand flint
#

magic

upper hazel
#

you are not a wizard but a programmer

grand flint
#

umm actually 🧙

upper hazel
#

yeah well then I'm the discord admin

#

🤓 ban🤓

grand flint
#

im also remaking twilight forest in vanilla

#

so technically magic 🎩

upper hazel
#

magic is prohibited outside Hogwarts

slate tinsel
#

Can I make a player go up with SetVelocity and the player is simultaneously riding on an armor stand that is invisible? Or will the player not go up as it is a passenger to the Armorstand

eternal oxide
#

why is the player on an AS?

slate tinsel
#

How do you mean?

eternal oxide
#

Why do you have the player on an Armor Stand?

slate tinsel
#

Because the player must sit down

young knoll
#

You would have to setVelocity on the armor stand

slate tinsel
#

Only armor stand or both armorstand and player?

eternal oxide
#

AS

young knoll
#

only the stand

slate tinsel
#

Okey

serene sigil
#

hey guys, i made a spigot plugin, i want to know if it also works on proxy servers

#

i dont know much about proxy servers

young knoll
#

You mean the proxy itself

eternal oxide
#

no, spigot plugin and bungee plugins are different

young knoll
#

Or servers connected to it?

serene sigil
#

like i want my spigot plugin to function across the whole network

#

is that possible?

eternal oxide
#

not the plugin itself

serene sigil
#

okay

eternal oxide
#

you can put the plugin on each server and connect them via redis or a central database

serene sigil
#

wait how do you do that?

#

and what are bungee plugins?

eternal oxide
#

instal redis so each plugin can talk to the others

serene sigil
#

redis is a plugin?

eternal oxide
#

bungee plugins are just what the name suggest, but they only have access to proxy stuff. No server things like worlds

kindred valley
#

How can i make a block unique

kindred valley
scenic onyx
#

This is the first time I've used the modules, how do I make sure that "Core" is activated as "JavaPlugin"?

serene sigil
#

so if i code a bugee plugin, will it work on the whole network?

#

@eternal oxide

glossy venture
#

it wont do shit for the servers but yeah if the whole network is routed through one proxy

eternal oxide
#

a bungee plugin is very restricted in what it can do

glossy venture
#

its not capable of installing or loading spigot plugins on your backend servers though

eternal oxide
#

it only has access to players (sort of)

glossy venture
#

well it can install it if u have a dynamic server instancer or some shit

eternal oxide
#

What is your end goal?

serene sigil
#

in a nutshell, my plugin only puts all players on the server that are currently online in a db

#

so i dont need access to the world

#

i just need access to commands (so i want to make my own command) and the playerjoin events

serene sigil
#

and the players

eternal oxide
#

Sounds like you only need a bungee plugin

#

you'd have access to all servers and players

serene sigil
#

so i should make a bungee plugin?

eternal oxide
#

you can move them to different servers

glossy venture
#

probably

serene sigil
#

and would bungee plugins also work on single-servers? (so spigotmc)

eternal oxide
#

no

#

only on bungee

serene sigil
#

okay

eternal oxide
#

I mean, if there was one server and a bungee proxy

#

a bungee plugin goes on a bungee proxy

serene sigil
#

and spigot plugins on bungee work but they need to be installed seperately on every server, right?

eternal oxide
#

they don;t exactly work on bungee. they run on Spigot

serene sigil
#

wait so proxy servers are just a collection of smaller spigot servers?

#

i still dont really get it

eternal oxide
#

a proxy is the head of a collection of Spigot servers

#

every connection goes through the proxy

glossy venture
serene sigil
eternal oxide
#

imagine you have many computers at hoime which all connect to the same modem. The modem is the proxy and the computers are Spigot servers

glossy venture
serene sigil
#

and does the modem have access to all players on the computers?

eternal oxide
#

bungee has access to all connections which run through it

glossy venture
#

yes

#

u can send messages, titles, tablist, etc

#

u could even open a GUI with packets

serene sigil
#

so if i create a plugin that funstions on the modem (so a bungee plugin) it can see every player on the computers?

glossy venture
#

but u cant modify anything on the server itself

serene sigil
#

hmm

#

i see

#

so i need to essentially make 2 plugins; a plugin on spigot that works for smps and smaller server that are basically the computers themselves and another plugin for proxy servers

#

is that correct?

glossy venture
#

yes

eternal oxide
#

if your plugin is just to move players I don;t see why you need a spigot plugin

glossy venture
#

if u need to communicate about a player you can do that with plugin messages over a player connection

eternal oxide
#

wherre woudl they be going on a single server?

kindred valley
#
private void createCustomConfig() {
        customConfigFile = new File(getDataFolder(), "custom.yml");
        if (!customConfigFile.exists()) {
            customConfigFile.getParentFile().mkdirs();
            saveResource("custom.yml", false);
         }``` At here isnt it every time creates new customConfigFile?
glossy venture
#

otherwise youll need to set up something like redis or rabbitmq

#

for general communication

serene sigil
#

so no world stuff

glossy venture
#

you dont need a spigot plugin for that

eternal oxide
#

ok

#

unless you have no bungee, then yes

#

you can actually combine a spigot plugin with a bungee plugin so you only have one plugin

glossy venture
#

one jar

#

yeah

eternal oxide
#

saves duplicating code/distribution

serene sigil
#

no, basically the plugin should be a public plugin that everyone can download, its not for me only

glossy venture
#

i usually dislike doing that tho just adds more to the file size

serene sigil
#

that would save a lot of time

glossy venture
#

ig it works if its a small plugin

serene sigil
eternal oxide
#

not much, it's only a bungee.yml, plugin.yml and two main classes, one for bungee and one for spigot

serene sigil
#

so idrc much about file size

glossy venture
serene sigil
#

wait one more thing

#

what is velocity

glossy venture
#

so youll have code for both sides + maybe like a velocity platform in one jar

#

an alternative to bungeecord

#

another proxy

serene sigil
#

okay

glossy venture
#

works in generally the same way

serene sigil
#

so do i need to code anything special for velocity too?

glossy venture
#

idk if u want to support it yeah

serene sigil
#

or is it basucally like spigot that it also works on papre

glossy venture
#

it doesnt implement the bungeecord api so you will have to if u want it to work

#

no its not a fork of bungee

serene sigil
#

oh shit

#

okay

#

and whats more popular, bungeecord or velocity?

glossy venture
#

idk

#

i think bungeecord might be bigger

serene sigil
#

because maybe i should add also support for velocity

glossy venture
#

velocity is more optimized though

#

stupid essentials bro

vestal moat
#

Velocity is generally better, the only bad thing being that it has less plugins available and that's it

serene sigil
glossy venture
#

i know but not everyone knows that

#

i think bungee is a bigger name

#

especially for beginners

serene sigil
#

and is it possible to also make it support velocity in a single jar?

#

so spigot, bungee and velocity

glossy venture
#

yeah it uses another resource velocity.yml or velocity.toml i forgot

serene sigil
#

okay

glossy venture
#

so u just add another main class and more support code

serene sigil
#

okay

glossy venture
#

if u want to do it that way

serene sigil
#

so and it will only activate ONE of the main classes if its that software, right?

glossy venture
#

yeah

serene sigil
#

okay

#

and is there a good yt tutorial that demonstrates how to make a bungee or velocty plugin?

glossy venture
#

no idea

#

probably yeah

serene sigil
#

okay

glossy venture
#

there definitely are tutorials on bungee

#

velocity most likely too

serene sigil
#

ok

glossy venture
#

whether theyre good idk

vestal moat
glossy venture
#

ok

scenic onyx
#

why dont go package?

chrome beacon
#

?

shadow night
#

?

scenic onyx
shadow night
#

Don't build what

vestal moat
#

Light mode 😨

chrome beacon
#

Send the error

#

?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.

shadow night
scenic onyx
chrome beacon
scenic onyx
chrome beacon
#

Core can't depend on Lobby if Lobby depends on Core

#

Solve it by properly structuring your plugin

shadow night
scenic onyx
scenic onyx
shadow night
chrome beacon
#

It's so poorly made 💀

proud badge
#

Would this work with Velocity for getting the address they connected with? (This doesn't mean their IP address right, it means what IP they used to connect to the server)

shadow night
#

Kinda like xu2

chrome beacon
#

It has some cool items and features

#

But they will tank your tps

#

Beacause of how they're implemented

shadow night
glossy venture
#

idk if theres a way to get the ip the player used to connect

shadow night
#

I don't think you get that data

scenic onyx
#

@chrome beacon this?

glossy venture
#

dont think so either

shadow night
#

Mc isn't a http server

glossy venture
#

at the very least it isnt provided by TCP or UDP

#

and i dont think it is by minecraft itself

#

in the login packet or smth

chrome beacon
scenic onyx
shadow night
glossy venture
scenic onyx
glossy venture
#

tho

shadow night
#

Yes

chrome beacon
#

Remove the dependency

shadow night
#

Definitely

slender elbow
#

isn't there a getVirtualAddress or something or is that only on bungee api?

chrome beacon
#

Bungeecord should have that feature

#

Being able to send your to a specific server depending on the adress used

slender elbow
#

oh isn't there a bungee plugin message for that

chrome beacon
#

It's sent in the handshake

#

So you can see what the player used to connect

glossy venture
#

oh sick

winter galleon
#

hi, im new to plugin development, i need help

#

i tried to import vault api trough pom.xml and it colors red

chrome beacon
winter galleon
#

yes i am

chrome beacon
#

Click the reload icon

winter galleon
#

uhm

#

where is the reload icon

#

xd

#

found

#

tysm

covert yacht
chrome beacon
#

Therefor you need to load that Docker API

#

If you're on 1.17+ you can use the libraries section of your plugin.yml (assuming the api is hosted on Maven Central)

#

If not then you need to shade it with the maven shade plugin

covert yacht
chrome beacon
#

No

#

You're just compiling against it

#

basically saying this code will exist during runtime

covert yacht
#

So i need to get a jar of this and shade it in my final jar ?

glossy venture
#

nah maven already downloads the jar so it can do the work for you, look up maven shade plugin on google bc idk maven

chrome beacon
#

If you want to shade use the maven shade plugin

glossy venture
#

damn im glad i use gradle

covert yacht
#

This is really weird, because from the docs and blog tutorials they don't need to shade 🤔

Well thanks i'll try !

glossy venture
#

an API developer assumes you know to somehow load the code at runtime

chrome beacon
shadow night
glossy venture
#

interesting

chrome beacon
#

Maven ❤️

glossy venture
#

nah

shadow night
#

I like goth, besides when gradle is kotlin'd

chrome beacon
#

Groovy Gradle is usable

#

Kotlin is pain

glossy venture
#

i agree

shadow night
#

Agreed

ashen remnant
#

Can anyone help teach me to code plugins and custom items?

chrome beacon
#

What part do you need help with?

ashen remnant
#

All of it, I have no idea where to start and need so much help 😭😭

chrome beacon
#

?learnjava

undone axleBOT
chrome beacon
#

Start with Java

ashen remnant
#

I’m trying to start up an smp with custom plugins and items

chrome beacon
#

sounds like you might not have the time to learn

ashen remnant
#

Not rly

#

I got school and stufd

chrome beacon
#

You should look for existing options or hire someone

#

?services

undone axleBOT
ashen remnant
#

Ends soon tho, that’s why I’m trying to learn

ashen remnant
#

As a young high school student, I’m broke af

chrome beacon
#

Well it'll take a couple of months to learn

ashen remnant
#

A couple of months??

#

I do not have that much time

#

I have 8 weeks max

shadow night
#

I personally started understanding java after like a month or two of practicing it

chrome beacon
#

or just use something that already exists

#

You won't be learning how to code and how to make complex things over night

ashen remnant
#

Is there a way to make customs items with plugins that already exist?

chrome beacon
#

Plugins like Oraxen and ItemsAdder exist

shadow night
#

There definitely are plugins to make custom items

chrome beacon
#

or just use some mods

ashen remnant
#

Do they also allow items to drop from mobs and have different rarities?

ashen remnant
#

Then everyone has to install mods

#

It’s a mess

ashen remnant
#

Ones preferably on aternos

chrome beacon
#

not that I'm aware of

#

Making a plugin like that takes a large amount of work

ashen remnant
#

Dangit

#

No custom items for my smp ig :(

native ruin
#

For just items it's pretty overkill though

slate tinsel
# young knoll only the stand

Tested with this, it seems nothing happens with velocity but the player sits on the armor stand

ArmorStand armorStand = victim.getWorld().spawn(victim.getLocation(), ArmorStand.class);
        armorStand.setVisible(false);
        armorStand.setGravity(false); 
        armorStand.setInvulnerable(true); 

        armorStand.addPassenger(victim);

        Vector velocity = new Vector(0, 10, 0);
        armorStand.setVelocity(velocity);```
young knoll
#

I think setting gravity to false disables velocity

minor junco
#

It should only disable vertical velocity

#

It will affect the horizontal movement but shouldn't cancel it out

eternal oxide
#

disabling gravity disables all velocity

slender elbow
#

gravity pulls from all directions

#

mojang and their infinite wisdom

hushed scaffold
#

so your only option is what oraxen/itemadder whatever thing is on aternos

ashen remnant
#

I’m not sticking with aternos

#

Just tryna test stuff out rn

#

Before I buy a server

glad shadow
#

Hello everybody! I'm making a plugin where players have to manage their lives. I want to implement a system where the player's nametag's color change based on the amount of health they have. My problem is that I have a scoreboard which uses teams to display and color the text on it. Because of this I can't add the player to a team to color their nametags above their heads. p.setDisplayname() doesn't work as it sets the name on TAB and in chat. Is there any workarounds for this?

proud badge
#

What is the name of the thing that suggests command arguments?

young knoll
#

TabCompletor

proud badge
#

Thanks

river oracle
kind coral
#

why does md_5 relocate the net.minecraft.server each version?

young knoll
#

He doesn't

#

Not anymore

kind coral
#

Kennytv just said so on his stream while replying to me?

kind coral
young knoll
#

CraftBukkit is relocated but not nms

kind coral
river oracle
#

tbh no clue why CB is relocated though

#

feel like that's something we could maybe look into getting rid of though it depends on what the slime thinks

umbral ridge
#

what do you want to achieve

umbral ridge
heady leaf
#

yes

umbral ridge
#

getClickedInventory can be null if an inventory was clicked out of bounds.

whats the issue you're dealing with?

heady leaf
#

🤔 no

proud badge
#

What would be the safest way to storage a discord token in a plugin?

quaint mantle
#

Do inventory override hashcode()?

wise stratus
#

Hi ! I work on a bukkit plugin and I have a problem... Someone can help me please ?

heady leaf
umbral ridge
#

?jd-s

undone axleBOT
umbral ridge
#

getContents just retrieves an array of itemstacks at the code execution time.

No idea what could it be. It should work. I'm not home so I can't test this but its not logical that it wouldn't retrieve the last itemstacks...

umbral ridge
#

and use teams

#

no need for setdisplayname

glad shadow
#

i am using a scoreboard api that's not the problem. The problem is that I want to add a color to the nametag above the player's head. First I wanted to use teams but with the scoreboard API it doesn't work (I suppose it uses the max amount of teams?)

umbral ridge
#

Could you share the code of how you're using the scoreboard

river oracle
glad shadow
#

I am using this

public class ScoreHelper {

    private static HashMap<UUID, ScoreHelper> players = new HashMap<>();

    public static boolean hasScore(Player player) {
        return players.containsKey(player.getUniqueId());
    }

    public static ScoreHelper createScore(Player player) {
        return new ScoreHelper(player);
    }

    public static ScoreHelper getByPlayer(Player player) {
        return players.get(player.getUniqueId());
    }

    public static ScoreHelper removeScore(Player player) {
        return players.remove(player.getUniqueId());
    }

    private Scoreboard scoreboard;
    private Objective sidebar;

    private ScoreHelper(Player player) {
        scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
        sidebar = scoreboard.registerNewObjective("sidebar", "dummy");
        sidebar.setDisplaySlot(DisplaySlot.SIDEBAR);
        // Create Teams
        for(int i=1; i<=15; i++) {
            Team team = scoreboard.registerNewTeam("SLOT_" + i);
            team.addEntry(genEntry(i));
        }
        player.setScoreboard(scoreboard);
        players.put(player.getUniqueId(), this);
    }

    public void setSlot(int slot, String text) {
        Team team = scoreboard.getTeam("SLOT_" + slot);
        String entry = genEntry(slot);
        if(!scoreboard.getEntries().contains(entry)) {
            sidebar.getScore(entry).setScore(slot);
        }

        text = ChatColor.translateAlternateColorCodes('&', text);
        String pre = getFirstSplit(text);
        String suf = getFirstSplit(ChatColor.getLastColors(pre) + getSecondSplit(text));
        team.setPrefix(pre);
        team.setSuffix(suf);
    }
}
#

and here's how I make the scoreboard for the player:

  public void CreateScoreboard(Player player) {
        ScoreHelper helper = ScoreHelper.createScore(player);
        helper.setSlot(4, "Line4");
        helper.setSlot(3, "Line3");
        helper.setSlot(2, "Line2");
        helper.setSlot(1, "Line1");
    }
umbral ridge
#

@river oracle will help you with this 😂

#

but you are using static wrong and if checks in setSlot

quiet ice
#

Does anyone have any suggestions for a DI framework I should use? I have been looking at Weld, but got completely overwhelmed with it's API (Not from the DI/CDI side of things, but like how to obtain objects, etc. - since I don't think you can or should be getting objects like I am used to)

gleaming grove
quiet ice
#

Is the framework also able to invoke constructors with args? This has been the main gripe I had with weld

gleaming grove
#

yes

#

but all the constructor arguments must be registered to DI

quiet ice
#

Hm, and what happens for like rather basic arguments, such as MyClass(int a, int b, MyComponent c)?

covert yacht
slate tinsel
#

When creating a plugin with simple placeholders that describe a player's current victim, do you usually have two options?

  1. Use the own system plugin for placehoders

  2. Use the PlaceholderAPI

Or do you usually only offer PlaceholderAPI?

quiet ice
#

Using PAPI is probably the most user-friendly approach

gleaming grove
#

For this case you would need to register class with resolver, like that

   public class ExampleModule {

    }

    public class ExampleClass {

        public ExampleClass(int a, int b, ExampleModule module) {

        }
    }

registerSigleton(ExampleModule.class);
registerSigleton(ExampleClass .class, container ->
        {
            ExampleModule module = (ExampleModule) container.find(ExampleModule.class);
            int a = 12;
            int b = 23;

            return new ExampleClass(a, b, module);
        });
#

the most well knowen DI containers has this nice feature that they are not using reflections, but generate code class for your container

quiet ice
#

Okay great. I'll look into your library then!

gleaming grove
#

my library has this benefit that is small and simple, but it use reflections

quiet ice
#

Tbh, from a performance point of view there is no difference in my usecase

#

So having stuff be on a simpler side might be more comfy for me

gleaming grove
#

ye especially when you register everything as Singleton, performance will be not an issue

upper hazel
#

how i can give permission intelji read my file in windows

quiet ice
#

Windows has permissions?

rotund ravine
#

Well somewhat

#

Usually unimportant

rotund ravine
upper hazel
#

i not can read file

eternal oxide
#

I'm betting he's talking about trying to build a plugin into a running server

quiet ice
#

What are you reading? system32?

upper hazel
#

lol no i read file css for some project

#

i mean i was create code for read file

#

but windows not give me do this

eternal oxide
#

what is the file, where is the file, how are you trying to read it?

upper hazel
#

Access is denied

upper hazel
#

i always get FileNotFoundException (Access is denied)

eternal oxide
#

then your path is wrong

upper hazel
#

so I wanted to know where I can change file access? I heard that in the properties but I got completely confused when I tried to change

eternal oxide
#

its not file acccess

upper hazel
eternal oxide
#

the file is not where you are looking

rotund ravine
upper hazel
#

correct because after the error there is a clear explanation of the reason "(Access denied)"

molten hearth
rotund ravine
#

Just start IJ as admin 💪🏻

eternal oxide
#

you are trying to read a file. Its not there. it does not exist. Your path is wrong.

grand flint
#

average java script developer

upper hazel
grand flint
rotund ravine
#

Nor code

#

C drive isn’t really that informative

grand flint
#

bc he is trying to scam u into writing it for him

rotund ravine
#

The error isn’t that informative

rotund ravine
molten hearth
#

bro codes on his E drive

#

That's crazy

eternal oxide
#

path to file is wrong. Probably due to spaces in directory names

upper hazel
undone axleBOT
grand flint
#

i rename all my drives to match my crushes initials

rotund ravine
#

Almost creepy

grand flint
#

after a couple of days of debugging it works

#

and i totally never lost 800gbs of data doing that

upper hazel
river oracle
#

her drives are JT now

grand flint
#

nuh uh not while @molten hearth and md5 is alive

rotund ravine
molten hearth
#

no problem he won't be alive for long ong

eternal oxide
#

yep, path wrong. no file

grand flint
#

😲

upper hazel
#

oh

molten hearth
#

blud put an absolute onedrive path in his code

rotund ravine
#

Stop being sussy all the time smh @grand flint

grand flint
#

pranked

glossy venture
#

does onedrive make a virtual fs or smth

rotund ravine
#

No

glossy venture
#

it just syncs ur files?

rotund ravine
#

Just a folder that’s synced

#

Ye

glossy venture
#

ah

rotund ravine
#

Thouugh, it can i suppose have undownloaded files iirc

glossy venture
#

tf

#

wouldnt it need like kernel access

#

bc windows is goofy

young knoll
#

I mean microsoft made it

#

I'm sure they can arrange that

glossy venture
#

just seems like a potential security vulnerability

#

u can too with drivers

#

but doing that for cloud storage seems risky

wide coyote
#

does the 1.20.3 update contain /tick command?

young knoll
#

yes

wide coyote
#

how does it work?

young knoll
#

It can modify the internal tick loop speed

wide coyote
#

I only saw singleplayer tests, wonder how it works on a server

young knoll
#

Pretty much the same

wide coyote
#

alright thanks

quiet ice
#

not yet

proud badge
#

bruh all the chat events are depracated which one do I use

rotund ravine
#

?whereami

proud badge
#

i mean aint it kinda the same thing just paper is a fork with some performance enhancements

rotund ravine
#

Different api’ish

proud badge
#

Rip

upper hazel
rotund ravine
#

What ur looking for is AsyncChatEvent @proud badge

proud badge
#

ah ok thx

rotund ravine
#

Obviously not since spigot plugins can run on paper

#

He just needs to ask over at paper for proper paper help instead of here

proud badge
#

Ok

upper hazel
#

basically that's all as I understand it

rotund ravine
#

There so much more lol

upper hazel
#

By the way, surprisingly, there are much more assets here than there

proud badge
#

?help

undone axleBOT
#
CafeBabe Help Menu
*Red V3*
__**Admin:**__

selfrole Add or remove a selfrole from yourself.

__**Cleanup:**__

cleanup Base command for deleting messages.

__**Core:**__

embedset Commands for toggling embeds on or off.
info Shows info about CafeBabe.
licenseinfo Get info about Red's licenses.
mydata Commands which interact with the data CafeBabe has about...
set Commands for changing CafeBabe's settings.
uptime Shows CafeBabe's uptime.

__**Downloader:**__

findcog Find which cog a command comes from.

__**Mod:**__

names Show previous usernames, global display names, and server...
userinfo Show information about a member.

__**ModLog:**__

listcases List cases for the specified member.
reason Specify a reason for a modlog case.

__**Permissions:**__

permissions Command permission management tools.

proud badge
#

no event.getMessage?

#

for AsyncChatEvent

rotund ravine
#

Seriously

proud badge
#

oh yeah

#

the message

#

from the video

undone axleBOT
#

SpigotMC maintains the Spigot server. If you are using a fork of Spigot (such as Paper, Airplane, Purpur, or other derivative works), you should seek support in the appropriate Discord servers.

wide coyote
#

and to get the content, you should cast it to TextComponent too

#

((TextComponent) event.message()).content()

night grove
#

Hey guys do u know how to prevent spawning ancient debris in nether? some datapack or something

young knoll
#

OreSpawnEvent when

glad prawn
#

what will it do

topaz cape
#

this method is still working to refresh players on 1.20.3

#

however it takes now 1kms

#

do yall know any better method

young knoll
night grove
#

how can i make that the debris wont drop

#

ty

#

yea

topaz cape
#
final Location location = player.getLocation();
        final ServerPlayer ep = ((CraftPlayer) player).getHandle();
        ep.connection.send(new ClientboundPlayerInfoRemovePacket(Collections.singletonList(ep.getUUID())));
        ep.connection.send(new ClientboundRespawnPacket(ep.createCommonSpawnInfo(ep.serverLevel()), ClientboundRespawnPacket.KEEP_ALL_DATA));
        player.teleport(location);
        ep.connection.send(new ClientboundPlayerInfoUpdatePacket(
                ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER,
                ep));
        ep.connection.send(new ClientboundPlayerInfoUpdatePacket(
                ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED,
                ep));
        player.updateInventory();```
night grove
#

that the reason i want the people on the server not to mine it but get it from bastion

#

is there any tutorial how to do that?

young knoll
#

Listen for block break event

#

It block is ancient debris -> event.setDropItems(false)

young shell
#

Anyone know who's responsible for the Jira and Bitbucket?

sullen marlin
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

young shell
#

I am asking this way because I don't wanna necessarily share this information publically

sullen marlin
#

?support