#help-development

1 messages · Page 1090 of 1

upper hazel
#

oh ok

#

welp time for python 💀

ivory sleet
sterile flicker
#

What are the default values of the player's speed and attack attributes? 1.0?

pliant topaz
#

you can get them with AttributeInstance#getDefaultValue

dense falcon
#

I would like to spawn 3 armorstands: in front, to the left (90° to the left) and to the right of a player, then have them destroy themselves 0.25s later.
How may I do this 🤔 ?

ivory sleet
#

You can use the bukkit scheduler to coordinate code to run 5 ticks (.25s ideally) later

dense falcon
#

In fact what I don't know at all is how to make them spawn :(. With a custom data to dectect if the player clicked on it.

blazing ocean
#

I have these utilities to get the left and right direction:

/**
 * Gets the direction to the left of this block face.
 * @return The direction to the left.
 */
fun BlockFace.getLeftDirection() =
    when (this) {
        BlockFace.NORTH -> BlockFace.WEST
        BlockFace.WEST -> BlockFace.SOUTH
        BlockFace.SOUTH -> BlockFace.EAST
        BlockFace.EAST -> BlockFace.NORTH
        else -> this
    }

/**
 * Gets the direction to the right of this block face.
 * @return The direction to the right.
 */
fun BlockFace.getRightDirection() =
    when (this) {
        BlockFace.NORTH -> BlockFace.EAST
        BlockFace.EAST -> BlockFace.SOUTH
        BlockFace.SOUTH -> BlockFace.WEST
        BlockFace.WEST -> BlockFace.NORTH
        else -> this
    }
eternal oxide
#

its a Player so it will not be BlockFace

blazing ocean
#

Yea but you can get the direction the player is looking

eternal oxide
#

it will not align to a BlockFace though

blazing ocean
#

Well yea, I use these for a slightly different purpose but w/e

blazing ocean
eternal oxide
#

for a Location```java
/**
* Location left or right of the source.
*
* @param location the source.
* @param offset distance to the new Location.
* @param direction LEFT or RIGHT
* @return a new Location LEFT or RIGHT of the origin.
*/
public Location getSide(Location location, double offset, SIDE direction) {

    double rad = Math.toRadians(location.getYaw() + ((direction == Side.LEFT)? 0: 180) );
    double x = Math.cos(rad);
    double z = Math.sin(rad);
    
    Vector shift = new Vector(x, 0, z).normalize().multiply(offset);

    Location finalLoc = location.clone().add(shift);
    finalLoc.setDirection(location.getDirection()); // Set same facing as the Location.
    
    return finalLoc;
}

public enum Side {LEFT, RIGHT}```
blazing ocean
#

why is side uppercase

eternal oxide
#

enum

blazing ocean
#

Yea but the enum name

eternal oxide
#

ah yep, thats wrong

quaint mantle
#

How would I get the second value of the hashmap

eternal oxide
#

well, it could be argued it is a constant

blazing ocean
#

I disagree

eternal oxide
#

I disagree more vehemently 🙂

#

There, just for you

quaint mantle
#

tabs or spaces

eternal oxide
#

in what?

quaint mantle
#

there was one that uses less bytes

eternal oxide
#

yaml is always spaces

#

in code I always use tabs

quaint mantle
#

okey nice thanks

eternal oxide
#

others use spaces 😉

quaint mantle
#

I think in vscode im using spaces

eternal oxide
#

There is no definitive reply

#

I think most use spaces these days

#

tabs are a remnant from old type writer days

blazing ocean
#

Just use .editorconfig and your IDE will handle it on reformat

dense falcon
eternal oxide
#

that code will give you left or right. you choose

dense falcon
#

Oh okat thx.

#

Okay*

#

And how do I choose "offset"?

eternal oxide
#

yes, 1.0 is one block

dense falcon
#

Oh okay.

sterile flicker
#

Is it possible to display the entity's health above its head in this manner?

lost matrix
#

This option only applies to players

sterile flicker
pseudo hazel
#

text display

lost matrix
#

You can mount a text display on an entity and give it an offset

sterile flicker
pseudo hazel
#

yeah

#

add the text as a passenger to the entity

#

then it will move with the entity

sterile flicker
# pseudo hazel yeah

is it possible to make the health value in the textdisplay automatically updated?

pseudo hazel
#

not that I know, its just a piece of text

lunar wigeon
#

XDD

pseudo hazel
#

so you have to update it manually

lunar wigeon
#

XD

#

X

pseudo hazel
#

holy spam lol

sterile flicker
quaint mantle
#

Figured it out anyway

worthy yarrow
lunar wigeon
pseudo hazel
#

what about it

worthy yarrow
pseudo hazel
#

also something I would change is instead of player save their UUID this way it can still work if the player logs out depending on the usecase

#

as the player object is invalid when a player logs out or relogs

worthy yarrow
#

It's a messaging system so

#

iirc

pseudo hazel
#

so what

worthy yarrow
#

So you should handle people logging anyway

pseudo hazel
#

then it would make sense to use uuid even more

worthy yarrow
#

eh

#

player / uuid doesn't make much difference here

#

UUID is better practice however

pseudo hazel
#

oh yeah let me do something with the message I got from the player that has logged out

worthy yarrow
#

You wouldn't...

dense falcon
#

How may I spawn armor stands, with a transparency very low with these positions and add custom data, like "lores" for items:

                Location target_loc = target.getLocation();
                Location left = getSideLoc(target_loc, 1.0, SIDE.LEFT);
                Location right = getSideLoc(target_loc, 1.0, SIDE.RIGHT);
                Location front = getFrontLoc(target_loc, 1.0);
pseudo hazel
#

idk

#

idk what the goal is

worthy yarrow
#

They logged out so the replying is no longer valid which should be handled anyway

pseudo hazel
#

yeah but they might handle it like a queue

worthy yarrow
#

Based on their responses I don't think they know how to implement that

pseudo hazel
#

i.e. the message still gets sent but only received when the other player logs in

#

well its about the principle anyways

worthy yarrow
#

dude

pseudo hazel
#

but this is going nowhere

lost matrix
worthy yarrow
#

He barely knows java

pseudo hazel
#

then he shouldnt be making plugins

worthy yarrow
#

And for some reason he is so let us help

pseudo hazel
#

but I guess until they run into issues it doesnt really matter to change it to uuid

dense falcon
proud badge
#

i dont think thats possible in minecraft vanilla

#

unless you use chainmail armour or something

worthy yarrow
#

This is why text displays exist

lost matrix
#

Display entities have an opacity. But with actual armorstands this is impossible.

dense falcon
#

In fact I'm trying to make a cmd to test a player if he has a ff, and by spawning armorstands around him with more than 180° degrees to do in less than 0.25s. I was thinking of armorstands but would there be another more practical thing?

eternal oxide
#

ff?

dense falcon
#

Forcefield.

lost matrix
#

Armorstands are almost always ignored by hacks

valid basin
#

Does someone know in what version are EntityEffect and player#attack methods added to spigot api?

lost matrix
#

The proper way would be to send the player an entity packet, and check if the client sends an interaction for it back immediately.

dense falcon
#

