#help-development

1 messages Ā· Page 1012 of 1

wet breach
#

not when the server will run them

barren peak
#

so the server can't teleport an entity every 10 ticks to a new location? but it can't do so consistently every time?

wet breach
#

I didn't say it couldn't do it, you never gave a proper testing environment

#

therefore hard to say if it isn't because of something else going on or whatever else. I already explained that the server will skip ticks

#

even when you believe you have nothing else going on simply because of hardware and settings

#

second, everything is a priority. Some things take higher priority in the server EG spawning vs teleporting for example

#

if something needs to spawn, it will spawn before a teleport needs to be done

#

this is because teleporting doesn't need to be instant and it can be delayed safely

#

probably should look at the code for teleporting if you are really this curious

#

also the way you are reporting the entities location is flawed as well

#

also have to take into consideration that what is shown by the server via your debug message and what you visually see are not always going to match up either

#

due to the fact, that the packets for messages and packets for world updates/entities moving are different ones

barren peak
# wet breach I didn't say it couldn't do it, you never gave a proper testing environment

right, this stuff makes sense, and I think that I am just not explaining it well enough. I am going to try to post a video on the spigot thread showing what is happening. The only reason why I think it's not Bukkit skipping ticks is its consistent every single time I run it. However I could be wrong about that I just thought that if it were lag or Bukkit the results would be inconsistent. So I will attach a video to the spigot thread soon showcasing what is occuring. Again, sorry if I wasn't explaining it well enough before

wet breach
green prism
#

I am thinking about creating a web interface for a banking plug-in. What do you suggest for the web part? It would retrieve data from a database.
Would you use a Python server or a Java Spring one?

tardy delta
#

heard people telling svelte is the shit

chrome beacon
#

If you want Java you can use Spring

#

but if it's just a simple application something like Javalin is easier to work with

green prism
# chrome beacon Use what you're most familiar with

Regarding a Java Spring server, do you think saving the web server as a JAR file, placing it in the plugin's data folder, and running it is a bad practice? I've never done something like that before (mixing the two), so I am seeking some kind of guidance 🤣

green prism
tardy delta
#

iit looks exactly like react tho

barren peak
# wet breach I also stated the way you report the entities location is also flawed

what you're saying seems right. Is there any way then to teleport an entity every x ticks like this? or is teleportation simply not an option? and if teleportation isn't an option, is there anything else I can do to move a block from A to B in x seconds? I know I can probably use velocity vectors but they would be difficult to get exact.

eternal oxide
#

If you want precise movement use BlockDisplay

chrome beacon
#

but you can if you want to

#

for embedding in a plugin I'd use Javalin

wet breach
#

but I am curious though if you changed your flaw reporting of location if it would reveal that it has been teleporting as you would expected

#

or nearly so

barren peak
barren peak
wet breach
#
ent.teleport(loc.add(0.5, 0, 0)); //LINE A                Bukkit.getPlayer("FireballAlex1").sendMessage(ent.getLocation().getX() + ""); //LINE B
#

this

barren peak
wet breach
#

its flawed because the teleporting is not instant, and since there is no delay between those two pieces of codes, the location sent to the player could be the old location.

#

instead of doing it like that, try listening for the teleport event instead

#

this way you have both the previous and updated location and its guaranteed to be accurate also, the event fires on every teleport

barren peak
cinder abyss
#

Hello, how can I get the obfuscated nms' method/field/class in a specific version using the intermediary mappings of this specific version?

#

and then, for sure, manipulate the method/field/class

shadow night
#

what event gets fired when the player changes their current select hotbar slot?

fair rock
#

PlayerItemHeldEvent ?

shadow night
#

would the client let me send a cheeky packet and change the currently selected slot or no

wet breach
#

yes

shadow night
wet breach
#

oh you want to send a packet from server to client?

#

don't think you could make it change the highlighted selection on the client

shadow night
#

ye

wet breach
#

but only for the hotbar

#

which is what they want @shadow night

shadow night
#

nice

fringe yew
#

how would I add durability to a vanilla item that doesn't normally have durability

eternal oxide
#

next MC version

fringe yew
#

so no way to do it rn?

chrome beacon
eternal oxide
chrome beacon
#

It was added in 1.20.5

eternal oxide
#

ah ok

#

I knew it was coming but I thought 1.21

fringe yew
#

tysm

#

I assume when I break block with the item it loses durability as usual?

icy beacon
#

raydan i saw you typing

#

hi

remote swallow
#

kotlin

icy beacon
#

kotlin

icy beacon
fair rock
#

xd

icy beacon
#

just like me, yoursalvation and ocp

icy beacon
fair rock
#

Hell nah, fr? I have to do it myself? I thought minecraft had something .-. xd

#

In 1.20.5 Update changelog is a minecraft:tool section:

Where you can set damage taken by block break etc, is that implemented in the itemstack because i dont find anything about that

fringe yew
#

also how do i make a crafting recipe that uses all 9 slots

remote swallow
#

shaped or shapeless

fringe yew
#

it uses all nine slots so shaped ig

remote swallow
#

create a shaped recipe and set the shape method to the 3 rows

fringe yew
remote swallow
#

new ShapedRecipe

#

eg shape("ABC", "CBA", "BCA")

fringe yew
#

ohhh

remote swallow
#

then use setIngredient(char, ingredient)

fringe yew
#

alr thanks

worldly ingot
#

It's just hard to deal with serialization and deserialization because you can use either a block type, a list of block types, or a tag

#

Being able to distinguish between those is a bit awkward

grave vigil
#

How would I go about making an NPC with a nametag that has 2 rows? Should I just have a display entity with text below the NPCs name? No name and two rows? Or is there another way?

chrome beacon
#

You need a text display

#

No name and two rows is probably the easiest method to manage

grave vigil
chrome beacon
#

You can just keep track of the entities in a map or smth

grave vigil
kind hatch
#

They shouldn’t

chrome beacon
#

Instances change

#

UUIDs do not

grave vigil
#

I see

#

thanks

eager turtle
#

Make a private field to hold the name as an array of strings. Then a private field to hold the UUID of whatever you spawn

#

Then like the others said, set the NPCs name to nothing and just use the text displays to show your lines of text above

#

It would be easier cause you can literally make the constructor of your Wrapper just do the entire NPC creation, so everytime you want an NPC youd just do like MyNPC npc1 = new MyNPC(name, location, other params) and that will spawn it and return an instance to use

grave vigil
#

Yeah that makes sense, thanks for the advice

eager turtle
#

Sorry i dont know how familar you are with java

#

Cool good luck

pseudo hazel
#

I wanna use placeholder api for my plugin's scoreboard, but since placeholder api requires a player object to solve the placeholders, does that mean I need a scoreboard for each player individually?

#

or what is a better way to organize it

lost matrix
#