Ah :(.

#

And how :>?

lost matrix
lost matrix
valid basin
#

and for which I can simply go with spigot api

slender elbow
lost matrix
umbral ridge
#

Hi smile

umbral ridge
#

LocationPositioner

#

getRightBlock, getLeftBlock, etc

near mason
#

spawn location is null?

public static MapConfig deserialize(Configuration config){
        double minY = config.getDouble("minimum y");
        Vector spawn = config.getVector("spawn location");
        return new MapConfig(minY, spawn);
    }
umbral ridge
#

"minimum y" is not a valid ath

#

Path

#

and other input strings

near mason
#

why?

#

because space?

umbral ridge
#

replace space with a dot

slender elbow
#

i mean, you can use spaces in paths, just, they'll be quoted in the yaml

umbral ridge
#

yes

slender elbow
#

but that isn't how you define a vector in yaml, that's just an array of ints

umbral ridge
#

Emily the helper

#

Emily im still waiting for updates on BetterJails

slender elbow
#

it's there i guess

#

i have something on my local git tree but no time

ocean peak
#

Hello, if you know, can I know how to teleport a minecraft player from the hub to the last position where it was in survival? , I would need for my minecraft server but I can’t find anything on the internet, Thanks

slender elbow
#

are you making a plugin?

near mason
#

i replaced it with "spawn location": [0, 100, 0] but it still returns null

slender elbow
#

because it's not a vector, so getVector won't find a vector

#

that's just an array of ints

ocean peak
slender elbow
#

vectors are annoying to write manually, like

==: !org.bukkit.util.Vector
x: 1.2
y: 3.4
z: 5.6
near mason
#

ok thank you

slender elbow
#

it's easier to just have it in your code config.set("whatever", new Vector(1, 2, 3))

wet breach
#

forget exactly where

#

and I think maybe bungee has a setting too

near mason
#

ok thank you i wiill parse it from int array

karmic falcon
#

hi, when i tp a player to another world does he lose his inventory, if i tp him back to the original world do his advancements/xp/stuff get saved?

sterile breach
#

inventory dont change with tp

karmic falcon
#

i read there is aconfig which allows each world saving its own inventory

#

or smthn

#

it is set to true by default

sterile breach
#

try and see, idk how inventory are saved but there's never a problem with inventory sync while you stay in the server (sync inventory between server its more difficult but its another history)

young knoll
#

They aren’t saved by default

#

You have some plugin like multiverse inventories for that

sterile breach
karmic falcon
#

so lets say im making a minigame that involves another world, whenever a player joins the minigame world id have to save his inventory/xp/health and whenever he leaves the game i load it back?

#

there isnt a way to do this without addons?

young knoll
#

Inventory is the same across all worlds by default

karmic falcon
#

so there is an option to disable this and make each world have its inventory

#

thats my question

young knoll
#

Not without a plugin

karmic falcon
#

alr thnx

pseudo hazel
#

unless by save you mean keep the player data

grim ice
#

BlockBreakEvent

Called when a block is broken by a player.

#

Isn't this kind of counter intuitive?

#

BlockBreakEvent sounds like it'd be for a general block break

#

not necessarily by a player

runic kraken
#

hey, I would like to ask if someone could help me with fixing my plugin (glitch)

lost matrix
#

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

runic kraken
#

I just can't send recordings here :/

lost matrix
#

Uhm

#

?img

undone axleBOT
#

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

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

slender elbow
lost matrix
#

I guess you mean that

pseudo hazel
runic kraken
lost matrix
#

Looks like you doing something in a scheduled task every 20 ticks. Is that an actual player?

pseudo hazel
#

what version

drowsy helm
#

You’re sending a spawn packet each time?

#

Should only really do that when it’s needed. Use a teleport packet

lost matrix
#

I dont understand the purpose of this code

runic kraken
#

:/

runic kraken
drowsy helm
#

Also using mapped and non mapped code

slender elbow
#

oh spigot doesn't have per-player send view distance

runic kraken
#

This method of mine works, but the problem is that the prostate glands rotate so much

runic kraken
lost matrix
#

The prostate glands

lost matrix
tame wolf
#

What

slender elbow
#

the prostate glands

#

rotate so much

grim ice
tame wolf
#

This has to be some sort of joke

grim ice
#

and why isn't there a block break event that works for every block break

blazing ocean
tardy delta
#

huh

foggy cave
#

If anyone here has used ACF (aikar commands) before, do you know if you can put subcommands in different classes?

foggy cave
#

How would I even go about doing it tho

blazing ocean
#

Just try declaring it as another command, just with the same @CommandAlias

sacred mountain
#

Hello slightly off-topic, is there a way to convert an item (the lore or however it would be displayed in-game) into an image

foggy cave
sacred mountain
#

Sort of similar to InteractiveChat, but it's not on spigot

#

It's a forge mod that i've been working on

#

Just one of those command generators online

blazing ocean
#

Just draw text on that background

exotic oriole
blazing ocean
lost matrix
#

lol

exotic oriole
blazing ocean
#

Holy fuck that is slow

lost matrix
#

Wait are those not cached? What is it doing so long?

tardy delta
#

🗿

blazing ocean
#

spiget guys when they learn caching

umbral ridge
#

braindead

blazing ocean
#

what

exotic oriole
#

like the last update is like 30-60 minutes old

#

but the servers are slow

blazing ocean
#

Bet they're doing some kind of web scraping

#

But just have some shitty regexes

#

Like that one cloudflare regex moment

exotic oriole
#

spigot dont have an API for this?

blazing ocean
#

Pretty sure they discourage using something like that

#

because they don't like robots accessing spigot 😂

white root
#

Does anyone know how I can find the vanilla game's enchanting logic?
e.g. what chance there is to get multiple enchantments at what level etc

chrome beacon
#

You can work through the code backwards. If you start by looking at the Enchantment table

#

see what methods it calls and check those

exotic oriole
brittle gate
#

Friend?, only the debug message is working, can you help? It doesn't give an error in the console

vapid thorn
#

there wouldnt happen to be an event api for when the vault block changes its state when a player is near it would there?

drifting bluff
#

when i run /pvp i get this error

https://pastes.dev/wc2xMTA1Cx


import com.sk89q.worldedit.world.World;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;

import com.sk89q.worldguard.protection.regions.RegionContainer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import work.constt.simpleCore.SimpleCore;
import org.bukkit.plugin.java.JavaPlugin;

import static org.bukkit.Bukkit.getServer;
import static org.bukkit.Bukkit.getWorld;

public class pvp implements CommandExecutor {
    private boolean a = true;
    RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
    World world = (World) getWorld("world");
    RegionManager regions = container.get(world);
    ProtectedRegion region = regions.getRegion("area");


    @Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
        if (a) {
            getServer().broadcastMessage("\n§8"+commandSender.getName()+" §fenabled pvp!");
            region.setFlag(Flags.PVP, StateFlag.State.ALLOW);
        } else {
            getServer().broadcastMessage("\n§8"+commandSender.getName()+" §fdisabled pvp!");
            region.setFlag(Flags.PVP, StateFlag.State.DENY);
        }
        a = !a;
        return true;
        }
    }

slender elbow
#

Cannot execute command 'pvp' in plugin SimpleCore v0.0.1 - plugin is disabled.

check the log during startup for errors during enabling

drifting bluff
slender elbow
drifting bluff
#

my pom.xml

#

plugin.yml

chrome beacon
#

Check for startup errors

drifting bluff
#

doesnt say its disabled

[17:11:30] [Server thread/INFO]: [WorldGuard] (world) TNT ignition is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world) Lighters are PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world) Lava fire is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world) Fire spread is UNRESTRICTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] Loaded configuration for world 'world'
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_nether) TNT ignition is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_nether) Lighters are PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_nether) Lava fire is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_nether) Fire spread is UNRESTRICTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] Loaded configuration for world 'world_nether'
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_the_end) TNT ignition is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_the_end) Lighters are PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_the_end) Lava fire is PERMITTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] (world_the_end) Fire spread is UNRESTRICTED.
[17:11:30] [Server thread/INFO]: [WorldGuard] Loaded configuration for world 'world_the_end'
[17:11:30] [Server thread/INFO]: [WorldGuard] Loading region data...
[17:11:31] [Server thread/INFO]: Running delayed init tasks```
chrome beacon
#

Just send the entire startup log

#

?paste

undone axleBOT
drifting bluff
slender elbow
#

hm, worldguard is enabling after your plugin

#

do a clean build of your plugin

drifting bluff
#

clean build?

slender elbow
#

mvn clean package

drifting bluff
#

rn i build it with build artifact and then build

slender elbow
#

no don't do that

#

use maven to build your plugin

drifting bluff
#

what one?

slender elbow
#

see the Maven tab on the right

#

that one you have selected presumably

drifting bluff
slender elbow
#

you're not gonna believe what i'm about to say

drifting bluff
#

ok? 😄

vapid thorn
#

xD

drifting bluff
#

lol

vapid thorn
#

:}

slender elbow
#

plugin is disabled

#

check logs for errors during startup lol

vapid thorn
#

^

#

LOL

slender elbow
#

you really gotta get in this troubleshooting mindset

humble tulip
vapid thorn
#

Emily isnt wrong issue is clearly in startup

humble tulip
#

is there api to register custom enchantments now?

slender elbow
#

no api

humble tulip
#

sucks

slender elbow
#

gotta do it through data packs

vapid thorn
#

no still have to do the fun stuff

#

or heh the same way night express does his for excellent enchants xD

slender elbow
#

at least there is a supported mechanism for custom enchantments, unlike before

humble tulip
#

yeah there'll be api at some point in the future

#

i hope

vapid thorn
#

actually, if you could make the custom enchants by name in a datapack, and such you could have a plugin handle the rest for the actual enchant. For the most part.

#

.<

#

but meh

river oracle
#

Quite the scary endeavor

drifting bluff
vapid thorn
#

:D

slender elbow
#

send the whole log

drifting bluff
slender elbow
#

oh

vapid thorn
#

...

slender elbow
#

you have load: STARTUP in your plugin.yml, don't you?

drifting bluff
#

??

vapid thorn
#

mmm

#

there it is

humble tulip
#

remove that

#

or change to POSTWORLD

#

your plugin loads before worldguard

slender elbow
#

yeah that's the issue;

your plugin enables before worlds load
worldguard enables after worlds load
you are trying to use worldguard when your plugin enables
worldguard is not yet enabled

if you have no reason to use load: STARTUP, remove it, otherwise if you do need it, there are other ways around it

muted otter
#

Hi, I have a question. I have a library project, and then a plugin that shades that library into its jar file. However, I have an issue. My library plugin also uses stuff from another library, which means that instead of only shading my library project into my plugin, I have to shade in my library project and this other dependency. Is there a way to make it so that in my library project, it automatically will shade this other dependency into the jar file if the plugin depends on this library? I am using gradle.

drifting bluff
#

and still doesnt work

muted otter
drifting bluff
#

its asking if my own plugin is up to date but it should be

muted otter
drifting bluff
#

hm

#

how do i fix that

muted otter
#

It is telling you what the error is

#

You cannot cast a CraftWorld to a worldedit world

blazing ocean
wicked sinew
#

Did you import the wrong .World

blazing ocean
#

Yea they probably did

#

Or something something getting worldedit world

wicked sinew
#

@drifting bluff code?

drifting bluff
#

import com.sk89q.worldedit.world.World;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;

import com.sk89q.worldguard.protection.regions.RegionContainer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import work.constt.simpleCore.SimpleCore;
import org.bukkit.plugin.java.JavaPlugin;

import static org.bukkit.Bukkit.getServer;
import static org.bukkit.Bukkit.getWorld;

public class pvp implements CommandExecutor {
    private boolean a = true;
    RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
    World world = (World) getWorld("world");
    RegionManager regions = container.get(world);
    ProtectedRegion region = regions.getRegion("area");


    @Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
        if (a) {
            getServer().broadcastMessage("\n§8"+commandSender.getName()+" §fenabled pvp!");
            region.setFlag(Flags.PVP, StateFlag.State.ALLOW);
        } else {
            getServer().broadcastMessage("\n§8"+commandSender.getName()+" §fdisabled pvp!");
            region.setFlag(Flags.PVP, StateFlag.State.DENY);
        }
        a = !a;
        return true;
        }
    }

slender elbow
#

you can't just cast a regular bukkit World to a worldedit World

#

see the BukkitAdapter class

wicked sinew
#

Is World supposed to be WorldEdit.world or Bukkit.World

#

Looking at the spelling of the word “world” just feels wrong

blazing ocean
#

what

wicked sinew
#

Just as I said 🤷‍♂️

umbral ridge
ornate mantle
#

is there a way to use private pathfinder goals in nms classes?

#

like i wanna make a custom nms entity based on the drowned mob

#

and i want its pathfinder goals with it

#

but theyre private

sly flint
#

anywone here?

blazing ocean
#

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

slender elbow
#

no, it's bedtime in europe, everyone's asleep

blazing ocean
#

it's 6:21pm silly

umbral ridge
#

i am sleeping

slender elbow
#

exactly

umbral ridge
#

im at work i cant answer

#

any questions

blazing ocean
#

sleeping at work GigaChad

slender elbow
#

are you at work?

river oracle
#

I'm at work

umbral ridge
#

yes

slender elbow
#

i thought you couldn't answer any questions

umbral ridge
#

NO

slender elbow
#

:trollface:

umbral ridge
sly flint
#

org.bukkit.command.CommandException: Unhandled exception executing command 'ss' in plugin MixelsSystem

river oracle
#

RIP

#

That sucks

blazing ocean
#

sucks to be you

sly flint
#

org.bukkit.command.CommandException: Unhandled exception executing command 'ss' in plugin MixelsSystem v2.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999) ~[paper-1.20.4.jar:git-Paper-436]
at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.4.jar:git-Paper-436]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-

blazing ocean
#

oh no!

sly flint
#

what

#

1

#

!

chrome beacon
#

a null pointer !

blazing ocean
#

surely it's a bug in paper

shadow night
umbral ridge
#

is that a question

blazing ocean
#

no

#

it's a statement

river oracle
umbral ridge
#

MixelsSystem 2.0

sly flint
#

i cant send file

umbral ridge
#

bug

river oracle
umbral ridge
#

:(

river oracle
#

Why you sending a file??

#

?paste

undone axleBOT
umbral ridge
#

no file no answer

copper coyote
#

Hey, i think this is the right place to ask, what would be the best way to implement a custom world format?

blazing ocean
#

uhh why

#

stop reinventing the wheel lol

shadow night
#

I literally was talking about making an own world format today

copper coyote
sly flint
copper coyote
#

the anvil format is not the best

sly flint
#

i paste it

shadow night
slender elbow
#

save the paste and send the link

river oracle
#

Send the link 💯

wary harness
#

I got this problem can some body help

#

when I try to compile jar

#

I get that error saying

#

cannot access io.lumine.mythic.core.mobs.ActiveMob

#

and dependancy is added to pom.xml

paper viper
#

Click External Libraries on your project menu and check if the library is there

#

maybe the library is there but the class name got changed between versions or smthing

river oracle
#

Looks as if you have none defined

wary harness
#

so nothing to add

wary harness
#

jsut to be sure

grave lion
#

"A non-stable dependency is a dependency which refers to or affects the global state, such as external service, file system, or a database.

However, there still are dependencies which are better represented using Singleton. They are ambient dependencies. Ambient dependencies are dependencies which span across multiple classes and often multiple layers. They act as cross-cutting concerns for your application."

onyx fjord
#

does anyone know if spigot is robot friendly? (as in my robot wont be blocked by the website)

#

im tryna make a util that will check resources for red flags

onyx fjord
#

hopefully i can do what i need with just api

alpine urchin
#

robot fwendly 🥺

#

is kacper a rwobot 🥺

#

@onyx fjord

#

🤣

onyx fjord
#

can we ban this guy?

#

you are clearly being offtopic

alpine urchin
#

it's a theoretical question, how can we confirm that you are not a robot?

#

spigot API is not sufficient, we might need packets for this dirty job

earnest girder
#

if I want to have a permanent armorstand hologram on my server, what is the best way to create it? not from inside the plugin?

onyx fjord
alpine urchin
earnest girder
#

what's that?

earnest girder
#

something other than an armor stand?

onyx fjord
#

armorstands were just a trick, now you can spawn actual holograms

earnest girder
#

oh shit

earnest girder
#

whats the class called?

onyx fjord
#

display entities are lighter on the server, and have more features

#

u can for example spawn display items

#

and scale display entities

onyx fjord
#

check subinterfaces

#

u can do text, blocks and items

slate siren
#

Guys guys

#

I need some help

#

I'm doing a filter

river oracle
#

Dope

slate siren
#

If the magic level of the item in the inventory is 1 and the magic level of the book in my hand is 1, I prevent that item from appearing in the gui.

#

But it's not working

river oracle
#

Damn okay

tardy delta
#

define not working mate

#

we supposed to read your thoughts

river oracle
#

Yes yes we are

alpine urchin
#

new favorite gif

tardy delta
#

another favorite

slate siren
#

val isSameLevelAsBooks = books.any { book ->
EnchantmentUtils.getStoredEnchantmentLevel(book, enchantment) == itemLevel
}

#

whats wrong

river oracle
#

Idk tbh

slate siren
#

mhmm

river oracle
#

With all that code you provided

#

And still haven't a clue

tardy delta
#

provide more context

river oracle
earnest girder
#

well my question about holograms still stands

#

where is the best place to create it?

#

like the first time the server boots up it wont exist so I need to create it

#

but I dont need to create a new one every time the server starts

tardy delta
river oracle
#

If you have all the locations predetermined at the start but why remove them on shutdown?

#

Then you don't need to Recreate them

strange kiln
#

Hi! Does anyone know about packets in 1.20.1? I need to change the nametag text with packets.

#

can i extract the nametag text out of this one? [b[id=16, serializer=net.minecraft.network.syncher.DataWatcherSerializer$1@4bd30626, value=0]]

runic kraken
#

hey, I have a question: is it possible to disable the "Player health indicators" mod that displays the opponent's hearts above the nickname? https://imgur.com/a/f3qwIz1

earnest girder
#

I only need it to create one if there isnt one already

#

so should I check if it exists, and create it if it doesnt?

river oracle
#

Sí senor

earnest girder
#

okay so if its a TextDisplay do I just check the area for entities and loop through them to see if its there?

river oracle
#

Sure

turbid tapir
#

Im running into some issues comparing Inventory objects.

In my GUI class that implements Listener to handle click events I have this constructor set up:

    private final Inventory inventory;

    public TestGUI() {
        this.inventory = Bukkit.createInventory(null, 27, "Test");
        setItems();
    }

However, after opening the GUI and clicking around the InventoryClick event handler always returns false:

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        System.out.println(event.getInventory() == inventory);
    }

What am I missing? How is this not the same reference? Should I write my own equals function and check them that way?

#

_ _
I found a lot of examples and they all use this or something similar, except it works for them. I also see a lot of people checking the name of the inventories, but that just looks bad to me from a programmer's perspective and wouldnt even work in my usecase.

chrome beacon
#

checking names is a real bad idea

#

It leads to a ton of exploits

turbid tapir
#

yeah thats what i thought, but a surprising amount of examples do it

chrome beacon
turbid tapir
#

It's only used in this class where the openGUI function is called when a certain block is right clicked.

    private final Map<String, TestGUI> guis = new HashMap<>();

    private void openGUI(String guiID, Player player) {
        TestGUI gui = guis.get(guiID);
        if (gui == null) {
            gui = new TestGUI();
            guis.put(guiID, gui);
        }
        gui.openInventory(player);
    }
chrome beacon
#

and where are you registering the listener

turbid tapir
#

In the OnEnable() in my main JavaPlugin class:

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new RightClickListener(), plugin);
        getServer().getPluginManager().registerEvents(new TestGUI(), plugin);
        this.saveDefaultConfig();
    }
chrome beacon
#

The listener is a different instance

#

That's why the == check isn't working

turbid tapir
#

So I should register them in the openGUI function above?

turbid tapir
earnest girder
#

how can I make a TextDisplay always point towards the player like a nametag on an armorstand?

tardy delta
#

its a method on a map which makes you write that method in one line

turbid tapir
slender elbow
#

it is in the case of inventories

turbid tapir
#

well i thought it'd be in this case

#

or same outcome at least 😅

torn badge
#

How are you opening it?

turbid tapir
#

and that calls this:

    public void openInventory(HumanEntity entity) {
        entity.openInventory(inventory);
    }
torn badge
#

In the EventHandler

turbid tapir
# chrome beacon The listener is a different instance

I'm not sure if this is what you meant, but I removed the registering from the onEnable function and changed the openGUI function to this, but unfortunately that doesn't change anything.

    private void openGUI(String guiID, Player player) {
        TestGUI gui = guis.get(guiID);
        if (gui == null) {
            gui = new TestGUI();
            plugin.getServer().getPluginManager().registerEvents(gui, plugin);
            guis.put(guiID, gui);
        }
        gui.openInventory(player);
    }
torn badge
#

Can you show your entire RightClickListener pls

#

And why do you even need to register the GUI itself

turbid tapir
turbid tapir
torn badge
#

Yeah but you are creating a new instance when registering it

#

So it will never be the same reference

#

TradeGUI shouldn't be a listener, have only RightClickListener and loop through your cached GUIs in there

turbid tapir
# torn badge Can you show your entire RightClickListener pls
public class TestListener implements Listener {

    private final Map<String, TestGUI> guis = new HashMap<>();

    @EventHandler
    public void onBlockClick(PlayerInteractEvent event) {
        if (event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
        Block clickedBlock = event.getClickedBlock();
        if (clickedBlock == null) return;
        Location clickedLocation = clickedBlock.getLocation();
        if (!isRegisteredLocation(clickedLocation)) return;

        Player player = event.getPlayer();
        String guiID = String.format("%s-%d,%d,%d", player.getUniqueId(), clickedLocation.getBlockX(), clickedLocation.getBlockY(), clickedLocation.getBlockZ());
        openGUI(guiID, player);
    }

    private void openGUI(String guiID, Player player) {
        TestGUI gui = guis.get(guiID);
        if (gui == null) {
            gui = new TestGUI();
            plugin.getServer().getPluginManager().registerEvents(gui, plugin);
            guis.put(guiID, gui);
        }
        gui.openInventory(player);
    }
...
torn badge
#

Don't register TestGUI

#

And don't have it be a listener

#

Then pull your guis field up into another class, that passes that reference to both TestListener and RightClickListener

remote swallow
#

?gui

turbid tapir
#

I've only been messing around with Spigot for about a week nwo sorry 😄

earnest girder
#

is there no way to make TextDisplays point toward the player like armor stand nametags do automatically?

chrome beacon
#

That's an option

earnest girder
#

awesome found it

#

didnt realize that was what billboard did

runic kraken
#

hey, I have a question: is it possible to disable the "Player health indicators" mod that displays the opponent's hearts above the nickname? https://imgur.com/a/f3qwIz1

turbid tapir
hidden spade
#

Is there any way to manipulate the players camera to force them into an f3 type view via a plugin?

hidden spade
torn badge
torn badge
hidden spade
worthy yarrow
#

Can you force a player as a passenger on an armor stand?

worthy yarrow
hidden spade
#

but thank you for the idea 🙏🏼

worthy yarrow
#

My only concern is that I'm not sure how you'd still let the player move around

#

whether it be an armor stand or another entity

hidden spade
#

then just mirroring the packets from the player to the fake player

worthy yarrow
#

What is a fake player btw

#

Like an npc using citizens kinda deal?

hidden spade
#

kinda yeah

#

a shell of a player that doesnt actually have a real player

worthy yarrow
#

Right yeah

#

basically display entity as a player

hidden spade
#

hacked clients use it quite often

hidden spade
worthy yarrow
#

I'm not too sure on how people do npcs but yeah I think that's your best bet

hidden spade
#

its something like this

public void spawnFor(Player p) {
        PlayerConnection connection = ((CraftPlayer) p).getHandle().playerConnection;

        // add player in player list for player
        connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, # EntityPlayer instance));
        // make player spawn in world
        connection.sendPacket(new PacketPlayOutNamedEntitySpawn(# EntityPlayer instance));
        // change head rotation
        connection.sendPacket(new PacketPlayOutEntityHeadRotation(this, (byte) ((loc.getYaw() * 256f) / 360f)));
        // now remove player from tab list
        connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, # EntityPlayer instance));
    }
worthy yarrow
#

I feel like you'd do two entities, one for the player model, and one for the like f3 view kinda thing

hidden spade
worthy yarrow
#

Yeah but I'm just figuring how you'd actually put the player here

hidden spade
#

wdym?

worthy yarrow
#

Just woke up lol I meant put

hidden spade
#

i guess you would just force the player into the sky using packets

#

may cause some issues with ac's though not sure

worthy yarrow
#

Well that's why i'm suggesting a second entity, passenger the player to this entity and maybe some magic to relay movements to both the passenger entity and the fake player

hidden spade
#

ah

#

yeah this could work also

worthy yarrow
#

less packet work imo is better

hidden spade
#

well the minecraft client is recieving thousands of packets a second same with the server whats another thousand more xD

foggy cave
#

if i wanted to make custom chat formatting would i just cancel the asyncchatevent and then Bukkit.broadcast the new message?

sacred mountain
#

Anyone have an API that can convert an item's tooltip to a png or similar? Trying to create something for forge, so if spigot users have something i can start off with

worthy yarrow
hidden spade
#

its only an idea im having for a plugin im working on would be cool if i got it to work

#

but im still trying to figure out how the "new" display entities work

#

so i can make custom crops/blocks

worthy yarrow
#

They're quite easy actually

#

This is a text display example, rather for displaying gradient formatted text but still

hidden spade
worthy yarrow
#

ew bounding boxes

hidden spade
#

because in a normal block you would use a barrier no?

#

but with crops you can walk through them and trample them and all

#

but then i still have to be able to break them

hidden spade
worthy yarrow
#

Well we do have sendBlockChange / related methods in the api now

hidden spade
#

any chance you would have a simiple enough example on a custom crop plugin xD

#

all the ones ive looked at are like oraxen

worthy yarrow
#

Unfortunately no, never made one, but I feel there's probably some open source one?

hidden spade
#

which is a cool plugin and all but the codebase is way to messy to learn anything from

hidden spade
worthy yarrow
#

I feel like it's the same concept

#

I mean most things are handled in the crops pdc anyway

hidden spade
worthy yarrow
#

I'm no help there either lol, messed around with bounding boxes once and uh not doing that again for a while kek

hidden spade
#

they arnt that bad in mods

worthy yarrow
#

I wonder if @floral drum knows

hidden spade
#

i used to be a hacked client developer so i used them alot for prediction algos for best placement of crystals during ca

worthy yarrow
#

Well minecraft trusts the client too much anyway so I feel at the heart of most hacked clients its just some packet manipulation no?

hidden spade
#

sometimes

#

but when it comes to ac's thats where it gets fun

#

some ac's have weird work arounds that arnt even possible in vanilla minecraft properly

#

we made an elytra fly module that using a flaw in the ac we could acc at 720kmh / about 200 blocks a second before the ac reset the player and then just do it all over again

worthy yarrow
#

What in the fuck

hidden spade
#

literally

#

all i did was modify some funky friction values

worthy yarrow
#

thats like

#

Setting the player speed attribute to 0.001

hidden spade
#
@Override
    public void onUpdate() {
        if (timer.passed(1000)) {
            prevPosX = mc.player.prevPosX;
            prevPosZ = mc.player.prevPosZ;
        }

        if (timerTakeoff.isEnabled() && !tookOff && (mc.player.isElytraFlying() || takeOffTimer.passed(3000) || mc.player.onGround) && checkTime) {
            mc.timer.tickLength = 50f;
            tookOff = true;
            checkTime = false;
        }

        if (timerTakeoff.isEnabled() && mc.player.motionY < 0 && !tookOff) {
            mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_FALL_FLYING));
            mc.timer.tickLength = 50f / timerSpeed.getValue().floatValue();
            checkTime = true;
        }

        if (!mc.world.isBlockLoaded(new BlockPos(mc.player.posX + mc.player.motionX, mc.player.posY, mc.player.posZ + mc.player.motionZ), false)) {
            mc.player.motionX = 0;
            mc.player.motionZ = 0;
        }

        if (mc.player.moveForward > 0.0f) {
            ticks++;
            if (ticks % 4 == 0 && ticks % 16 != 0) {
                fricLiv += (step.getValue().floatValue() / 100f);
                fricMove += (step.getValue().floatValue() / 100f);
            }
        } else {
            ticks = 0;
        }

        mc.gameSettings.gammaSetting = 1000f;
    }
worthy yarrow
#

I did this once thinking the lower value slowed it down

hidden spade
#

thats a code snippit of how i did it

worthy yarrow
#

That's kinda cursed lol

hidden spade
#

u think thats cursed?

private static final float MOVE_FRICTION = 4.02f;
private static final float LIVING_UPDATE_FRICTION = 3.170326f;
#

these where pretty much the exact values you had to use to the point

#

otherwise it wouldnt work

worthy yarrow
#

How did you find these values is my question lol

hidden spade
#

alot of redbull cans

worthy yarrow
#

fair enough kek

hidden spade
#

kinda just messed around enough that it started working

#

and cuz you have hotswapping in ides

#

i would just change it hotswap class try again

dense falcon
#

if I want to import file with the data path like read a file and I send into the function to read the file "fire.txt", where do I have to place my file once my plugin is builded and in my plugins folder?

worthy yarrow
#

in the plugin folder

dense falcon
#

When .jar files?

worthy yarrow
#

Or make another folder that it goes inside

hidden spade
worthy yarrow
#

.saveConfig or other method automatically creates the data folder btw

dense falcon
#

Well I am trying to link firebase and spigot and... I placed the firebase.json file in plugins folder, the folder of my plugin and others place and nothing...

worthy yarrow
#

uh

#

I'd need a lot more context

river oracle
#

@blazing ocean do you know if there is a way to get static extension functions in kotlin e.g. SomeJavaClass.thing() vs instance.thing()

blazing ocean
#

static extension functiond don't exist sadly

foggy cave
#

top level functions

river oracle
blazing ocean
strange kiln
#

Could anyone help me with this? b[id=2, serializer=net.minecraft.network.syncher.DataWatcherSerializer$1@2ed6d7a1, value=Optional[empty[siblings=[literal{Weak!}[style={color=red,bold,!italic,!underlined,!strikethrough,!obfuscated}]]]]] im receiving packets in 1.20 and trying to modify the nametag inside the packet so how could i edit this and send it back?

hidden spade
river oracle
blazing ocean
#

Pretty sure he meant adding static functions

river oracle
#

that would work if it were extending kotlin

dense falcon
# worthy yarrow I'd need a lot more context
FileInputStream serviceAccount =
new FileInputStream("firebase.json");

FirebaseOptions options = new FirebaseOptions.Builder()
  .setCredentials(GoogleCredentials.fromStream(serviceAccount))
  .setDatabaseUrl("url of my db")
  .build();

FirebaseApp.initializeApp(options);
``` This is my code, I put firebase.json into plugins folder in my server files and... getting an error (I did a try catch).
hidden spade
river oracle
#