Gamers. Im removing the message x/y players sleeping. Before i start fetching the packet, does someone know if there is a gamerule or config entry
which disables the message?

eternal night
#

there is not

echo basalt
#

is it me or did smile come back from the dead

tardy delta
quaint mantle
#

dispatch command is executing 2 times

chrome beacon
#

?interactevent

undone axleBOT
#

The PlayerInteractEvent may be called once per hand. If you only want code to be executed once, you can check the result of https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerInteractEvent.html#getHand(), then decide functionality.

For example, only executing code if the main hand was used:

@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
    if (event.getHand() != EquipmentSlot.HAND) { // * if the hand used is NOT the main hand:
        return; // do not progress past this point  |
    }
    // provide functionality
}
quaint mantle
tardy delta
#

check the hand

quaint mantle
#

ok thx

fringe yew
#

how do i check if a block is ANY type of log

#

i'd rather not make a condition for every type of log

tardy delta
#

theres probably some Tag.LOGS::isTagged

worthy yarrow
#

Was bouta say that

fringe yew
tardy delta
#

look at the javadocs of isTagged

fringe yew
#

got it, thanks

twin venture
#

hi , if i want for example to use fawe in my project what kind of libraries i need to add too?

#

this is for 1.16.4 ..

twin venture
#

can you send me the maven setup?

drowsy helm
#

Just google world edit maven

twin venture
#

been trying for hours ,-,

drowsy helm
#

It’s quite literally the first thing that pops up on google

slender elbow
#

xD

twin venture
#

idk why

drowsy helm
#

Wdym like outdated java version?

twin venture
#

yeah can't build the plugin ..

drowsy helm
#

Shiw the error

twin venture
#

i think its from my maven

#

so this is what iam missing ..

quasi gulch
#

Try reloading the maven project with both buttons

twin venture
#

i tried ..

quasi gulch
#

maybe restarting your ide

quasi gulch
# twin venture i tried ..

or did you maybe delete any of your depencys that you added maybe any jar file in your downloads or sum?

red copper
#

omg

low marlin
#

I have a custom spawners plugin
does anybody know how to set that the spawner condition will be any region? Like for example iron golems only spawn on ground and pigs spawn on grass and I want them to spawn on air

vast ledge
#

or a server owner?

low marlin
#

the dev

vast ledge
#

Check if theres a spawner entity spawn event

#

or smth

#

If something like that exists, check the block below the to be spawned entity, deny spawn if it isnt what you want

low marlin
#

There's a SpawnerSpawnEvent but the thing is it runs as the mobs spawns by the spawner, The problem is the mobs doesn't spawn when the spawner is mid air

#

only it it's specific conditions

vast ledge
#

Ig, you could cancel the event if its ever fired, then have your own random spawning

wary harness
#

why does duration of potion is not showing up

vast ledge
wary harness
vast ledge
#

you have it in the code

wary harness
#

I am confused

vast ledge
#

You'd have to check, if you need to add the time directly to the bottle, im not sure, if it transfers the time from the potioneffect to the provided lore

twin venture
#

So for now i have this :

but

#

its still not working?

#

this is for 1.16.5 and probbly older i have 2 system one for 1.19++ and one for 1.18-- older

shy belfry
#

Im having a bit of an issue with 1.20.6 and NMS. 1.20.6 needs java 21 to build plugins but then I get this from the special source plugin
[ERROR] Failed to execute goal net.md-5:specialsource-maven-plugin:1.2.3:remap (remap-obf) on project v1_20_R4: Error creating remapped jar: Unsupported class file major version 65 -> [Help 1]

remote swallow
#

update the specialsource plguin to 2.0.3

shy belfry
#

thank you

olive vault
#

cannot access org.bukkit.command.CommandExecutor

#

maven

chrome beacon
#

Show your pom

olive vault
chrome beacon
#

If you're using Intellij make sure to reload maven

#

Also use a unique group id

olive vault
#

same error, ill change the group id

#

cannot access org.bukkit.command.CommandExecutor

#

I changed plugin.yml too

chrome beacon
#

When are you getting that error

olive vault
#

after maven compiles

#

also in project errors

drowsy helm
merry cove
#

Looking for someone to help test my plugin and give some feedback. it requires 1.20.6 and java 21+. it handles entities custom entity armor, items, size etc. (no custom AI, yet)

worthy yarrow
worthy yarrow
#

No clue

#

You haven’t any friends or nothing?

merry cove
#

not playing minecraft, no 😐

worthy yarrow
#

Well like I said you might get lucky here

nova notch
#

If you mean testing as in testing multiplayer features, you could get an alt account?

ornate heron
#

Minecraft is on sale at $15 rn you can buy an alt fairly cheap

merry cove
#

have alts, but ty for the suggestion šŸ™‚

wet breach
marsh crest
#

gang i have an idea and i need your opinion on it

#

i'm not the best artist but this is a side view of a super flat world

#

on the left, we have a lobby that is filled with people and joy and whimsy

#

on the right, a desolate lobby that is in peak pristine condition with nothing tampered and nobody is allowed to interact with

#

my idea is the left is filled with cool trinkets and stuff that people can play with

#

but i wanna be able to reset the lobby on the flick of a dime!

#

idk wh y i said that

#

anywho

#

is there a good method of like

#

basically just replacing the left (player filled) lobby with the right one

#

including chest nbt data and piston nbt and entities (bc armor stands)

#

this is a lot idk how to go about this

royal heath
#

What are you trying to do exactly?

marsh crest
#

i kinda explained the whole thing

#

i wanna essential copy right lobby and paste it over left lobby

#

so it resets it

quaint mantle
marsh crest
#

wdym

drowsy helm
#

Use something like redis to copy world data

#

Then paste it on other server

#

Or just have a master copy and use smth like SWM

marsh crest
#

okay so

#

#1) what is redis

#

#2) what is SWM

drowsy helm
#
  1. Slime world manager
#

Super fast, efficient world loader

#

Which is probs what you want

marsh crest
#

is there like a good tutorial i could follow

drowsy helm
#

Their wiki is pretty straightforward

fluid cypress
#

im trying to use the plotsquared api but i get a ClassNotFound error on all event classes. i tried changing compileOnly("com.intellectualsites.plotsquared:plotsquared-core") to implementation so it adds the classes to the fat jar, but doing that breaks other stuff (like the api not being able to get the instance of the plugin). this is how im adding the dependency to the project:

implementation(platform("com.intellectualsites.bom:bom-newest:1.45"))
compileOnly("com.intellectualsites.plotsquared:plotsquared-core")
compileOnly("com.intellectualsites.plotsquared:plotsquared-bukkit") { isTransitive = false }

this is how i register the events inside onEnable:

import com.plotsquared.core.PlotAPI

// onEnable
PlotAPI().registerListener(PlotSquaredEvents)

this is the class

import com.google.common.eventbus.Subscribe
import com.plotsquared.core.events.PlayerBuyPlotEvent
import com.plotsquared.core.events.PlayerClaimPlotEvent
import com.plotsquared.core.events.PlotAutoMergeEvent
import com.plotsquared.core.events.PlotMergeEvent

object PlotSquaredEvents {
    @Subscribe
    fun onPlayerBuyPlot(event: PlayerBuyPlotEvent) {
        println("${event.plotPlayer.name} bought ${event.plot}")
    }

    @Subscribe
    fun onPlayerClaimPlot(event: PlayerClaimPlotEvent) {
        println("${event.plotPlayer.name} claimed ${event.plot}")
    }

    @Subscribe
    fun onPlotMerge(event: PlotMergeEvent) {
        println("plot merge ${event.plot}")
    }

    @Subscribe
    fun onPlotAutoMerge(event: PlotAutoMergeEvent) {
        println("plot auto merge ${event.plot}")
    }
}

i added PlotSquared to softdepend in plugin.yml, so idk what else to try, any idea? these are the docs i tried to follow https://intellectualsites.gitbook.io/plotsquared/api/api-documentation

drowsy helm
#

Dumb question but you do have PlotSquared in your plugins folder right

fluid cypress
#

yes

#

and i compiled it myself btw, without any modifications, i didnt get the jar from the forum, i dont think that matters but just in case

drowsy helm
#

As long as the package names are the same it should be fine

#

Decompile the jar and double check the package names

sullen marlin
#

Have you tried not kotlin?

fluid cypress
#

yea, besides i dont get any error with the plugin itself, i tried doing Bukkit.getPluginManager().getPlugin("PlotSquared") as BukkitPlatform and PlotSquared.get() and its all working

fluid cypress
fluid cypress
sullen marlin
#

Because maybe it doesn't like kotlin

drowsy helm
#

Yeah decompile the plugin jar and look if they are inside

#

Or yeah, could be a kotlin thing

fluid cypress
#

ill try tho

fluid cypress
sullen marlin
#

Those method signatures might not be what it expects or something

#

I don't know kotlin, it's just an idea

drowsy helm
#

Plotsquared

fluid cypress
#
com/plotsquared/core/events/PlotDeleteEvent.class
com/plotsquared/core/events/CancellablePlotEvent.class
com/plotsquared/core/events/EntityEvent.class
com/plotsquared/core/events/PlayerAutoPlotEvent.class
com/plotsquared/core/events/PlayerAutoPlotsChosenEvent.class
com/plotsquared/core/events/PlayerClaimPlotEvent.class
com/plotsquared/core/events/PlayerEnterPlotEvent.class
com/plotsquared/core/events/PlayerLeavePlotEvent.class
com/plotsquared/core/events/PlayerPlotDeniedEvent.class
com/plotsquared/core/events/PlayerPlotHelperEvent.class
com/plotsquared/core/events/PlayerPlotTrustedEvent.class
com/plotsquared/core/events/PlayerTeleportToPlotEvent.class
com/plotsquared/core/events/PlotAutoMergeEvent.class
com/plotsquared/core/events/PlotChangeOwnerEvent.class
com/plotsquared/core/events/PlotClaimedNotifyEvent.class
com/plotsquared/core/events/PlotClearEvent.class
com/plotsquared/core/events/PlotComponentSetEvent.class
com/plotsquared/core/events/PlotDoneEvent.class
com/plotsquared/core/events/PlotEvent.class
com/plotsquared/core/events/PlotFlagAddEvent.class
com/plotsquared/core/events/PlotFlagEvent.class
com/plotsquared/core/events/PlotFlagRemoveEvent.class
com/plotsquared/core/events/PlotMergeEvent.class
com/plotsquared/core/events/PlotPlayerEvent.class
com/plotsquared/core/events/PlotRateEvent.class
com/plotsquared/core/events/PlotUnlinkEvent$REASON.class
com/plotsquared/core/events/PlotUnlinkEvent.class
com/plotsquared/core/events/post/
com/plotsquared/core/events/post/PostPlayerAutoPlotEvent.class
com/plotsquared/core/events/post/PostPlotChangeOwnerEvent.class
com/plotsquared/core/events/post/PostPlotDeleteEvent.class
com/plotsquared/core/events/post/PostPlotMergeEvent.class
com/plotsquared/core/events/post/PostPlotUnlinkEvent.class
com/plotsquared/core/events/RemoveRoadEntityEvent.class
com/plotsquared/core/events/Result.class
com/plotsquared/core/events/TeleportCause$CauseSets.class
com/plotsquared/core/events/TeleportCause.class
#

thats the output of jar -tf plotsquared-bukkit-7.0.1-SNAPSHOT.jar | grep com.plotsquared.core.events

#

there are none of the event classes that i care about apparently

sullen marlin
#

Version mismatch then presumably

fluid cypress
#

meaning they didnt exist when i compiled the plugin? it was a long ago iirc, a few months, more than a year maybe

drowsy helm
#

Are they even in the code you compiled?

sullen marlin
#

Make sure you depend on the same version as you use on your server

fluid cypress
fluid cypress
sullen marlin
#

Idk gradle

#

With maven a version is required

drowsy helm
#

Id assume it’s latest

fluid cypress
#

k i guess ill have to go through the hell of compiling a java project again...

drowsy helm
#

Cant use the public release?

#

Or did you modify the source

fluid cypress
#

i cant believe it compiled

fluid cypress
#

i guess there were breaking changes? that wouldnt explain the class not found error tho, right? is that from a newer version of spigot? im still on 1.20.1 and java 17

drowsy helm
#

They aren’t spigot events so no

fluid cypress
#

but PlayerSignOpenEvent is a spigot event, and i checked it, it does exist on 1.20.1 so, idk how can that error happen

#

ill try a 1.20.6 server

drowsy helm
#

Ah

#

Why isnt your ide flagging it

fluid cypress
#

flagging what

junior cradle
#

I created a batch entity that is displayed only on the client's page, how should I handle clicking on it now so that it writes something to the chat? 1.20.4

#

It doesn't work (

 @EventHandler
    public void onClickNpc(PlayerInteractEntityEvent e) {
        Player player = e.getPlayer();
        CraftEntity clicked = (CraftEntity) e.getRightClicked();

        Villager villager = VILLAGER_MAP.get(player.getUniqueId());
        if (villager != null && clicked.getEntityId() == villager.getId()) {
            player.sendMessage("You clicked on the special Villager!");
        }
        player.sendMessage("You clicked.");


        CraftPlayer craftPlayer = (CraftPlayer) player;

    }
fluid cypress
blazing ocean
shadow night
#

AHAHAHA I'M SAVING THAT

blazing ocean
shadow night
#

Lol

blazing ocean
#