if i had a custom CB instance I'd just add the methods myself :P

hidden spade
#

true xD

#

my brain fried from trying to understand spigot fuckery for too long

dense falcon
#

Saying that it does not find my file.

worthy yarrow
#

Could you send us the error?

#

preferably in a

#

?paste

undone axleBOT
chrome beacon
#

Probably need to be in the server root if you only specify file name like that

#

You should tell it to look in your plugins data folder

worthy yarrow
#

^

worthy yarrow
hidden spade
#

What even is it that gets call after the player loads in?

worthy yarrow
#

Do you mean protocol?

chrome beacon
#

PlayerJoinEvent?

worthy yarrow
#

yeah or api

dense falcon
hidden spade
chrome beacon
#

Define loaded

hidden spade
#

uhh you can play?

chrome beacon
#

._.

hidden spade
#

on join happens during the connecting bit and the player loads after that event have been called

worthy yarrow
hidden spade
chrome beacon
#

Let's try this again, what are you doing

dense falcon
# worthy yarrow ```[22:44:08 WARN]: at fr.program.neoworld.Database.FirebaseManager.initiali...
package fr.program.neoworld.Database;

import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import fr.program.neoworld.Main;

import java.io.*;

public class FirebaseManager {
    public static void  initialize(Main NeoWorldPlugin) {
        try {
            FileInputStream  serviceAccount = new FileInputStream("firebase.json");

            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .setDatabaseUrl("my urlF")
                    .build();

            FirebaseApp.initializeApp(options);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
runic kraken
worthy yarrow
runic kraken
hidden spade
worthy yarrow
#

You've got to define where your file function is actually going to look, ie: your plugin's data folder

chrome beacon
young knoll
dense falcon
#

It's server folder.

torn badge
hidden spade
# hidden spade So I have a manager that applies a shader to the player during a certain effect,...
@EventHandler
    public void onPlayerJoinEvent(PlayerJoinEvent event) {
        PlayerModel playerModel = this.plugin.getPlayerManager().getPlayerModel(event.getPlayer(), event.getPlayer().getUniqueId());
        Player player = event.getPlayer();


        System.out.println("Checking if player is tripping on starbrew");
}
[21:47:16] [Server thread/INFO]: Checking if player is tripping on starbrew
[21:47:16] [Server thread/INFO]: Appai joined the game
[21:47:16] [Server thread/INFO]: Appai[/127.0.0.1:62803] logged in with entity id 319 at ([world]33.40283129165808, 71.0, -32.9072558058955)
runic kraken
chrome beacon
torn badge
#

Packages? Checkout ProtocolLib and modify outgoing packets

chrome beacon
#

From what you're trying to do you probably want to know when the resourcepack has been applied

#

Not when they have joined

chrome beacon
#

Could you share it

#

?paste

undone axleBOT
dense falcon
# worthy yarrow You've got to define where your file function is actually going to look, ie: you...

Send the full path to firebase.json but now getting error :(.

[22:51:48 ERROR]: com/google/firebase/FirebaseOptions$Builder initializing NeoWorld v1.0 (Is it up to date?)
java.lang.NoClassDefFoundError: com/google/firebase/FirebaseOptions$Builder
    at fr.program.neoworld.Database.FirebaseManager.initialize(FirebaseManager.java:15) ~[?:?]
    at fr.program.neoworld.Main.onLoad(Main.java:57) ~[?:?]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:296) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:744) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.Bukkit.reload(Bukkit.java:534) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:646) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:353) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:317) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]