i hate you

shadow night
#

Thanks

icy beacon
shadow night
icy beacon
#

AH

obsidian drift
#

Does anyone know when the attack cooldown damage reduction is applied? Is it just for the generic attack damage or is it for enchants and potion effects as well?

fair rock
fair rock
# junior cradle Yes, Packets

If im not wrong, its impossible to read interacts with client-side entity that you created with packets. You need a packetreader for that

junior cradle
eternal oxide
#

Interact events will only be fired for entities the server knows about

eternal oxide
#

You need to add it to the world rather than use Packets

#

or as Silver said

#

are these actual Villager NPC's?

junior cradle
#

PacketReceivedEvent ?

junior cradle
eternal oxide
#

Then you'll get events as normal

junior cradle
#

this is how I created NPC for the test

@EventHandler
    public void onBreakBlock(BlockBreakEvent e) {
        Player player = e.getPlayer();
        Block block = e.getBlock();
        Location location = block.getLocation().toCenterLocation();

        CraftPlayer craftPlayer = (CraftPlayer) player;
        Level level = craftPlayer.getHandle().level();

        NpcVillager villager = new NpcVillager(VillagerType.JUNGLE, level);
        villager.setPos(location.x(), location.y(), location.z());

        ClientboundAddEntityPacket packetVillager = new ClientboundAddEntityPacket(villager);
        craftPlayer.getHandle().connection.send(packetVillager);
        VILLAGER_MAP.put(player.getUniqueId(), villager);
    }
#

And he appeared to me, but I don't know how to choose interaction with him

#

@fair rock @eternal oxide

eternal oxide
#

pointless

#

Its just a villager

fair rock
#

Do you have a specific reason why its only client-side?

eternal oxide
#
npc = world().spawn(location, Villager.class, false, villager -> { villager.setVisibleByDefault(false)});
player.setshowEntity(plugin, npc);```
#

spawns it and only shows to one player

#

no CB/NMS needed

#

you set all its values in the consumer (lambda)

junior cradle
junior cradle
fair rock
fair rock
#

Its not a paper support but in paper is a PlayerUseUnknownEntityEvent

junior cradle
fair rock
#

If you use Paper, just use that Event.

fair rock
#

Like the describe it should, so if its not, implement a packet reader

junior cradle
junior cradle
#

Very very thank you!

fair rock
#

Np but if you use Paper ask there next time because they know their events xd

quiet ice
#

Time for yet another average geolykt question: Does anyone happen to know some way of concurrently storing, adding, removing and retrieving potentially overlapping 2D AABBs (which should all have a unique metadata ID of their own) in a 2D space in a performance-friendly manner (I'm looking at potentially several thousands)? The AABBs have the same width as height - that is they are all squares. However, the AABBs may differ in size (I just say that in case I want to add further functionality that would allow to "upgrade" the bounding boxes)

quasi gulch
#

Idk if i understood that right but sounds like you are searching for a PRTree

quiet ice
#

yeah, but all PRTree impls I know of are not concurrent

quasi gulch
#

what you mean with concurent?

quiet ice
#

You know, concurrent. So multithreaded with as few locks as possible (as opposed to async, which is multithreaded with as many locks as possible)

quasi gulch
#

hmm ok i didnt have problems with prtree when i used it async or what do u mean?

quiet ice
#

Generally implementations should be considered to not allow writes to happen concurrently to read or write access, and if they allow that is often explicitly advertised as allowing that

quasi gulch
#

hmm ok never did anything with that so i have no idea xd

quiet ice
#

often it is okay if multiple threads access the same thing at the same time, but once you write to a structure you need to use some kind of read-write lock. However most often that kind of lock is implemented by locking the entire tree as opposed to a very specific leaf which leads to poor read/write performance

eternal oxide
#

the only way around that is to split the tree by some defining factor

turbid flame
#

Quick question who is sending keep alives and who is answearing?

alpine urchin
#

server sends it, client responds with the same id

turbid flame
#

okok

alpine urchin
#

on legacy versions it used to be sent very frequently but now i believe it’s every 20 seconds

#

or something like that

turbid flame
#

Legacy versions are below which version?

eternal oxide
#

below 13

turbid flame
#

okok

alpine urchin
#

well i don’t remember exactly when

#

legacy generally just referring to old

#

if the client takes too long to respond, they’re obviously kicked

eternal oxide
#

api-version is supported for 1.13+. Everything before is Legacy

shadow night
#

Has anybody here written a gradle plugin before? I've published it to my local maven repo, but I still can't apply it in the build.gradle

plugins {
    id 'java'
    id 'me.andreasmelone.gniremapper' version '1.0-SNAPSHOT'
}``` this errors, even tho if I look into .m2/repository/me/andreasmelone/gniremapper everything exists and shouldn't be problematic
eternal night
#

did you add maven local as a plugin repository?

shadow night
#

there are "plugin repositories"? I just have the normal repositories block with all of my repos and there I have maven local

eternal night
#

Yea lol

#

in your settings.gradle.kts

#
pluginManagement {
  repositories {
    gradlePluginPortal()
    mavenLocal()
 }
}
#

How else would gradle know where to get plugins from o.O

shadow night
#

Well, I'll test it later, thanks

eternal oxide
#

Gradle, the idiot step child of Maven

eternal night
#

<commonLOpinion>true</commonLOpinion>

shadow night
eternal oxide
#

um

tardy delta
#

im used to c++ build times so im not essentially worried about gradles faster compile times

#

apart from that, whats the reason to use it?

eternal oxide
#

It is more flexible

quaint mantle
shadow night
#

But for some projects gradle is indeed overkill

tardy delta
#

i hate java build systems

#

rusts approach is still cleaner

eternal night
#

but you like c++ build systems???

tardy delta
#

nah

eternal night
#

What about rusts approach is cleaner OMEGALUL

tardy delta
#

dependency management and build files that run at compile time

eternal night
#

that is literally gradle

#

you can literally just execute code in gradle during compile time

quaint mantle
#

Rust only have toml for builds configuration?

eternal oxide
#

Exec maven plugin to run code during compile time

#

simpler in Gradle though

eternal night
tardy delta
turbid flame
echo basalt
#

The 20 second period is just the timeout

#

If either the client or the server doesn't hear back within 20 seconds they disconnect

turbid flame
#

Yea but i thought that if client in newer versions receive KeepAlive too often something might break

#

Thanks

cinder abyss
#

Hello, can any moderator go to #1243264378522959914 and pin the first message of the channel please ? ā¤ļø

marsh lichen
#

Anyone know the event to check for breeze projectiles? Seems to have no effect on EntityExplodeEvent :/

fair rock
#

ProjectileHitEvent?

marsh lichen
#

worked 😁

pliant topaz
#

EntityExplodeEvent is only for creepers and tnt i think

pseudo hazel
#

end crystals too probably

pliant topaz
#

true, yea, forgot them

fair rock
pliant topaz
#

"Called when an entity explodes" yea

fair rock
#

That does the breeze projectile too

#

but no blocks get destroyed xd

pliant topaz
#

but breeze isn't really an explosion i'd say

#

more like an air repulsion

#

"If the wind charge hits a block, only the gust of wind appears. This gust causes knockback but does not do damage, instead pushing objects away from itself." says the wiki

fair rock
#

How is air repulsion created? Through a explosion (in the most part) yk?

#

Thats why i understand his "thought" of an entityexplodeevent tbh

pliant topaz
#

the visuals are midleading, thats true

ivory sleet
#

:o

tardy delta
#

god dammit

#

hello conclure btw

ivory sleet
#

hellooo

distant wave
#

does anyone know how can i get Beacon's item that is used to activate it

#

theres BeaconInventory, but idk how to get it

eternal oxide
#

Good question, I see no way of getting it

shadow night
#

When does onLoad get called?

eternal oxide
#

when plugins Load (not enabled), usually before worlds load

shadow night
#

Does spigot let me make a custom plugin loader, which can maybe modify some jars with a specific file in them (myownplugin.yml instead of normak plugin.yml) and load them?

eternal oxide
#

So long as they are not seen as plugins you can do what you want with them

shadow night
#

But how would I load them?

#

And so, that nothing breaks

eternal oxide
#

they are not plugins so Spigot will not care about them. You handle classloading yoruself

shadow night
#

ig

wet breach
#

manually put item in persons inventory or whatever, use setItem() on the beaconInventory and set it to air

carmine mica
#

they meant they don't know how to get the instance of BeaconInventory

#

but you just get it from the player's open inventory view

tardy delta
#

cast it to inventory holder maybe

wet breach
#

but I doubt that is what they want and instead are talking about the item in the beaconInventory

carmine mica
#

no, it's not. they asked the same question in the paper discord

eternal oxide
#

^ was mu assumption

wet breach
#

well not my issue really

#

they can ask again more properly

eternal oxide
#

With no view open I see no way to obtain it

carmine mica
#

there is no inventory unless one is open

#

beacons aren't like chests or furnaces

eternal oxide
#

makes sense

tardy delta
#

ah i forgot what a beacon was

#

thing has only one slot or smth

valid burrow
#

and a few buttons

#

now that i think about it

#

one could use a reskinned beacon inventory as a gui cause it got a few buttons

#

actual buttons

cinder abyss
#

Hello, what is the class that loads spigot plugins?

eternal oxide
#

server if I remember

tardy delta
#

id say PluginManager

cinder abyss
tardy delta
#

SimplePluginManager in particular

cinder abyss
eternal oxide
#

yes, look at implementation

#

?stash

undone axleBOT
cinder abyss
#

thank you

eternal oxide
tardy delta
#

together with PluginLoader, which i dont know the impl for

shadow night
tardy delta
#

ah JavaPluginLoader i suppose then

shadow night
#

where the hell is my directory

vast ledge
#

In build/mappings/

shadow night
#

mappings doesn't exist in build and idk why

vast ledge
#

Idk then

shadow night
#

ahh, apparently I had to call getParentFile().mkdirs()

dawn flower
#

is there a way to try every possible combination (not including moving letters) of a string?

for example tes becomes

es
s
t
e

and so on

carmine mica
#

you mean every substring of the string

#

you'd be missing te

#

is ts included? if so, it's not every substring, idk what you'd call this

dawn flower
#

yeah ts is included

#

basically every possible substring

carmine mica
#

ts isn't a substring is what I was saying there last

dawn flower
#

including only getting the middle part, the ones i tried couldn't get the middle letters

#

i want it so it can get and/or remove middle letters as well

quiet ice
#

I mean, at it's core you have 2^n (n being the amount of characters within a string) possible combinations - which means that you can represent it via a bitfield

dawn flower
#