Caused by: java.lang.ClassNotFoundException: com.google.firebase.FirebaseOptions$Builder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:1.8.0_422]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_422]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_422]
    ... 14 more
chrome beacon
chrome beacon
#

?

dense falcon
#

Did not understand.

chrome beacon
#

The firebase code is missing at runtime

#

Code that doesn't exist cannot run

#

So you have an error

dense falcon
#

Yes and? ```gradle
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '8.1.0'
}

group = 'fr.program'
version = '1.0'

repositories {
mavenCentral()
mavenLocal()
}

dependencies {
compileOnly 'org.spigotmc:spigot:1.8-R0.1-SNAPSHOT'
implementation 'com.google.firebase:firebase-admin:6.11.0'
implementation 'com.google.guava:guava:32.0.0-android'
}

shadowJar {
archiveClassifier.set('')
mergeServiceFiles()
dependencies {
exclude(dependency('com.google.guava:guava'))
}
manifest {
attributes 'Main-Class': 'fr.program.neoworld.Main'
}
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
compileJava.options.encoding = 'UTF-8'
setLibsDirName("../server/plugins")

#

How I put it into shadow jar then?

chrome beacon
#

You should use the goooler fork of shadow

dense falcon
#

??

chrome beacon
#

John has stopped maintaining his version

#

As for how to shade they have a wiki

dense falcon
#

And what's the name?

chrome beacon
slender elbow
#

io.github.goooler.shadow

#

VuePress

tardy delta
#

Files.newInputStream(plugin.getDataFolder().toPath().resolve("firebase.json"))

slender elbow
#

Indeed

river oracle
#

but there is literally no other version 8.1.8 posted

slender elbow
#

huh

river oracle
#

I mean the new version moved under the repo posted above but they haven't updated it properly since 2023

acoustic pendant
#

Hey, So i have a code that replenish the crops you break, however this is consuming a lot:

#

Should i use nms to avoid this or is there other way?

slender elbow
acoustic pendant
river oracle
acoustic pendant
#

(Bukkit methods)

slender elbow
#

there was some open issue i cba to look up

#

about moving stuff

river oracle
#

ah

remote swallow
slender elbow
dense falcon
# chrome beacon https://gradleup.com/shadow/
plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '8.1.1'
}

group = 'fr.program'
version = '1.0'

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    compileOnly 'org.spigotmc:spigot:1.8-R0.1-SNAPSHOT'
    implementation 'com.google.firebase:firebase-admin:9.3.0'
    implementation 'com.google.guava:guava:32.0.0-android'
}

shadowJar {
    archiveBaseName.set('NeoWorld')
    archiveClassifier.set('all')
    mergeServiceFiles()
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
compileJava.options.encoding = 'UTF-8'
setLibsDirName("../server/plugins")
#

And getting this error:

#
[23:09:18 ERROR]: sealing violation: package com.google.common.base is sealed initializing NeoWorld v1.0 (Is it up to date?)
java.lang.SecurityException: sealing violation: package com.google.common.base is sealed
    at java.net.URLClassLoader.getAndVerifyPackage(URLClassLoader.java:405) ~[?:1.8.0_422]
    at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:425) ~[?:1.8.0_422]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:457) ~[?:1.8.0_422]
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_422]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_422]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_422]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_422]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_422]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:195) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:97) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_422]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_422]
    at com.google.auth.oauth2.ServiceAccountCredentials.<init>(ServiceAccountCredentials.java:134) ~[?:?]
    at com.google.auth.oauth2.ServiceAccountCredentials.fromPkcs8(ServiceAccountCredentials.java:439) ~[?:?]
    at com.google.auth.oauth2.ServiceAccountCredentials.fromJson(ServiceAccountCredentials.java:199) ~[?:?]
    at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:200) ~[?:?]
    at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:166) ~[?:?]
    at fr.program.neoworld.Database.FirebaseManager.initialize(FirebaseManager.java:17) ~[?:?]
    at fr.program.neoworld.Main.onLoad(Main.java:57) ~[?:?]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:296) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:744) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.Bukkit.reload(Bukkit.java:534) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:646) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:353) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:317) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]
tardy delta
#

looks like youll have to open it

#

theres a jvm flag --add-opens or smth

#

or is sealed smth else

slender elbow
#

you are shading guava

tardy delta
#

🗿

slender elbow
#

either don't do that or relocate it

dense falcon
#

Removed an still not :(.

tardy delta
#

me looking at the last msg again without context

slender elbow
#

surely you must've gotten a different error

dense falcon
#

[23:12:31 ERROR]: sealing violation: package com.google.common.base is sealed initializing NeoWorld v1.0 (Is it up to date?)
java.lang.SecurityException: sealing violation: package com.google.common.base is sealed
at java.net.URLClassLoader.getAndVerifyPackage(URLClassLoader.java:405) ~[?:1.8.0_422]
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:425) ~[?:1.8.0_422]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:457) ~[?:1.8.0_422]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_422]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_422]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_422]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_422]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_422]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:195) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:97) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_422]
at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_422]
at com.google.auth.oauth2.ServiceAccountCredentials.<init>(ServiceAccountCredentials.java:134) ~[?:?]
at com.google.auth.oauth2.ServiceAccountCredentials.fromPkcs8(ServiceAccountCredentials.java:439) ~[?:?]
at com.google.auth.oauth2.ServiceAccountCredentials.fromJson(ServiceAccountCredentials.java:199) ~[?:?]
at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:200) ~[?:?]
at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:166) ~[?:?]
at fr.program.neoworld.Database.FirebaseManager.initialize(FirebaseManager.java:17) ~[?:?]
at fr.program.neoworld.Main.onLoad(Main.java:57) ~[?:?]
at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:296) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:152) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]

lost matrix
dense falcon
#

Wdym?

slender elbow
#

you are still shading guava

#

pepestare

lost matrix
#

The package com.google.common.base is sealed. So if you load it on the classpath twice, you will get a sealing violation

dense falcon
# slender elbow you are still shading guava

No?

plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '8.1.1'
}

group = 'fr.program'
version = '1.0'

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    compileOnly 'org.spigotmc:spigot:1.8-R0.1-SNAPSHOT'
    implementation 'com.google.firebase:firebase-admin:9.3.0'
}

shadowJar {
    archiveBaseName.set('NeoWorld')
    mergeServiceFiles()
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
compileJava.options.encoding = 'UTF-8'
setLibsDirName("../server/plugins")
slender elbow
#

maybe it's a transitive dependency from firebase

#

just relocate it

worthy yarrow
#

Does exception.GetMessage return the same thing as exception.printStackTrace?

slender elbow
#

no

dense falcon
sacred mountain
# hidden spade wdym?

write whatever tooltip minecraft displays when you hover over an item into a bufferedimage or similar, then output it so you can send your items as an image in discord or wherever you want

slender elbow
#

printStackTrace prints the whole stack trace, getMessage only returns the exception message, passed to the constructor

worthy yarrow
#

Ah

#

ty

hidden spade
sacred mountain
hidden spade
#

yep

hidden spade
# sacred mountain ah

would be better off making like a api that you can send data to to render an image with

dense falcon
# slender elbow just relocate it
shadowJar {
    archiveBaseName.set('NeoWorld')
    mergeServiceFiles()
    dependencies {
        include(dependency("com.google.guava:guava:"))
    }
}
``` with adding guava I am getting this error no but just it's due to deprecated function no?
[23:18:58 ERROR]: com/google/firebase/FirebaseOptions$Builder initializing NeoWorld v1.0 (Is it up to date?)
java.lang.NoClassDefFoundError: com/google/firebase/FirebaseOptions$Builder
    at fr.program.neoworld.Database.FirebaseManager.initialize(FirebaseManager.java:14) ~[?:?]
    at fr.program.neoworld.Main.onLoad(Main.java:57) ~[?:?]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:296) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:744) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.Bukkit.reload(Bukkit.java:534) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:646) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:353) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:317) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]
Caused by: java.lang.ClassNotFoundException: com.google.firebase.FirebaseOptions$Builder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:1.8.0_422]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.8.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_422]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_422]
    ... 14 more
[
sacred mountain
#

it was more me trying to see if i can like capture the way minecraft does it in the first place, and instead of rendering it onto the screen render it into some other place that i can do stuff with

#

this has exactly what i want, except it's for fabric

#

and i can't make heads or tails of some of the methods

slender elbow
# dense falcon ```gradle shadowJar { archiveBaseName.set('NeoWorld') mergeServiceFiles(...

that has nothing to do with deprecated functions
i don't really feel like solving the whole issue for you; the problem is that firebase needs (a modern version of) guava, 1.8 has an ancient version of guava, so you need to shade guava, but the server gets mad, so you need to relocate it, see https://gradleup.com/shadow/configuration/relocation/ you'd relocate guava from com.google.common to your.funny.package.google.common or something idk

sacred mountain
#

I'm using forge if that helps

slender elbow
#

you'd also want to relocate firebase

sacred mountain
#

yes a bit different from spigot but, same principle

#

fairly sure there wouldnt be much difference i guess

lost matrix
shy zinc
#

Hi, personally since the change to java 21 in spigot java development ive had some troubles. One of them is the way of sending action bars. Can anyone enlighten me on how to do that? (Ive looked on google)

lost matrix
#

The entire core principle is fundamentally different.

shy zinc
#

Idk why, would like to know why tho. But i cant access the net.md_5.bungee classes in 1.20.6 spigot. Thats the only change ive done, change the spigot version,

shy zinc
eternal oxide
#

update Intelij

shy zinc
#

How? - I mean, ive already heard that tip, so i reinstalled intelij 3 days ago

eternal oxide
#

No clue I don;t use it.

shy zinc
#

Okay, thanks anyway.

eternal oxide
#

I just know Ij has issues since 1.20.6 if its not fully upto date

slender elbow
#

install JetBrains Toolbox, it'll make it a click to update

shy zinc
shy zinc
tardy delta
#

meanwhile me using the eap version and having >3 internal crashes a day

sacred mountain
eternal oxide
#

Using Eclipse, zero crashes per week 😉

sacred mountain
#

The majority of the problem isn't to do with the version

#

i could even do this standalone, i would just need an itemstack object or similar

lost matrix
sacred mountain
#

not really, it's forge mainly. I just know some people here have quite good general knowledge in the minecraft field that's all

#

my google searches are going in circles

lost matrix
#

Then how would you "convert a spigot ItemStack"? You mean at runtime?

sacred mountain
#

a more generalized question would be, what's the best way to convert a list of strings (with formatting) to a rendered tooltip

this is how minecraft displays it, idk if it's better to create my own image from scratch or somehow extract this?

#

so this is just an example with a title, enchantments and lore

#

basically just anything that's displayed in the lore

lost matrix
#

Just look at how the client renders the tooltip and copy a bunch from it.
Then throw it in your own renderer.

#

Problem is that there are now 2 ways of hogging the render pipeline.

#

But you are far better off asking at the forge discord for that.

sacred mountain
lost matrix
#

1.19 i think

sacred mountain
#

currently working in 1.12 :')

#

compatibility issues

#

at least there wont be a problem there

#

i'll go ask in the forge discord

#

thanks though

earnest girder
#

If I know the location of a TextDisplay entity, what would be the best method to get it?

river oracle
#

idk if there is a better way usually I do Location#getNearbyEntities(location, 0, 0, 0, (e) -> e instanceof TextDisplay).findFirst()

slender elbow
#

why are you storing the location but not the uuid?

earnest girder
#

okay I'll see if that works better for me

this was the code I was using:

    public static TextDisplay getDisplay(Block block, double radius) {
        List<Entity> entitiesFullyWithinBlock = new ArrayList<>();
        World world = block.getWorld();
        int x = block.getX();
        int y = block.getY();
        int z = block.getZ();

        BoundingBox blockBoundingBox = new BoundingBox(x - radius, y - radius, z - radius, x + 1 + radius, y + 1 + radius, z + 1 + radius);

        for(Entity e: world.getNearbyEntities(blockBoundingBox)) {
            BoundingBox entityBoundingBox = e.getBoundingBox();
            if(blockBoundingBox.contains(entityBoundingBox)) {
                entitiesFullyWithinBlock.add(e);
            }
        }

        for(Entity e: entitiesFullyWithinBlock) {
            if(e.getType().equals(EntityType.TEXT_DISPLAY)) {
                return (TextDisplay) e;
            }
        }

        return null;
    }
earnest girder
eternal oxide
#

you can;t interact with a Display

earnest girder
#

player clicks a block and I check for a TextDisplay there

shy zinc
river oracle
#

make sure you're on java 21 :3

slender elbow
#

how are you depending on spigot?

young knoll
#

Dis why you attach an interaction entity to the display

slender elbow
#

inb4 bukkit as a transitive dep

shy zinc
young knoll
#

If you want interaction

eternal oxide
#

then just put the UUID of the display in the Interaction entity pdc

shy zinc
slender elbow
#

share your pom

#

?paste

undone axleBOT
young knoll
eternal oxide
#

much better idea

slender elbow
shy zinc
#

I'll try, thanks :)

#

The import still doesnt work - everything else work perfect. But the all the net.md_5 classes seems to not being initialized at all

eternal oxide
#

are you running maven to build or somethign like artifacts or export?

shy zinc
#

Just maven as far as i know.

eternal oxide
#

tell us what you do to build

shy zinc
#

right side clicking lifecycle -> package

#

so in maven

eternal oxide
#

correct

shy zinc
#

yes thx, but its the import itself thats wrong it cant even work in the code

slender elbow
#

what intellij version are you actually running? somewhere in Help -> About

eternal oxide
#

using InteliJ?

shy zinc
#

IntelliJ IDEA 2024.1.5 (Community Edition)
Build #IC-241.18968.26, built on August 4, 2024
Runtime version: 17.0.11+1-b1207.30 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry:
ide.balloon.shadow.size=0
ide.new.editor.tabs.vertical.borders=true
ide.animate.toolwindows=true
ide.editor.tab.selection.animation=true
Non-Bundled Plugins:
com.chrisrm.idea.MaterialThemeUI (9.3.1)
Kotlin: 241.18968.26-IJ

reinstalled it as you said in the toolbox :P

slender elbow
#

so that's not the matter

shy zinc
#

you think its wierd?

slender elbow
#

oh

eternal oxide
#

try refreshing maven in IJ

slender elbow
#

what is the jdk configured in intellij? project settings, jdk/sdk

shy zinc
eternal oxide
#

nope

shy zinc
#

SDK: 21 oracle OpenJDK version 21.0.4

eternal oxide
#

do you really need to depend on spigot? and not just the API?

slender elbow
#

oh, didn't spot that one, also not using the specialsource plugin if that's the case

eternal oxide
#

also, move teh spigot dependency up to the top so nothign else is getting priority

#

some plugins/libs accidentally include Bukkit dependencies

slender elbow
#

yeah you should also check your dependency tree, mvn tree:dependencies (i think?), see that nothing's adding bukkit

rare rain
shy zinc
shy zinc
uncut grove
#

Hey, I am trying to use this:

    public static void spawnNpc(Player player, double x, double y, double z, float yaw, float pitch) {
        CraftPlayer craftPlayer = (CraftPlayer) player;
        MinecraftServer server = craftPlayer.getHandle().getServer();
        ServerLevel level = craftPlayer.getHandle().serverLevel();
        ServerPlayer npc = new ServerPlayer(server, level, new GameProfile(UUID.randomUUID(), "Test"), ClientInformation.createDefault());
        npc.absMoveTo(x,y,z,yaw,pitch);
        ServerEntity npcServerEntity = new ServerEntity(npc.serverLevel(), npc, 0, false, packet -> {
        }, Set.of());
        ServerGamePacketListenerImpl ps = craftPlayer.getHandle().connection;
        ps.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, npc));
        ps.send(new ClientboundAddEntityPacket(npc, npcServerEntity));
    }