how is it 2^n? if you plug in te it returns 4 (there's 3 only)

lilac dagger
#

oh moving letters around

quiet ice
dawn flower
#

oh blank included

quiet ice
#

so

  • 11
  • 10
  • 01
  • 00
    respectively
#

However this strategy is only good for enumerating these strings; if you wish to do something else it might require something else who knows

dawn flower
#

oh crap

#

at 250 chars it becomes...

lilac dagger
#

quite hard to process indeed

dawn flower
#

is it 2^n or n^2

lilac dagger
#

i still fail to understand the subject yet

#

so the words have to stay in place and make combinations of the chars it contains?

quiet ice
#

Since either you can have a character or you can't have it. That's a bitfield at it's core.
And a bitfield is a binary number at it's core.
Binary is base 2, so 2^n.

dawn flower
#

i'm expecting 250 or more chars sometimes

#

by the time aquantom computer process it, humans will go extinct

lilac dagger
#

what's this for?

quiet ice
#

So, you are probably not wanting to enumerate all possible solutions then

worthy yarrow
#

What’s the context for this calc?

quiet ice
#

at which point, it might be useful to know what you wish to do

marsh crest
#

are making minecraft mods similar to making server plugins

cinder abyss
#

there is one thing that can make it similar : NMS

shadow night
cinder abyss
#

but there is still a big difference

worthy yarrow
#

Best way to put it (imo): spigot api is for server sided manipulation, and mods or rather for client sided manipulation

#

There are niche cases like these guys just mentioned

dawn flower
#

back

cinder abyss
#

Hello, how can I get the server.jar file (basically, the file that makes run my plugin)?

dawn flower
#

also search spigot download on google

cinder abyss
dawn flower
#

ah

marsh crest
dawn flower
#

u use getServer()

cinder abyss
dawn flower
#

get the class path then the jar path

marsh crest
# worthy yarrow Eh

according to the research i did i kinda need it to make like "ghosts" of people

#

like just having a fake character in game

#

i dont see any other way

cinder abyss
worthy yarrow
#

Lotta libraries out there with stuff you can use

marsh crest
#

yeah but i wanna code it myself

worthy yarrow
marsh crest
#

?

#

oh is that a lib

worthy yarrow
#

You’re still coding the logic you need, but why reinvent the wheel

marsh crest
#

because i wanna learn the process behind the development of the wheel

worthy yarrow
#

Well

marsh crest
#

its more curiosity than help lol

#

(also idk how to use libs lmao)

dawn flower
#

what if i split the text by for example 10 then enumerate all of them then rearrange

worthy yarrow
#

I get it, but there’s not much point to it, nms is just a fucking pain whereas there’s plenty of public libs that allow you wrapper methods for these sort of things

cinder abyss
dawn flower
#

pretty much that

marsh crest
#

if i use citizens could i somehow like

#

"copy" characters

dawn flower
worthy yarrow
marsh crest
#

like i make a copy of a person thats the same but with no nametag

#

and they are 3 blocks to the right of the person

#

and each movement the original player does the other body copies

#

including where to look, arms, walking

worthy yarrow
#

Oh you’re gonna need a bit more than citizens for that

#

I’d do it yourself sure

#

I don’t really think citizens will help here other than getting you access to the mirrored character as it were (at least a bit easier than without)

dawn flower
echo basalt
#

In today's episode of wanting to end myself, I'm backporting an anti xray plugin from 1.9 to 1.8

#

What changed? The entire chunk format

cinder abyss
#

lol

#

good luck 🫔

echo basalt
#

Every version starting from 1.9 uses pallettes and encodes bits per block and stuff

#

1.8 just tosses in the ids raw

#

Pair that with a bunch of classes that weren't made thinking about this and you end up with a lot of hacky code

worthy yarrow
#

#StonksWorldGeneration

echo basalt
#

Also 1.8 has a bulk chunk packet

#

good luck with that hah

worthy yarrow
#

Bulk chunk?

#

Like when flying at speed 5 to the edge of a world or what

echo basalt
#

sends like 19 chunks at once

worthy yarrow
#

Quite goofy looking

echo basalt
#

hm

#

cool it immediately threw 20 errors

worthy yarrow
#

Sounds right

echo basalt
#

Integer.class vs int.class fml

worthy yarrow
#

Hahaha

echo basalt
#

how the fuck can't protocollib read this

echo basalt
#

(I've been at this for 3 hours)

remote swallow
#

nice

chrome beacon
#

hm? why backport when there already are options for 1.8

echo basalt
#

not my problem

#

having wonky issues rn

worthy yarrow
#

Hey that’s my attitude kek

echo basalt
#

ay my first crash

worthy yarrow
#

Hey only an extra 8000 bytes, not bad

echo basalt
#

It's conveniently the side of a chunk

#

p sure

#

so I'm kinda feeling like I'm writing duplicate data

#

Cool I see

#

need to extend more classes

twilit wharf
#

I am so confused right now. I have multiple gradle modules for different NMS versions. I am only supporting 1.20-1.20.6. 1.20.6 requires a higher java version (21) than the other versions. So, I compiled with 21, and then ran it with 21 on a 1.20.1 server, and got this weird error:

#

And I know I loaded with 21 as it started with ```
System Info: Java 21 (OpenJDK 64-Bit Server VM 21.0.3+9-LTS) Host: Windows 11 10.0 (amd64)
Loading libraries, please wait...

#

Does anyone know why? I saw somewhere that ASM doesnt support 21 on 9.4 version, maybe thats it?

chrome beacon
#

Use Java 17 for 1.20.1 servers

short drift
#

Okay, but what about making a passenger riding a player turn towards the direction the player is looking at? Eg. pitch and yaw, rotation.
Is that possible without teleporting (not riding) the passenger?

#

For example by editing packets or something?

#

I wouldn't want to waste my time any more than I already have trying to make an armor stand head gear which can hold things like eyewear, mouth wearables, etc.

#

Teleportation is not really an option because it involves network delay, which riding an entity doesn't have due to client prediction.

chrome beacon
#

Editing packets will have network delay

short drift
#

Well, yeah. So it's impossible?

chrome beacon
#

doing it that way yes

short drift
#

What did you have in mind?

chrome beacon
#

I would remodel an item place it in the helmet slot

short drift
#

Well, sure. I could do that, but then I can only wear one item in the head.

#

Unless I join the models. But the amount of combinations can get high pretty fast.

#

I guess I have to go that route. Well, thanks for the analysis.

#

It helped clear my head.

plush sluice
#

how do i kill/remove armorstand

mortal hare
#

is there any way to quit playing minecraft

#

i feel like its going too far for me

#

its developing as an addiction

#

i stay for almost 18 hours playing one minecraft server grinding

#

wrong channel but still

#

i've used to get around this by developing plugins for it instead

#

making the time at least productive by learning java

remote swallow
#

get very far into development

mortal hare
#

but now i switched to full-stack development on web a bit its quite alarming for me that i keep getting back to minecraft

remote swallow
#

you wont want to play minecraft as well as code stuff for it

mortal hare
#

its a good fucking game

#

its just

#

i cant pause whenever i need to

#

heck i skip programming related work just to escape from its anxiety

#

by strip mining

#

today i've digged up the whole chunk with one diamond pickaxe

#

with no beacons and stuff

nova notch
#

sir this is a #help development

remote swallow
fair rock
#

He should write in general 2

#

Ah yes its not existing, calling a doctor is good too kekw

nova notch
#

i have an idea, make a program that force closes minecraft for the rest of the day after a certain number of hours

fair rock
#

HTML is a programming language, is a red flag for every doctor

mortal hare
#

nah

#

im more into js stuff rn

#

and for the backend spring

#

im just trying to find a programming job

#

so im trying to learn web technologies 😭

#

it kind of disgusting how much bloat the web ecosystem has

worthy yarrow
#

Ruby on Rails?? šŸ˜„

mortal hare
#

React/JS + Typescript

#

stack

#

with Vite

#

React is a joke

#

but im forced to learn it

#

just because most of the companies expect to know it

#

:/

worthy yarrow
#

Hmm I tried just going very basic with ruby / html / css long time ago don’t even remember if I did anything

mortal hare
#

at least in my region

#

if i had to choose my framework, i would probably go with either with HTMX or Svelte

#

React is a runtime bloat that needs to die before it takes over the net

worthy yarrow
#

I def have not kept up with web dev

valid burrow
#

why does this always return 0

mortal hare
#

not sure but maybe the Material references are not the same

#

thus equality check fails

valid burrow
#

they r

#

checked more than once

tardy flame
#

Or is it?

valid burrow
#

yh it is

#

material is an enum

#

does player.getInventory not get the players entire inventory maybe?

cinder abyss
#

Hello, how can I put a jar in my plugins folder without having this error? Could not load 'plugins\test-plugin-1.0-SNAPSHOT.jar' in folder 'plugins' org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml ... Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
The jar doesn't have a plugin.yml, it's the goal

valid burrow
#

u cant have a plugin without a plugin yml xd

cinder abyss
valid burrow
#

how is bukkit gonna know what to do

mortal hare
#

what's the point?

cinder abyss
worthy yarrow
mortal hare
#

yea we can have one

cinder abyss
mortal hare
valid burrow
cinder abyss
#

I just want to suppress this error, the plugin have a cvn-plugin.yml instead of plugin.yml

mortal hare
#

althought it would be quite messy

mortal hare
valid burrow
#

one could flex with making a good API

cinder abyss
cinder abyss
#

guys

#

does it looks like "flex" ? or maybe a serious project ?

#

:)

fair rock
valid burrow
fair rock
#

So you want to check for a material in your own inventory and want to count every of it together?

Like Grass:3, Dirt:2, Grass:4

count Grass
= 7

Right?

valid burrow
#

yh

#

this should work though

#

i dont see why it doesnt

fair rock
#

Debug with running in debug method or sout? xd

valid burrow
#

thats what im doing rn

fair rock
#

mode*

mortal hare
#

i dont get the idea

#

isnt this is something that paperweight already does?

#

with gradle plugin?

valid burrow
#

im at a lost of words

#

honestly

#

what

fair rock
valid burrow
#

im printing out all the things it iritates through

#

now im really clueless

mortal hare
#

wait

valid burrow
#

it knows whats in the inventory

mortal hare
#

that's really a good idea

#

i like it

#

having consistent mappings like fabric's but for spigot plugins

#

making cross compatible plugins easily

#

šŸ¤”

cinder abyss
fair rock
valid burrow
mortal hare
fair rock
#

I dont want to the type that xd

#

im in valo xd

worthy yarrow
#

@valid burrow I don’t see how it failed?

cinder abyss
mortal hare
#

do you actually want to dynamically generate specific version NMS interfaces that after recompilation from intermediary mapping would call those interfaces thus making the plugin cross compatible?

worthy yarrow
valid burrow
fair rock
#

ah wait i have 30s

valid burrow
#

?paste

undone axleBOT
valid burrow
#

this just does not make any sense

valid burrow
#

i seem to have found the issue lol

#

the method works

#

its just implemeted wrongly

#

i need sleep

#

i spend 10 minutes debugging a working method

cinder abyss
#

so, how can I suppress the Could not load 'plugins\test-plugin-1.0-SNAPSHOT.jar' in folder 'plugins' org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
?

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!

mortal hare
# cinder abyss like that

wouldnt it be more logical if the transformations regarding NMS would be done from gradle itself, instead of trying to load it from separate plugin at runtime

#

or i dont get it something

valid burrow
#

oh it wasnt ask lol

#

theres 1 command that tells you not to ask the same question over and over again

#

which one was that lol

cinder abyss
#

?

remote swallow
#

isnt a command

cinder abyss
remote swallow
mortal hare
#

what's the point of intermediary jar file inside plugins folder

cinder abyss
mortal hare
#

couldnt it be just compiled to remapped one at compilation

cinder abyss
#

then we make it usables by the server as obfuscated

mortal hare
#

so you're developing a intermediary plugin loader for spigot?

cinder abyss
#

but that's not the subject

worthy yarrow
valid burrow
#

or so i thought

#

cause thats what my inventory said

#

turns out i placed == instead of >

worthy yarrow
#

Well in that ss it was obvious that it didn’t right?

#

Otherwise it would have just said the block name right?

valid burrow
mortal hare
#

honestly

#

i would probably would make a PR

#

to push it into spigot

#

since it looks kinda promising

#

and it would allow you to mitigate those kind of issues

remote swallow
worthy yarrow
mortal hare
#

by modifying the spigot itself

valid burrow
cinder abyss
remote swallow
worthy yarrow
#

@valid burrow take a shot and a nap

valid burrow
#

i dont have anything nice here

#

i am tired but i gotta finish this plugin

#

been on my todo list for too long

#

i gotta refactor the entire thing anways

#

its a mess

fair rock
remote swallow
#

kotlin?!??!?!

valid burrow
#

in the implementation

fair rock
#

in the method you send is no == thats why i was confused

valid burrow
remote swallow
#

today is the day

#

refractor to kotlin

fair rock
valid burrow
remote swallow
sullen canyon
#

looks awesome

topaz cape
#

is it possible to override the name tab completion for 1.13+ players?

twin venture
topaz cape
twin venture
#

let me check ..

topaz cape
#

?

twin venture
#

wana use those

dry arch
#

are the repositories set correctly?

topaz cape
#

lol

dry arch
tardy delta
#

3k errors?

dry arch
#

what

twin venture
remote swallow
#

light classes are fine but heavy ones just die

dry arch
#

also dont forget to press this

remote swallow
#

idk what that dep is but i dont think its actual fawe

topaz cape
dry arch
twin venture
#

i did this but istill get an error

#

<dependency>
<groupId>com.intellectualsites.bom</groupId>
<artifactId>bom-newest</artifactId> <!-- Ref: https://github.com/IntellectualSites/bom -->
<version>1.45</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.fastasyncworldedit</groupId>
<artifactId>FastAsyncWorldEdit-Core</artifactId>
<scope>provided</scope>
</dependency>

GitHub

Bill of materials covering IntellectualSites Minecraft projects for third party consumption - IntellectualSites/bom

remote swallow
#

reload maven

twin venture
#

i did

#

many times

#

i still

topaz cape
#

I think thats a very old api

twin venture
#

Could not find artifact com.fastasyncworldedit:FastAsyncWorldEdit-Core:pom:unknown in spigotmc-repo

topaz cape
#

like 1.8.8 type of thing

remote swallow
#

have you managed to remove maven central from ur project

twin venture
#

this is the new error

topaz cape
#

probably no longer available

twin venture
dry arch
topaz cape
#

no

#

just name completion in general (it doesnt require commands)

#

i think its client sided now

#

just not too sure

dry arch
remote swallow
#

if it cant find it you somehow dont have access to central

twin venture
#

if i keep getting this errors

#

what i should do?

tardy delta
#

is their repo down again maybe?

buoyant jasper
#

why my plugin works if 1 player is in server but if there is more players the plugin doesnt work and player stats from database are showing for different players

storm crystal
#

does that look like an okay implementation of json serializer/deserializer?

#

it works properly

#

and prints correct stuff

quaint mantle
#

Yes ig. Make sure to write unit tests for that.

small valve
#

Does using sockets between bungeecord and spigot require extra ports? I'm trying to convert plugin messaging over to sockets so that I can use it even when a player is offline

slender elbow
#

well, the server needs to have a port open and accessible to bind a socket to for the proxy socket to connect to

#

so, yes

storm crystal
upbeat maple
#

hello on 1 easy anarchy cheater, please ban him, he interferes a lot with EzAccount

small valve
cinder abyss
small valve
#

Is there no way to, on a disconnect, send a plugin message if the server is empty after the disconnect?

Proxy (Detects Disonnect Event) -> Sends PM to Server -> Server parses message using PlaceholderAPI -> Server sends message back to Proxy

I wanna avoid using extra ports because I know port usage is limited but if there is truly no other way then that's okay 😭 just sucks

young knoll
#

There are other ways to communicate data

#

Like a database

golden turret
#

calling the math heads here

#

i have an explosive enchantment and i want it to break blocks only in front of the player

#

this is the code

#

when i break a block this happens

#

how can i make it to break only theses blocks?

remote swallow
#

Check type isnt hair

#

Air

golden turret
#

i tried to play with the z in the vectors, but it only works for some directions

#

fixed it

#

my angles were wrong

#

and i just needed to set the z to 0 in the max vector

wooden thicket
#

anyone know how to add gaps inbetween scores on a scoreboard similar to this:

when I add a blank line it just doesn't show on the scoreboard

I am using spigot 1.16

valid burrow
#

should work if every line is unique

#

you can not have the same line twice

#

so you have to do something like

#

1 space in empty line 1

#

2 space in empty line 2

#

3 space in empty line 3

#

that should work

#

if that doesnt work show us your code

#

?paste

undone axleBOT
storm crystal
#

What would be more efficient: getting pdc data of item on equip event, putting it to cache and then use cache whenever event X is called, or getting pdc data of item every time event X is called?

#

As in, how resource expensive is getting data out of pdcs compared to just using data stored in a field?

valid burrow
#

how often is the event called?

storm crystal
#

Every time you attack a mob

#

So, very very often

valid burrow
#

well one of them uses ram the other one dosest

#

then cache it

storm crystal
#

Okay

valid burrow
#

well what do you consider very often

storm crystal
#

Im thinking of a way to make custom statistics

valid burrow
#

are people permanently fightinh?

#

if so cache

#

if not permanently fighting use pdc

#

or if every person may have multiple weapons

#

dont cache

storm crystal
#

Pretty much all the time its supposed to be mmo rpg / roguelike pve gamemode

valid burrow
#

mhm

#

well you can cache some data to some extend but you need to keep it in limits

#

caching at some point becomes very expensive in ram

storm crystal
#

Things like equipment can be cached

#

Weapon probably not

#

But its okay anyway

#

Good enough

valid burrow
#

if youre making custom weapons

#

calculate the damage on every weapon swap

#

and then cache only the damage

#

instead of the whole weapon

storm crystal
#

Is there an event of swapping your current player bar index?

storm crystal
#

That way I could cache entire damage

storm crystal
#

Ill experiment with it for sure

valid burrow
#

gl

storm crystal
#

When fighting enemies Id have to get their pdc on each hit though, to match their ID in statistics cache

#

So at worst it's 2 PDC fetches per attack

#

1 for id, 1 for level

#

Since enemy cache holds base statistics

olive lance
#

i cant see the address/path bar

#

cant figure out how to get it to show up, i think its bugged

valid burrow
#

?whereami

valid burrow
slender elbow
drowsy helm
#

anyone else getting this error with BT?

#

Same outcome in both exe and jar version hmm

kind hatch
#

What java version are you using to run it?

drowsy helm
#

22

#

ill give 17 a try

#

Nope, 17 aswell

kind hatch
#

What about Java 21?

drowsy helm
#

it only allowed me to do either 17 or 22

kind hatch
#

Do you not have 21 installed?

drowsy helm
#

wait now its not complaining

#

same issue with 21

#

oh wait the override feature doesnt work at all on the exe

#

it runs latest regardless of what you chose

kind hatch
#

Does it do the same thing with the jar?

drowsy helm
#

testing rn

analog mantle
#

Is this a valid syntax in terms of my plugin's config.yml?

Example Setting: [
  OPTION_ONE,
  OPTION_TWO,
  OPTION_THREE,
  ...
  OPTION_N
]
drowsy helm
#

no

analog mantle
#

How do I allow the user to choose from an arbitrary combination of valid options

kind hatch
#

Yaml lists use this format.

settings:
- OPTION_ONE
- OPTION_TWO
- OPTION_THREE
drowsy helm
#

either do a List like this:

options:
  - OPTION_ONE
  - OPTION_TWO

or have a kvp for each option

OPTION_ONE: true
OPTION_TWO: false
drowsy helm
kind hatch
#

The only time you'll see brackets is in empty lists.

drowsy helm
#

tested on 4 java versions

kind hatch
#

Gotta confirm with alex then. May or may not be an issue with JavaFinder

#

Either that or the current impl is fucked

drowsy helm
#

any idea if theres a way to override the build tools old version warn

#

so i can use an older ver of bt

kind hatch
#

Old version warning?

drowsy helm
#

yeah the one saying to download a new ver of bt

kind hatch
#

The one that says "Your BuildTools is out of date and will not build the requested version."?

#

Cause if it's that one, then no. Not at this point in time.

drowsy helm
#

yeah that one

#

dang

kind hatch
#

Honestly, I don't know the reason behind limiting versions behind a certain version of BT.
Maybe it was necessary before, but as of today, I can't think of a reason.

sullen marlin
#

It's only done where it's required for it to build

drowsy helm
#

ill create an issue on jira

kind hatch
#

How does it fair when you just use the command line?

drowsy helm
#

i was using commandline for the jar

kind hatch
#

With full java path?

drowsy helm
#

yeah

kind hatch
#

Hmmmm

drowsy helm
#

"C:\Program Files\Java\jdk-21.0.2\bin\java.exe" -jar BuildTools.jar --rev 1.20.6

kind hatch
#

Command prompt or powershell?

drowsy helm
#

cmd

#

ill try powershell

#

yeah same in powershell

kind hatch
#

Can you paste the full log?

analog mantle
#

What does this little symbol mean in intellij?

#

I hover over it and there's no text

#

Clicking it does nothing

#

(The full code for reference)

drowsy helm
#

?paste

undone axleBOT
drowsy helm
#

hastebin is down nice

kind hatch
analog mantle
drowsy helm
royal heath
#

It depends if its a string or a list of other values

kind hatch
#

More than likely going to be #getStringList()

#

But yea, depends on how you store the values.

drowsy helm
#

im guessing itrs because Program Files has a space in it

kind hatch
#

It is

#

I'm wondering where it breaks down though.

drowsy helm
#

guess il raw dog it in C drive

kind hatch
#

Like what..
\bin/bin/mvn

drowsy helm
#

yeah, still same issue, interesting

#

wait a min

#

did my M2_HOMe path wrong

#

lol

#

yep that was it

kind hatch
#

Mmmm, that's some stuff that should be added to the debug output.

#

What was it set to?

drowsy helm
#

you're a saviour, thankyou verytm uch

#

it had \bin included in the path

#

where it should've been without bin

analog mantle
#

What event can I hook onto to see when the player requests command completions from the server? I don't want it when the player sends a command, only when they request command completions.

rotund ravine
#

define completions, do u mean tabcompletions'? or the command list sent on join

small valve
#

Hey, is there a way to check if a spigot plugin is running on a server that's under a Bungeecord or Velocity proxy?

#

Actually a better question is; I heard someone say that using "BungeeCord" as the channel name is a recommended. Is this true?

eternal oxide
#

If you want to use teh default message implementation you use teh bungee channel. If you want to send your own messages you create a custom one

#

?pmc