for spawning a player like npc. But every time I execute it, i got this:

Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.server.network.ServerGamePacketListenerImpl.latency()" because "player.connection" is null

does anyone knows a solution? MC Version 1.21

~ @uncut grove

uncut grove
eternal oxide
#

?paste your pom

undone axleBOT
uncut grove
shy zinc
river oracle
eternal oxide
#

You did not remap

blazing ocean
#

that's not what they're doing

#

they're sending a packet to a player

eternal oxide
#

?nms

river oracle
#

pretty sure they did remap not remapping ends up with a ClassDefNotFoundError

#

I don't think I've ever seen an NPE

eternal oxide
#

look at their pom. no remap

river oracle
#

lucky coincidence ig

uncut grove
river oracle
#

how are you building 👇

eternal oxide
#

your remap is wrong. you are depending on 1.21 but yoru remap is tryign to do 1.20.4 (in places)_

eternal oxide
#

show the error and exact code pointing out the line of the error

uncut grove
shy zinc
#

I fkn hate spigot and its new 1.20.6 java 21

river oracle
#

blame mojang

ivory sleet
river oracle
shy zinc
river oracle
#

@shy zinc have you invalidated your IntelliJ caches sometimes it holds onto broken things

shy zinc
#

May i ask how, like just clear my cache?

river oracle
#

File > Invalidate Caches > Click all of the checkboxes

shy zinc
#

Thanks mate :)

river oracle
eternal oxide
#

nope, best to hissy-fit and throw toys out the pram

shy zinc
#

tried to invalidate caches didnt work..

#

its so wierd, cause its only the net.md_5 classes everyting else in spigot works

eternal oxide
#

did you build spigot using buildtools?

acoustic pendant
#

To download nms should i mark this option?

remote swallow
#

yes

acoustic pendant
#

Ok thanks

acoustic pendant
# remote swallow yes

and to give multiple version compatibily should I put all the versions in the dependecies section in maven?

#

I've looking for some example, but didn't found anything

remote swallow
#

no you would have to do modules

acoustic pendant
#

But how do I get the imports?

acoustic pendant
#

thanks

ivory sleet
#

or did alex put one?

#

?mvn-multiversion

ivory sleet
#

wait frick

#

?mvn-multiversion

ivory sleet
#

perfect

eternal oxide
#

I'd do ?modules

ivory sleet
#

well I'd hope there been one for gradle

#

but else myea maybe modules would be more suitable

dire geyser
#

Hello, I'm new at creating plugins, I created the entire functions of commands, now I want to know how can I make autocompletion for subcommand, example: /example version

river oracle
#

TabCompleter interface

dire geyser
#

do i need to create a list with all the subcommands right?

ivory sleet
#

there's this utility method to complete a partial input token

hard socket
#

how can I remove this?

grim hound
ivory sleet
#

i edited it :}

grim hound
#

makes sense

ivory sleet
#

yea lol

worldly ingot
acoustic pendant
#

Hey, i'm trying to download nms and getting this error: java.lang.OutOfMemoryError: Java heap space
I'm giving 1g of ram, why could this happen

#

?

ivory sleet
#

I assume it may be due to the lack of memory the JVM is given

river oracle
#

1g probably isn't enough

acoustic pendant
#

But when i run it with 2g I can't even run it xd

#

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

eternal oxide
#

how much ACTUAL memory does your system have?

river oracle
#

bro is strapped for ram

acoustic pendant
eternal oxide
#

how much is in use already?

acoustic pendant
#

and 65% free

ivory sleet
#

🤨

acoustic pendant
#

11.5 in use

eternal oxide
#

reboot

acoustic pendant
#

I'll do that later, thanks

shy zinc
ivory sleet
#

im not sure, but u might be able to circumvent this w 1g by using serial gc

#

mind u might

eternal oxide
shy zinc
#

everyone of them, i cant even use the ChatColor.of() method for hex colors

#

its all md5 stuff

young knoll
#

Calling it now

#

They have 32bit java

river oracle
eternal oxide
#

Your pom says java 21 but your IDE says its using 17

shy zinc
#

Really? omg how can i fix?

#

cause ive changed the SDK

sacred mountain
#

🔥

shy zinc
#

🔥 🔥

sacred mountain
#

i hate forge

#

i am giving up

ivory sleet
#

Fabri... :)

sacred mountain
#

YEA

#

i woudl have

#

but

#

sadly its for a modpack

#

with forge

#

mods

ivory sleet
#

gg go next

#

unlucky

sacred mountain
#

:(

eternal oxide
#

I was banned from forge IRC when I said I imagined Lex as having a huge bulging vein on his forehead.

sacred mountain
#

i neeeeeed

#

this

young knoll
#

Forgehead*

sacred mountain
#

bad pun

ivory sleet
#

its just yarn mapped

sacred mountain
#

well thats just one of the

#

like

#

15 classes

#

that i dont have in forge

ivory sleet
#

I mean u got them, just under different names KEK

sacred mountain
#

i am balding

#

very quickly

#

also

#

its 1.12.2

#

forge

#

since compatibility

ivory sleet
#

oh that hurts tho

#

bless u

shy zinc
sacred mountain
shy zinc
#

huh?

acoustic pendant
sacred mountain
#

send screenshots

eternal oxide
#

?img