#help-development

1 messages Β· Page 188 of 1

nimble oxide
#

so

#

Just a 5 instead 20L

#

or?

crimson terrace
#

just a 5

#

please

#

nothing else

#

its arbitrary, its just a safe bet to delay it more than one tick

raw prairie
#
public Structure generateStructure(String name) {
        World world = Bukkit.getWorld("world");
        NamespacedKey key = new NamespacedKey(this, name);
        Location loc = new Location(world, 0, 0, 0);
        Structure newStructure =   Bukkit.getStructureManager().createStructure();
        newStructure.fill(loc, new BlockVector(16,-7,16), false);
        Bukkit.getStructureManager().registerStructure(key, newStructure);
        Bukkit.getStructureManager().saveStructure(key);
        return newStructure;
    }```
#

does this sesem right?

mighty pier
#
    public void setMuted(OfflinePlayer p, boolean bool, long timewhenunban, String reason) {
        try (PreparedStatement ps = c.prepareStatement("UPDATE players SET muted = ? WHERE uuid = ?;")) {
            ps.setBoolean(1, bool);
            ps.setString(2, p.getUniqueId().toString());
            ps.executeQuery();
            ps.close();
        } catch (SQLException e){
            Bukkit.getLogger().info(e.getClass().getName() + ": " + e.getMessage());
        }
        try (PreparedStatement ps = c.prepareStatement("UPDATE players SET muteDuration = ? WHERE uuid = ?;")) {
            ps.setLong(1, timewhenunban);
            ps.setString(2, p.getUniqueId().toString());
            ps.executeQuery();
            ps.close();
        } catch (SQLException e){
            Bukkit.getLogger().info(e.getClass().getName() + ": " + e.getMessage());
        }
        try (PreparedStatement ps = c.prepareStatement("UPDATE players SET muteReason = ? WHERE uuid = ?;")) {
            ps.setString(1, reason);
            ps.setString(2, p.getUniqueId().toString());
            ps.executeQuery();
            ps.close();
        } catch (SQLException e){
            Bukkit.getLogger().info(e.getClass().getName() + ": " + e.getMessage());
        }
    }``` is this how im meant to do it?
eternal oxide
#

you only need to do this once, just to convert your current schematic to a Structure

raw prairie
eternal oxide
#

it will create you a structure file in yoru world folder

mighty pier
#

idk

#

havent even tested out if it makes an sql file yet

crimson terrace
#

then test it and see

remote swallow
crimson terrace
#

or that

nimble oxide
# crimson terrace just a 5

Bro I got no clue what to type instead to make it 5 ticks

Please make the 30 seconds to 5 ticks.. so I can see what to do. πŸ˜„

remote swallow
#

5l

#

thats it

raw prairie
#

@eternal oxide

#

where do I find

#

the file

eternal oxide
#

all Structures are saved there by default

unique pasture
#

Hey is there a way to fix this error? This comes when you run the BuildTool.

#

Patching net\minecraft\world\level\WorldAccess.java
applyPatches.sh: line 2: $'\r': command not found
Rebuilding Forked projects....
applyPatches.sh: line 6: $'\r': command not found
applyPatches.sh: line 7: syntax error near unexpected token $'{\r'' applyPatches.sh: line 7: applyPatch() {
'
Error compiling Spigot. Please check the wiki for FAQs.
If this does not resolve your issue then please pastebin the entire BuildTools.log.txt file when seeking support.
java.lang.RuntimeException: Error running command, return status !=0: [sh, applyPatches.sh]
at org.spigotmc.builder.Builder.runProcess0(Builder.java:973)
at org.spigotmc.builder.Builder.runProcess(Builder.java:904)
at org.spigotmc.builder.Builder.main(Builder.java:703)
at org.spigotmc.builder.Bootstrap.main(Bootstrap.java:27)

raw prairie
#

@eternal oxide i found it!!!

opal juniper
#

well done

raw prairie
#

{"stats":{"minecraft:used":{"minecraft:bedrock":31,"minecraft:yellow_terracotta":2,"minecraft:brown_mushroom_block":15,"minecraft:stripped_birch_wood":8,"minecraft:grass_block":200,"minecraft:polished_andesite":33},"minecraft:killed":{"minecraft:slime":4},"minecraft:custom":{"minecraft:jump":236,"minecraft:open_chest":1,"minecraft:time_since_rest":122992,"minecraft:damage_dealt":270,"minecraft:crouch_one_cm":122,"minecraft:leave_game":1,"minecraft:play_time":122992,"minecraft:sprint_one_cm":28436,"minecraft:time_since_death":122992,"minecraft:walk_one_cm":21950,"minecraft:sneak_time":593,"minecraft:total_world_time":122992,"minecraft:mob_kills":4,"minecraft:fly_one_cm":266899}},"DataVersion":3105}```
eternal oxide
#

Wherever it was is the default save location

raw prairie
waxen plinth
eternal oxide
#

thats your Structure

#

I guess

raw prairie
#

im confused again

eternal oxide
#

no clue

#

what name did you give it when you saved it?

raw prairie
#

was I supposed to?

#

didnt name it

eternal oxide
#

the method you called to save it you pass it a name

#

what name did you pass?

raw prairie
eternal oxide
#

yes, what was name?

raw prairie
#

πŸ’€

eternal oxide
#

No

#

you called the method generateStructure(String name)

#

what did you pass as the string?

gleaming escarp
#

hello there mateys. are you the man in control here @eternal oxide???!!!

crimson terrace
raw prairie
# eternal oxide you called the method generateStructure(String name)

public Structure generateStructure(String name) {
        World world = Bukkit.getWorld("world");
        NamespacedKey key = new NamespacedKey(this, name);
        Location loc = new Location(world, 0, 0, 0);
        Structure newStructure =   Bukkit.getStructureManager().createStructure();
        newStructure.fill(loc, new BlockVector(16,-7,16), false);
        Bukkit.getStructureManager().registerStructure(key, newStructure);
        Bukkit.getStructureManager().saveStructure(key);
        return newStructure;
    }```
gleaming escarp
#

okay there matey

crimson terrace
#

aint your matey, friend (please get it)

eternal oxide
raw prairie
eternal oxide
#

and what did you pass as name?

raw prairie
eternal oxide
#

You can;t call generateStructure without passing a name, so you must have given it one

raw prairie
#

762847fe-0dd3-4270-a8df-60e02beaaac1.json

eternal oxide
#

You are so confusing. Sometimes it seems as if you are quite good at Java, then you seem dumb as a brick 😦

#

where in your code did you call generateStructure ?

eternal oxide
#

show me

raw prairie
#

@eternal oxide

eternal oxide
#

I don;t see you executing that code at all

raw prairie
raw prairie
gleaming escarp
#

im trying to make my first plugin, i have this so far:

package org.bukkit.coolplugin

public class main extends JavaPlugin implements Listener {

    @Override
    public static void main(String[] args) {
        Minecraft.sendMessage("Hello World!")
    }

}
raw prairie
#

@eternal oxide

#

im dumb

#

sowwy

eternal oxide
#

Spigot doesn;t use a main method

raw prairie
tardy delta
#

bruh what

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!

eternal oxide
#

so backrooms

raw prairie
gleaming escarp
eternal oxide
#

now compile, and run it once. it will create you a Structure file

crimson terrace
#

then you dont have the dependency

#

youre on intellij?

gleaming escarp
#

I have:

#

<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
</dependency>

crimson terrace
#

you also need the repository

eternal oxide
#

Once you have a proper Structure file for "backrooms" save it somewhere as I know you are going to over write it by mistake

crimson terrace
gleaming escarp
#

i got it to work anyways

#

<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
</dependency>

#

now it works

opal juniper
#

πŸ’€

raw prairie
#

@eternal oxide it doesnt pop up

crimson terrace
opal juniper
#

boy i love CB

eternal oxide
gleaming escarp
crimson terrace
#

well theres your problem

raw prairie
crimson terrace
#

use an IDE unless youre a masochist

eternal oxide
gleaming escarp
#

I have no file space left

#

maven took it all

eternal oxide
#

somewhere in your world folder

gleaming escarp
#

cannot install

raw prairie
# eternal oxide somewhere in your world folder
 Error occurred while enabling Backrooms v1.0-SNAPSHOT (Is it up to date?)

java.lang.NullPointerException: origin#getWorld() cannot be null

at java.util.Objects.requireNonNull(Objects.java:334) ~[?:?]

at org.apache.commons.lang3.Validate.notNull(Validate.java:224) ~[commons-lang3-3.12.0.jar:3.12.0]

at org.bukkit.craftbukkit.v1_19_R1.structure.CraftStructure.fill(CraftStructure.java:89) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at backrooms.backrooms.Backrooms.generateStructure(Backrooms.java:63) ~[?:?]

at backrooms.backrooms.Backrooms.onEnable(Backrooms.java:50) ~[?:?]

at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]

at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]

at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-api-1.19-R0.1-SNAPSHOT.jar:?]

at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:523) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:437) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:225) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:966) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:291) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at java.lang.Thread.run(Thread.java:833) [?:?]``` 😒
crimson terrace
opal juniper
#

what is the classpath lol:
backrooms.backrooms.Backrooms.generateStructure

#

follow a proper naming structure please

crimson terrace
tardy delta
#

Bukkit.getWorlds().get(0)

raw prairie
eternal oxide
#

is your world called world?

raw prairie
eternal oxide
#

is the main world on your server actually called world?

eternal oxide
#

your error seems to disagree

crimson terrace
#

it does not

#

I assume youre trying to load the world before it actually exists or is loaded

#

try delaying it

eternal oxide
#

possibly

crimson terrace
#

its worked for me before

#

a tick or 2 should work fine

#

if its called onEnable() thats at least part of the issue

eternal oxide
#

move teh generateStructure("backrooms") to a player joining listener

crimson terrace
#

that works

eternal oxide
#

This si a LOT of work just to generate a structure where you are never going to use it again 😦

#

we just want the Structure file

crimson terrace
#

ayo why does AttributeModifier need a uuid lmao

eternal oxide
#

because its put into a multimap

#

you can have multiple of the same effect

raw prairie
#

ik why

#

i have my plugin load on start up

eternal oxide
#

yeah, that will break it

brisk estuary
#

Hi, I’m currently learning how to use ACF (a command framework) but I have a doubt: does anyone know if each parameter of a command method represents an argument of the command inside the game?

#
@Subcommand("completions")
    @CommandAlias("acfcompletions|acfc")
    @Description("Test Completions")
    @CommandCompletion("* * @test foo1|foo2|foo3")
    public void onTestCompletion(CommandSender sender, OnlinePlayer player, World world, String test, String foo1, TestEnum e) {
        sender.sendMessage("You got " + player.getPlayer().getName() + " - " + world.getName() + " - " + test + " - " + foo1 + " - " + e.name());
    }
#

that would be basically /<basecommand> completions <player> <world> <test> <foo1> <e> right?

raw prairie
#

@eternal oxide

Error occurred while enabling Backrooms v1.0-SNAPSHOT (Is it up to date?)

java.lang.IllegalArgumentException: Size must be at least 1x1x1 but was 16x-7x16

at org.bukkit.craftbukkit.v1_19_R1.structure.CraftStructure.fill(CraftStructure.java:92) ~[spigot-1.19-R0.1-SNAPSHOT.jar:3553-Spigot-14a2382-ef09464]

at backrooms.backrooms.Backrooms.generateStructure(Backrooms.java:63) ~[?:?]

at backrooms.backrooms.Backrooms.onEnable(Backrooms.java:50) ~[?:?]```
eternal oxide
#

ok seems you can;t use negative vectors

raw prairie
eternal oxide
#

so loc of 0,7,0 and vector of 16,7,16

crimson terrace
raw prairie
#

ok

tardy delta
vagrant stratus
tardy delta
#

so /command <player> <world> <test> <foo1> <e> yes

brisk estuary
#

All right, thank you

tardy delta
#

thats alot of dependencies optic lol

terse raven
#

If i want to temporarily change the inventory of a player, what would be the most elegant way?

vagrant stratus
#

I'm guessing it's something to do with the build section @tardy delta

raw prairie
#

@eternal oxide eyyyy

eternal oxide
#

Save that somewhere else too, as a backup

raw prairie
#

doe

crimson terrace
raw prairie
#

done

raw prairie
vagrant stratus
#

As for the dependencies, they're all used actually @tardy delta 🀣

eternal oxide
#

now delete the calling code for generateStructure("backrooms") so it never gets called again

raw prairie
tardy delta
#

glad they are

raw prairie
#

is that ok?

crimson terrace
terse raven
tardy delta
#

im more progressive while coding in college than at home lol

crimson terrace
terse raven
vagrant stratus
#

discord-webhooks & jlibnotify for extra notification methods.
influxdb for the remote & local db (the project I've talked about before will get rid of the use of SQLite databases entirely however)
snakeyaml because it's a third-party jar and it's the best for .yml files
asm because it's needed to do what's needed for scanning
jopt for the CLI args, and the rest are for other misc things

crimson terrace
#

not that I'm aware of

vagrant stratus
#

but that does not fix my actual issue lmao

terse raven
#

okay

vagrant stratus
#

SQLite database gets malformed on compile

eternal oxide
# raw prairie done

Your next job is...

  1. implement the void world code you were given earlier. So you can generate a void world.
  2. add a ChunkLoadEvent Listener
  3. in the Listener Bukkit.getScheduler().runTask( () -> { ... }
    In 3 you need to paste your Structure using Bukkit.getStructureManager().loadStructure(new NamespacedKey(this, "backrooms").place(...
#

You actually only need to load the Structure once. So you can do that in a Field

#

then simply reference it when you need it

#

every time a Chunk loads you check isNewChunk and if true place Structure

fresh timber
#

Is there a way to send a player to a server with the console of one of the paper servers

#

to a different server like with my plugin

#

I want to use a console command of my paper server that is in a bungee network to send the player to a different server

obsidian drift
#

I'm getting this when maven tries to remap

#

Idk what to change to get it working

terse raven
tardy delta
#

code looks messy

remote swallow
#

Worldguard api is confusing

tardy delta
#

String::repeat confusing too

wind blaze
#

Are there any ways to color ones name tag/glowing effect other than scoreboard teams?

tardy delta
#

optimisations lol

#

dang it INSERT INTO players (level, name) VALUES (?, ?,);

shadow gate
#

Hello everyone! Tell me how to implement the ability to write system messages on behalf of the plugin using hex colors.

fresh timber
#

I have a plugin and it its a spigot plugin on a paper server in a bungeecord (waterfall) network. I want to move the player from the server that the plugin is on to the server called "survival". I have looked up some things online and they talk about messaging the bungeecord proxy. I have done what they said and this is what I have.

In an @EventHandler:

ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("Connect");
out.writeUTF("survival");

In the onEnable():

this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");

In the onDisable():

this.getServer().getMessenger().unregisterOutgoingPluginChannel(this);

It does not send the player to the survival server when the event is called. Can anyone tell me why? (I just started to learn how to do this so it's probably a super dumb mistake.)

shadow gate
#

I tried to implement it this way, but idea complains:

queen patio
#

I am trying to differentiate different types of the same mob, for example two zombies that do different numbers of damage. At first I was going to differentiate them using NBT tags but I couldn't find any tags that would serve this purpose. I thought of using the CustomName tag but I do not want it to show above the head, and I couldn't find a way to make it invisible. Is there any way to hide custom names? Or perhaps another way of differentiating different types of the same mob?

tldr; How do I differentiate different types of the same mob, for example two zombies that do different numbers of damage

misty current
#

the one from bungee

shadow gate
misty current
#

there are 2 different chatcolor enums

#

import the one that contains bungee in the path

raw prairie
#

@eternal oxide

#

help

eternal oxide
#

no

shadow gate
eternal oxide
#

the NamespacedKey should be a constant, as should the Structure

shadow gate
#

Last time I did it using the PlaceHolder Api plugin. But I decided to try to do it myself and then I ran into a problem. A lot of forums talk about how to make players write using hex colors, and I need to make a system message with hex color.

@EventHandler
    public void OnRPStatus(PlayerResourcePackStatusEvent event) {
        if (event.getStatus() == PlayerResourcePackStatusEvent.Status.SUCCESSFULLY_LOADED |
                event.getStatus() == PlayerResourcePackStatusEvent.Status.ACCEPTED){
            event.getPlayer().sendMessage("Work!");
        } else {
            event.getPlayer().kickPlayer(ChatColor.RED + "Test message"));
        }
    }
eternal oxide
#

you only load the Structure once at startup

arctic moth
eternal oxide
#

You only schedule a task if event.isnewChunk()

arctic moth
misty current
misty current
arctic moth
#

oh

shadow gate
arctic moth
#

should i use the other form of float?

shadow gate
shadow gate
#

And another question. Is there any way to simplify the installation of hex colors? For example, through the grid #

misty current
#

you probably can, just google hex to rgb or something like that

#

i've found a fun way to mess with the game

#

registering illegal items

#

through nms

tardy delta
#
private static final Pattern HEX_PATTERN = Pattern.compile("#[a-fA-F\\d]{6}");

    public static String colorizeWithHexSupport(String input) {
        Matcher matcher = HEX_PATTERN.matcher(input);
        while (matcher.find()) {
            String hexColor = input.substring(matcher.start(), matcher.end());
            input = input.replace(hexColor, net.md_5.bungee.api.ChatColor.of(hexColor).toString());
        }
        return ChatColor.translateAlternateColorCodes('&', input);
    }

will be able to translate "#abc123" or however its written

warm token
#

I want to change a player skin head (the one in the Tab next to the name of the player), I'm using TAB plugin, and I need to recreate this using respective API

nimble oxide
#
package com.marqus.cubicscoreboard;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scoreboard.*;

public final class CubicScoreboard extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);

    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player player = e.getPlayer();

        createBoard(player);
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
public void createBoard(Player player) {

    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(this, () -> {
        ScoreboardManager manager = Bukkit.getScoreboardManager();

        Scoreboard board = manager.getNewScoreboard();

        Objective obj = board.registerNewObjective("FangeBoard", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lCUBIMC &8-  &f&lPRISON"));


        Score name1 = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&7Dit navn &8Β»"));
        name1.setScore(3);

        Score space = obj.getScore("");
        space.setScore(2);


        Score name = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&a" +  player.getName()));
        name.setScore(1);


        player.setScoreboard(board);

        Bukkit.broadcastMessage("Mooooo!");
    }, 5);


    }
}

#

The scoreboard is not showing up?

raw prairie
#

@eternal oxide so

The runnable has to be in a e.isNewChunk if statement??

rotund ravine
#

And why do you expect it to be null

#

Tag me in your response or i won’t open this server to see it

queen patio
eternal oxide
#

?pdc

remote swallow
#

was about to say that

queen patio
#

Thank you!

quaint mantle
#

what's the best way to set blocks?

#

i found a forum but dont work

#

on 1.19

young knoll
#

Block#setType?

tawdry cipher
#

How would I get something from my my plugins config from one of my event listeners in another file?

I'm using getServer().getPluginManager().registerEvents(new OnPlayerJoinListener(), this);
to load my event listener (where OnPlayerJoinListener is in another file)
but I cant seem to figure out how to get something from the config outside of the main file (where i'd use something like getConfig().getString("CONFIG_EXAMPLE_VAR");) which has the extends JavaPlugin on the class.

my OnPlayerJoinListener class line looks like public class OnPlayerJoinListener implements Listener {

young knoll
#

?di

undone axleBOT
young knoll
#

Use that

tawdry cipher
#

Thank you ❀️

raw prairie
#

gettingg an error here:

any fixes?

trying to generate a bukkit NBT file into the world

young knoll
#

And the error is?

#

Ah it’s a compiler error

#

I doubt that class extends JavaPlugin

raw prairie
young knoll
#

So you can’t just use this when making a namespaced key

raw prairie
#

so (plugin) this?

young knoll
#

No

#

?di

undone axleBOT
fresh timber
#

I have a plugin and it its a spigot plugin on a paper server in a bungeecord (waterfall) network. I want to move the player from the server that the plugin is on to the server called "survival". I have looked up some things online and they talk about messaging the bungeecord proxy. I have done what they said and this is what I have.

In an @EventHandler:

ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("ConnectOther");
out.writeUTF(event.getWhoClicked().toString());
out.writeUTF("survival");

In the onEnable():

this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");

In the onDisable():

this.getServer().getMessenger().unregisterOutgoingPluginChannel(this);

It does not send the player to the survival server when the event is called. Can anyone tell me why? (I just started to learn how to do this so it's probably a super dumb mistake.)

dim palm
#

Hello

#

how can i create a inventory that contains all blocks

#

excluding some blocks

#

and another for the swords, pickaxes and thhat

#

i tried by adding every block with a loop but doesn't worked

vocal cloud
#

You'd need to paginate

river oracle
#

Are there any like normal SQL types where you don't have to specify the size / is there a reason I should be specific about size of the type

#

I'm making a database api to interlope multiple databases through one abstraction and it'd be weird to have these specific types for just SQL

#
    public static String BINARY(int length) {
        return ("BINARY(" + length + ")");
    }```
For example you have stuff like this, but that doesn't really fit well with the nosql db's i've used
vocal cloud
#

You need to be specific to prevent something bigger than what you want going in

river oracle
#

πŸ€” okay SQL makes my brain hurt lol. Curious its size in bytes right?

vocal cloud
#

length

#

not sure for BINARY tho

river oracle
#

😭 why can't sql just have normal types these are all so weird

#

for example I don't get what the purpose of varbinary would be if binary exists

#

you specify the size for both so what would make varbinary "variable"

vocal cloud
#

backwards compat? idk

river oracle
#

do you use SQL? if so I'd be curious what types you support or whatever cuz my brain can't comprehend why I should support all of these just for SQL

raw prairie
#

Can anyone help me with this part of my code?

#

trying

#

to

river oracle
#

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

raw prairie
#

Im trying to generate rooms with bukkits NBT files

#

but im stuck on this part

river oracle
#

I shouldn't have learned mongo before sql this makes my brain explode

#

like do you even ever use varchar and varbinary or like tinyblob

vocal cloud
#

I use varchar, double, boolean (tinyint I or something like that) and a host of others when I need them

river oracle
#

is there a reason

vocal cloud
#

varchar for variable length, TEXT is pref if you don't care about input size. However, that does mean your DB can be stuck loading big text data

#

And you don't really want to use char

#

Unless you don't care about storage usage

river oracle
#
A VARIABLE length string (can contain letters, numbers, and special characters). The size parameter specifies the maximum string length in characters - can be from 0 to 65535```
This is what w3schools says about varchar but what makes this so insanely different than text to me they seem similar

Holds a string with a maximum length of 65,535 bytes```

vocal cloud
#

TEXT doesn't have the constraints you can slap onto VARCHAR by default

#

SQL was written so that other developers can't ruin your day as easily

river oracle
vocal cloud
#

You don't limit the size of TEXT generally

#

You can but you don't

river oracle
#

hmmm honestly this makes me think I'll deal with basic object types on a per database impl so probably have like AbstractDatabaseType or sum and then put logic in there

fluid river
# raw prairie

why are you looping through online players, and you forgot ) in the end

river oracle
#

though whats the difference between server types and mysql data types. I'm using sqlite for my project is there some like standard for SQL that would be SQL Server Types or something?

raw prairie
#

what should I loop it through?

#

@fluid river

vocal cloud
cedar gust
#

is there any possible way to make an wither entity with its invulernable ticks set to be damagable? i have tried to set it to be not invulernable but no dice... any suggestions ?

vocal cloud
#

You might have to make an NMS entity for it.

cedar gust
#

yea i have an nms entity for it,

public CustomWither(Level world)
    {
        super(EntityType.WITHER, world);
        setInvulnerableTicks(500);
        setSilent(true);
        setInvulnerable(false);
        this.setHealth(this.getMaxHealth());
        this.bossEvent.setProgress(1.0F);
        this.bossEvent.setVisible(false);
    }

    @Override
    protected void customServerAiStep()
    {
        this.setInvulnerable(false);
    }

    @Override
    protected void registerGoals()
    {
        //this.goalSelector.addGoal(1, new RangedAttackGoal(this, 1.0D, 40, 20.0F));
        //this.targetSelector.addGoal(2, new NearestAttackableTargetGoal(this, LivingEntity.class, 0, false, false, LIVING_ENTITY_SELECTOR));
        this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F));
        this.goalSelector.addGoal(2, new RandomLookAroundGoal(this));
    }

    public void move(double d0, double d1, double d2)
    {
        return;
    }
stuck flax
#

How do I get a bukkit color from a hex color code?

cedar gust
worldly ingot
#

Unless you want a ChatColor, in which case you'll have to use BungeeChat's ChatColor.of(int)

raw prairie
#

@fluid river

#

help pls

#

erooor

worldly ingot
#

You have no variable with that name

#

You need a plugin instance

fossil lily
fluid river
#

bro we told you to use worldgen @raw prairie

#

not event listener

fossil lily
#

πŸ€”

young knoll
#

With shaders

fluid river
#

shaders might help yeah

fossil lily
#

:/

young knoll
#

I’ve seen people remove the scoreboard background

#

So in theory it’s possible

fluid river
#

i don't think tag background is texture

young knoll
#

Neither is the scoreboard one

#

Hence shaders

worldly ingot
#

You could definitely do some finagling with some shaders, yeah. Not entirely sure how you would distinguish between a tag and other elements though. At least with the scoreboard it's pretty distinguishable.

young knoll
#

People do all sorts of weird things

#

I’ve seen a shader to remove the tooltips on items by detecting massive tooltips

fossil lily
#

okay, I was hoping there was a way to do it with just a texture pack but I guess not. thanks :)

young knoll
#

I mean shaders are part of a texture pack

fresh timber
#

How can I send a player text and if they click said text, they execute a command

fluid river
#

HoverEvent

#

ClickEvent

young knoll
#

Using the component api

fluid river
#

.

#

only for spigot tho

eternal oxide
eternal oxide
#

first make make a Field Structure backroom; and in your onEnable backroom = Bukkit.getStructureManager().loadStructure(new NamespacedKey(this, "backrooms");

ocean ginkgo
#

cant figure out why this isnt working...

#

says its invalid however is the exact same as the string "earth"

#

ik the command itself is being called because ofc it returns "earth is not a valid element." to the chat

vast kelp
ocean ginkgo
#

maybe i dont know how equals() works cause it keeps giving me errors

#

probably formating it wrong lemme google rq

#

yea i was

glad prawn
ocean ginkgo
eternal oxide
#

@raw prairie Once you have your field set your Structure is available to use. in your runnablejava Location loc = new Location(e.getWorld(), e.getChunk().getX() * 16, 7, e.getChunk().getZ() * 16); backroom.place(loc, false, StructureRotation.NONE, Mirror.NONE, 0, 1, new Random());

ocean ginkgo
#

anyone know why on PlayerToggleSneakEvent, the event.isSneaking true on both toggles of sneak? wouldnt it be false at least once?

eternal oxide
#

It shoudl be false once

ocean ginkgo
#

it isnt...

#

unless somethings wrong with my code

eternal oxide
#

Your code.

ocean ginkgo
#

cant see what could be wrong with it

#

when shift and when release

#

it says was true

eternal oxide
#

that should only say "was true" when releasing

ocean ginkgo
#

hmm

#

weird

glad prawn
#

Call isSneaking when event is called lmao.

eternal oxide
#

The event fires before it toggles

ocean ginkgo
#

i just deleted and retyped it the same way, and it worked so i assume i was just dumb and forgot to save it

eternal oxide
#

I guess πŸ™‚

#

happens to us all

ocean ginkgo
#

however the iscanclled one isnt working (lemme just double check if i saved it lul)

#

yeah ig event.isCancelled() is always false πŸ€·β€β™‚οΈ

#

at least whilst sneak event is called lul

#

i guess i can just do if !event.isSneaking()

eternal oxide
#

it will always be false unless you change it

#

isCancelled is only true if some plugin sets it

ocean ginkgo
#

alr gotcha

kindred valley
#

hello

#
8b6619f9-f9a5-3bd6-8842-712369e22e19:
  linkid: 8501
b719f8ed-aa9d-39c1-84f6-1f68d14ce985:
  linkid: 8015
#

My config is like this

#

i want to access every uuid on the config

#

how can i do that

#

i mean like

for(UUID uuid: config....){}
chrome beacon
kindred valley
#

ah actually when we text it its being string

#

dumbrain

crimson terrace
#

Uuid is its own class

#

toString should work fine tho

jagged monolith
#

^ If you need it as a string. Just use the toString() method and it will work fine

kindred valley
#

it just returns one

#
for(String bum: PlayerDiscordData.getConfig().getKeys(true)) {
                /*if(linkID.getAsInt() == PlayerDiscordData.getConfig().getInt(bum)) {

                }*/
                event.reply(bum).queue();
            }```
#
b719f8ed-aa9d-39c1-84f6-1f68d14ce985:
  linkid: 248
8b6619f9-f9a5-3bd6-8842-712369e22e19:
  linkid: 3866
``` This is the config
#

Ah actually

#

its an error of JDA

#

it cant reply for reps

#

uhm how can i get values directly

jagged monolith
#

PlayerDiscordData.getConfig().getInt(bum + ".linkid") Will return the int

kindred valley
#

im trying to take player from Bukkit.getPlayer(UUID);

#

but it keeps returning null

eternal oxide
#

to get a Player they must be online

kindred valley
#

it is

eternal oxide
#

they are logged in?

kindred valley
#

yes

eternal oxide
#

then your UUID is wrong

jagged monolith
#

Show the full code you're using the for it. The bit where you are using getPlayer

kindred valley
#
8b6619f9-f9a5-3bd6-8842-712369e22e19
#

this is my uuid

eternal oxide
#

are you passing that as an actual UUID Object or a String?

kindred valley
#
if (event.getChannel().equals(event.getGuild().getGuildChannelById("1031799536592629824"))) {
            for (String bum: PlayerDiscordData.getConfig().getKeys(false)) {
                if (PlayerDiscordData.getConfig().getIntegerList("numbers").contains(linkID.getAsInt())) {
                    if (linkID.getAsInt() == PlayerDiscordData.getConfig().getInt(bum + ".linkid")) {
                        event.reply(bum).queue();
                        event.getChannel().sendMessage("8b6619f9-f9a5-3bd6-8842-712369e22e19").queue();
                        Player p = Bukkit.getPlayer("8b6619f9-f9a5-3bd6-8842-712369e22e19");
                        Member m = event.getMember();
                        event.reply("Başarıyla isminizi değiştirdim...").queue();
                        m.modifyNickname(p.getName()).queue();
                    }
                }else {
                    event.reply("ID YOK").queue();
                }

            }```
#

Strin

#

g

eternal oxide
#

then you are not getting by UUID

#

you are askign for a player named "that string"

#

there is no player named "8b6619f9-f9a5-3bd6-8842-712369e22e19"

kindred valley
#

how can i cast a string to uuid

eternal oxide
#

UUID.fromString

molten hearth
#

there is also no player with that uuid apparently unless you're playing cracked

kindred valley
fickle mist
#

Hi everyone! How to make it so that if you click on the chest with an item from an item stack, it will close and it will only open with this item and so that it cannot be opened with the same item but with a different name

quaint mantle
#

hi, I have a question ... I have a hub with spigot and obviously a bungee connected ... I am learning to do pl bungeecord and therefore, I was told that for a pl for example for the hub I have to do it entirely in bungee, but can I put the bungee pls in the plugins folder of the hub in spigot? otherwise what's the point, I can't put it in the bungee otherwise it affects all modes
I have to do them in bungee for connections to modes
with compass

torn oyster
#

how do I build bungee from my fork?

#

i'm trying to change messages.properties

tender shard
torn oyster
#

but when i did clean package jars were scattered everywhere

tender shard
eternal oxide
#

You cna however create a dual plugin which runs on both. but it's basically two plugins in one

tender shard
#

yeah but that's still two plugins, just thrown into one .jar

torn oyster
#

oop lmfao

quaint mantle
#

and how do I create a spigot plugin and put a compass that leads to interaction with a bungre server

tender shard
#

you need to use plugin messaging, or your own form of inter-server communication (e.g. redis)

#

?messaging

#

hm

hybrid spoke
#

?pmc

tender shard
#

just google "bungeecord plugin messaging" or similar

tender shard
#

beware, it's quite annoying

#

I'd rather use redis

#

but that requires a redis server, ofc

quaint mantle
#

Thank you bro

tender shard
#

what is the compass going to do btw?

#

a gui to teleport across servers?

#

so, no bungee plugin needed in this case

fickle mist
tender shard
drowsy helm
#

Use nbt and set some uuid for the chest and key

#

Then when they try to open, compare

tender shard
#

nbt? o0

#

why not PDC

drowsy helm
#

Same shiet

tender shard
#

except that nbt requires nms

drowsy helm
#

You know what I meant lmao

tender shard
#

i thought you meant plain NBT tags lol

warm light
#

is it possible to change echest slot by nms? or its fixed?

chrome beacon
#

The size?

#

Or content

warm light
#

size

chrome beacon
#

You don't really need nms

#

You can just open a chest inventory with the api

#

And save the inventory in a pdc

warm light
#

I don't want to cancel event and create new GUI.
but want to change the real echest size.
is that possible somehow?

chrome beacon
#

You can fork Spigot if you want that

warm light
#

so not possible with plugin?

chrome beacon
#

If you don't want to reopen an inventory then no

fickle mist
#

Hi again! how can I get that if the player clicked on the RMB block along with the shift

nimble oxide
#
package com.marqus.cubicscoreboard;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scoreboard.*;

public final class CubicScoreboard extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);

    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player player = e.getPlayer();

        createBoard(player);
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
public void createBoard(Player player) {

    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(this, () -> {
        ScoreboardManager manager = Bukkit.getScoreboardManager();

        Scoreboard board = manager.getNewScoreboard();

        Objective obj = board.registerNewObjective("FangeBoard", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lCUBIMC &8-  &f&lPRISON"));


        Score name1 = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&7Dit navn &8Β»"));
        name1.setScore(3);

        Score space = obj.getScore("");
        space.setScore(2);


        Score name = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&a" +  player.getName()));
        name.setScore(1);


        player.setScoreboard(board);

        Bukkit.broadcastMessage("Mooooo!");
    }, 5);


    }
}

My sidebar isn't showing up, no errors in the console (Paper 1.8)

eternal oxide
#

interact event, RIGHT_CLICK_BLOCK with Player#isCrouching()

fickle mist
fickle mist
#

thanks

azure hawk
#

is it possible to make all mobs angry at you, even the passive ones

torn shuttle
#

is the minecraft weather command entirely unable to run from console?

eternal oxide
#

no world component, so no

torn shuttle
#

damn it

eternal oxide
#

just use the API

torn shuttle
#

this was a workaround for scripting weather commands

#

I'm guessing setting time is the same

remote swallow
#

iirc essentials has a weather command and time command with world properties so you could just depend on essx

prime berry
#

i need help

#

i cant send messages

#

theres no plugins

azure hawk
#

How can you modify NBT Data of an entity? Does anyone know?

drowsy helm
#

that discord message looks like a plugin

prime berry
drowsy helm
#

could be a bungee plugin making you not able to chat then

prime berry
#

pl

drowsy helm
#

go for it

torn shuttle
#

oh I see

#

the weather API is cursed

drowsy helm
torn shuttle
#

is it even possible to have thunder without rain?

#

(outside of deserts)

drowsy helm
#

not as far as im aware

torn shuttle
#

this is truly one of the APIs of all time

drowsy helm
torn shuttle
#

if only we had the tech to do it any other way

drowsy helm
#

theres gotta be a good reason why they dont

torn shuttle
#

I think it's just legacy code, like some of the parts of the chunk-related api

solid dagger
#

Guys i need help with CrackShot plugin:
In the Explosion section, when i change the explosion radius, it doesn't go over 4 blocks of radius (minecraft default). As i know the radius of Crackshot explosions can go over 4 blocks, but i don't know why it doesn't work on my server. This is the Explosions configuration:

Explosions:
Enable: true
Enable_Owner_Immunity: true
Damage_Multiplier: 95
Explosion_No_Grief: true
Explosion_Radius: 20
On_Impact_With_Anything: true
Explosion_Delay: 20
Sounds_Explode: FUSE-4-2-0

As you can see, i set the radius at 20, but it doesn't work, it remains on the default radius. Please help

solid dagger
#

How can i ask to a plugin developer?

#

do you know someone?

drowsy helm
#

go onto the plugin's page and message them

fickle mist
#

Guys what should be entered in lockable.setLock();

drowsy helm
#

why are you registering a new recipe each interact

fickle mist
drowsy helm
#

what error

fickle mist
drowsy helm
#

huh

#

show your code

fickle mist
fickle mist
# drowsy helm show your code

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Lockable;
import org.bukkit.block.data.BlockData;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

public final class Keys extends JavaPlugin implements Listener {

    private static Keys plugin;
    FileConfiguration config = this.getConfig();
    public Keys() {
    }


    @Override
    public void onEnable() {
        plugin = this;
        this.getConfig().options().copyDefaults(true);
        Bukkit.getServer().getPluginManager().registerEvents(this,this);
        saveConfig();
        ShapedRecipe recipe = new ShapedRecipe(NamespacedKey.minecraft("Key"), Key);
        recipe.shape("GG ", "GG ", " G ");
        recipe.setIngredient('G', Material.GOLD_INGOT);
        Bukkit.addRecipe(recipe);
    }

    @EventHandler
    public void Event(PlayerInteractEvent e) {
        Block chest = e.getClickedBlock();
        Player p = e.getPlayer();
        String KFCL = "This is just key";
        String KFC = "Key";
        ItemStack Key = new ItemStack(Material.TRIPWIRE_HOOK, 1);
        ItemMeta meta = Key.getItemMeta();
        String name = p.getName();
        meta.setDisplayName(name + "" + KFC);
        List<String> lore = new ArrayList<>();
        lore.add(KFCL);
        Key.setItemMeta(meta);
        ShapedRecipe recipe = new ShapedRecipe(NamespacedKey.minecraft("Key"), Key);
        recipe.shape("GG ", "GG ", " G ");
        recipe.setIngredient('G', Material.GOLD_INGOT);
        Bukkit.addRecipe(recipe);

        if (e.getAction() == Action.RIGHT_CLICK_AIR && e.getClickedBlock().getType() == Material.ANVIL && p.getInventory().getItemInMainHand() == Key) {
            e.setCancelled(true);
        }
        BlockData blockData = chest.getBlockData();
        if (e.getClickedBlock().getType() == Material.CHEST && e.getAction() == Action.RIGHT_CLICK_BLOCK && p.isSneaking() && p.getInventory().getItemInMainHand() == Key) {
            if (chest instanceof Lockable) {
                Lockable lockable = (Lockable) blockData;
                lockable.setLock();
            }
        }
        if (e.getClickedBlock().getType() == Material.CHEST && e.getAction() == Action.RIGHT_CLICK_BLOCK && p.isSneaking() && p.getInventory().getItemInMainHand() == Key) {
            if (chest instanceof Lockable) {
                Lockable lockable = (Lockable) blockData;
                lockable.setLock(null);
            }
        }
    }

            @Override
        public void onDisable () {
            // Plugin shutdown logic
        }

    public static Keys getPlugin() {
        return plugin;
    }
}
drowsy helm
#

a string

#

thats what the docs say

young knoll
#

Yes

#

Items with the matching string in their lock NBT can open the chest

drowsy helm
#

i would really recommend just using pdc instead

fickle mist
# drowsy helm a string

I just need if the name is for example Key1 then I close the chest with it and another key for example Key2 could not open it

drowsy helm
#

its much ebtter than the Lockable interface

#

like i said, use pdc and generate a uuid instead

#

Lockable does it for you, you just need to assign a name

grave plover
#

Hello, I am currently dealing with nms entities and their goal selectors

#

I have a problem where I set up a PathfinderGoalBowShoot, but the custom entity doesn't shoot the arrow, only charges and then stops charging when it should fire, but no arrow :(

brisk estuary
#

ACF doubts

rocky tree
#
BookMeta bookMeta = (BookMeta) libroScritto.getItemMeta();
bookMeta.setTitle("Test");
bookMeta.setAuthor("Test");

List<String> pagine = new ArrayList<String>();
pagine.add("Hi 1\n\n Hi 2\n\n Hi 3"); 
bookMeta.setPages(pagine);
writtenBook.setItemMeta(bookMeta);```
#

I Get an error with this code, anyone?

#
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[server.jar:3096a-Spigot-9fb885e-af1a232]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[server.jar:3096a-Spigot-9fb885e-af1a232]```
vocal cloud
#

?paste it. I feel like there's more to that error

undone axleBOT
rocky tree
#

Okk

#

Can I past only the error?

vocal cloud
#

Paste the whole log preferably

#

As much of the error as possible

rocky tree
vocal cloud
#

At the bottom. There's your problem

drowsy helm
#

Array index out of bounds

rocky tree
vocal cloud
#

Where it tells you the error?

#

If you don't know how to read a stack trace I highly suggest learning

rocky tree
#

Oh, I've see

golden turret
grave plover
#

I want to change the attack speed of my custom entity

#

and there is literally nothing useful in the forums

#

does someone know how I can change the attack speed of a custom nms entity?

#

(with pathfinder goals?)

grave plover
# echo basalt show code
public class EntityBody extends EntityVindicator implements IRangedEntity {

    public EntityBody(EntityTypes<? extends EntityVindicator> entityType, World worldServer, Location location) {
        super(entityType, worldServer);
        
        getBukkitEntity().setPersistent(true);
        this.craftAttributes.getAttribute(Attribute.GENERIC_FOLLOW_RANGE).setBaseValue(100);
        b(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
    }
    
    @Override
    public void u() {
        bS.a(0, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
        bS.a(1, new PathfinderGoalHurtByTarget(this, Entity.class));
        bS.a(2, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 1.5f));
        bS.a(3, new CustomPathfinderGoalMeleeAttack(this, 1.25, true));
        //bS.a(3, new PathfinderGoalBowShoot<>(this, 1, 20, 10));
    }

    @Override
    public void a(EntityLiving arg0, float arg1) {
        super.a(arg0, arg1);
    }

}

The shoot goal is //bS.a(3, new PathfinderGoalBowShoot<>(this, 1, 20, 10));

hasty prawn
#

whys it commented out

grave plover
#

i tested it and the vindicator already charged, but is doesnt shoot the arrow when uncharging

echo basalt
small current
#

How can i add pathfinder goals to entityhuman?

grave plover
grave plover
echo basalt
#

remapped namings

drowsy helm
small current
echo basalt
#

Here's the remapped class

drowsy helm
#

but you can do a hidden entity and tp the npc to the entity

grave plover
drowsy helm
#

then that hidden entity acts as a pathfinder

grave plover
drowsy helm
#

yeah but way harder

grave plover
#

you can create an entity, send a destroy packet and create a player on this id

drowsy helm
#

ah

grave plover
#

and the server will animate the player

echo basalt
#

You can just do a funky move

grave plover
#

like the entity

drowsy helm
#

didnt even think that would work lol

echo basalt
#

which is a funky trick used in some minigame servers

#

create a villager with a custom name (or some other entity)

#

And whenever any packet is sent for the entity, you just cancel it out and send your own

#

So you can replace all spawn packets with a player spawn with the viewer's own skin

small current
echo basalt
#

You don't need to despawn if you never spawn it

small current
#

yeah but it needs to pathfind right?

drowsy helm
#

just rewrite minecraft's server code from the ground up and make your own entity system

small current
#

thats a better alternative

drowsy helm
#

you could just theoretically intercept the spawn packet

#

and replace it with oyur own with the same entity id

#

right?

#

rather than despawning it

small current
#

so i addWorld the zombie

#

intercept the spawn packet

#

check if the id is the zombie

#

change the id field to the HumanEntity's id field

drowsy helm
#

yeah sounds right

#

no clue if it would work tho lol

small current
#

nms seems fun!!

#

i have an exam tomorrow!!!!!!!!!!!!!!

drowsy helm
#

go study lol

#

and why not use moj mappings

echo basalt
#

obfuscated nms is fun nms

grave plover
echo basalt
drowsy helm
grave plover
small current
hasty prawn
drowsy helm
#

you need the maven plugin

#

all it does is translate moj mappings to nms

#

if thats what you're asking

small current
#

someone is going to pay me to code a plugin so an npc with a girl npc spawns and runs from you

grave plover
small current
#

tf fr

drowsy helm
#

for the intial dependency, yes

grave plover
drowsy helm
echo basalt
#

pov: I take off my mask

grave plover
#

is there like an online browser for mapping translations?

drowsy helm
echo basalt
#

PE teacher put me running like 26 laps

#

I was the only guy wearing a mask

echo basalt
#

then he asked if I was still alive

#

my arm shined brighter than my future

drowsy helm
#

dude even has a mask in his pfp

grave plover
grave plover
drowsy helm
#

ah

#

reflection

grave plover
#

and i must change this to something lower to allow more attacks/second

grave plover
echo basalt
#

unsafe

#

:)

#
Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
unsafeField.setAccessible(true);
Unsafe unsafe = (Unsafe) unsafeField.get(null);
...
#

I did it here

vocal cloud
#

I don't think you can change the value of a final field if you're using 17+

echo basalt
#

unsafe allows it

#

reflections don't

#

unsafe literally lets you mess with RAM pointers directly

echo basalt
#

probably sun.misc

#

idk

grave plover
#

alr

#

i try it

tardy delta
#

Had to do some weird constructor reflection stuff for records as they have final fields :/

echo basalt
#

unsafe.putObject

grave plover
#

weird, i dont have that option

#

might be something with eclipse

#

eclipse once hid the whole awt from me

tardy delta
#

Heh arent those unsafe methods static?

#

Probably confusing it with Runtime class

grave plover
#

but what are those offsets

#

putObject(Object o, long offset, Object x)

#

o, offset and x?

tardy delta
#

Hmm Ye there is Unsafe.getUnsafe()

hoary perch
#

How can I set this nbt {EntityTag:{Invisible:1b}} to a item frame in the players inventory? .getItemMeta() etc is clear but how can I set this nbt?

tardy delta
#

Pretty interesting

drowsy helm
drowsy helm
hoary perch
tardy delta
#

Idk just Nice to know

hoary perch
echo basalt
#

so you gotta access it via refleciton

#

ironic

tardy delta
#

Ye read that

drowsy helm
#

Pre much a sneaky throws ig

tardy delta
#

Ye

echo basalt
tardy delta
#

If you ever wanted to fuck up memory

echo basalt
#

unsafe.objectFieldOffset(Field)

drowsy helm
#

Or look at the sec and replicate

#

Or google

grave plover
drowsy helm
nimble oxide
#
package com.marqus.cubicscoreboard;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scoreboard.*;

public final class CubicScoreboard extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);

    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {

        Player player = e.getPlayer();

        createBoard(player);
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
public void createBoard(Player player) {

    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(this, () -> {
        ScoreboardManager manager = Bukkit.getScoreboardManager();

        Scoreboard board = manager.getNewScoreboard();

        Objective obj = board.registerNewObjective("FangeBoard", "dummy");
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        obj.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lCUBIMC &8-  &f&lPRISON"));


        Score name1 = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&7Dit navn &8Β»"));
        name1.setScore(3);

        Score space = obj.getScore("");
        space.setScore(2);


        Score name = obj.getScore(ChatColor.translateAlternateColorCodes('&', "&a" +  player.getName()));
        name.setScore(1);


        player.setScoreboard(board);

        Bukkit.broadcastMessage("Mooooo!");
    }, 5);


    }
}

My sidebar isn't showing up, no errors in the console (Paper 1.8)

drowsy helm
#

paper 1.8

twilit roost
#

Im sending Hex Message to player, but I want to implement Hover/Click Event on it as well.
If I do so, those colors change to Bukkit ones.
Any ideas how to fix that?

nimble oxide
drowsy helm
#

It should work fine

elfin atlas
#

Hey I'll imported CraftBukkit to acces NMS and things such as CraftEntity and more. But it is not working does someone know if there are any errors with CraftBukkit 1.19 or smth?

twilit roost
#

?paste

undone axleBOT
remote swallow
#

?bt

undone axleBOT
remote swallow
#

doesnt spigot have some really weird translate hex thing'

elfin atlas
#

I mean I have spigot

drowsy helm
#

No spigot

#

Not spigot-api

#

Just spigot

elfin atlas
#

Okay

drowsy helm
#

Using component builder should work fine with hex

twilit roost
#
TextComponent component = new TextComponent(Event.getPlugin().getMessagesConfig().getColor(color) + color);
HoverEvent he = new HoverEvent(HoverEvent.Action.SHOW_TEXT
,TextComponent.fromLegacyText("test"));
component.setHoverEvent(he);
sender.spigot().sendMessage(component);
drowsy helm
#

Check this out

twilit roost
#

works great
thx

chrome beacon
quaint mantle
chrome beacon
#

Yeah

#

I guess you could link it

stoic vigil
#

signs are client based right? so you can't easily use them as UI right?

chrome beacon
stoic vigil
#

oh, how? i googled for a while now and didn't find anything really helping...

chrome beacon
#

You'd need to use packets to open the screen

#

And packets to intercept when they save the sign

#

I'll see if I can find a guide in a bit

stoic vigil
#

oke, but first: i need a text input for a link to a picture, so it should be able to store as much text as possible. also, i don't want to use the chat, so what's the best solution? i'm not sure if signs are the right thing if they're a bit complicated but things such as an anvilinventory are much more limited at text lenght, right?

#

i found this for sending packages to open the sign, but how to read the input on close?

public static void open(Player player, int x, int y, int z) {
        try {

            Class<?> packetClass = getNMSClass("PacketPlayOutOpenSignEditor");
            Class<?> blockPositionClass = getNMSClass("BlockPosition");
            Constructor<?> blockPosCon = blockPositionClass.getConstructor(new Class[] { Integer.TYPE, Integer.TYPE, Integer.TYPE });

            Object blockPosition = blockPosCon.newInstance(new Object[] { Integer.valueOf(x), Integer.valueOf(y), Integer.valueOf(z) });
            Constructor<?> packetCon = packetClass.getConstructor(new Class[] { blockPositionClass });
         
            Object packet = packetCon.newInstance(new Object[] { blockPosition });
            sendPacket(player, packet);

        } catch (Exception e) {
        }
    }
chrome beacon
#

Signs have a lower limit than anvils, no?

stoic vigil
#

jeha, per line limit is much smaller

#

but also an anvil isn't enough, so i have to search something else

chrome beacon
#

Just use chat

#

It's the easiest

stoic vigil
#

i also tried with books, but i think there's no way to send packages for opening and reading content of writable books

obsidian drift
#

I'm getting this when remapping... I have updated everything to Java version 19 but am still getting this error

nimble oxide
#

How do I get colored glass like this in 1.8:

Material.STAINED_GLASS_PANE

obsidian drift
#

how can that be old

nimble oxide
echo basalt
#

either that or the maven version is too low

obsidian drift
#

How can I check the maven version

echo basalt
#

mvn -version

echo basalt
sinful rapids
#

How can I add a plant to the farmland block (I don't mean setType)?

nimble oxide
echo basalt
#

the plant belonging on a farmland is just the block above it

obsidian drift
#

the latest

nimble oxide
#
[17:48:41 ERROR]: Could not pass event PlayerInteractEvent to CubicVagt v1.2
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:517) [patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:502) [patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:463) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:763) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [patched_1.8.8.jar:git-PaperSpigot-445]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_312]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_312]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:774) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616) [patched_1.8.8.jar:git-PaperSpigot-445]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 45
        at org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventoryCustom$MinecraftInventory.setItem(CraftInventoryCustom.java:104) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory.setItem(CraftInventory.java:79) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at com.cubicmc.cubicvagt.events.SignInteract.onPlayerInteract(SignInteract.java:75) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_312]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_312]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_312]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_312]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        ... 18 more
#
package com.cubicmc.cubicvagt.events;



import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.Arrays;


public class SignInteract implements Listener {

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent e) {
        Player player = (Player) e.getPlayer();
        if(e.getClickedBlock() == null)return;
        if(e.getClickedBlock().getState() instanceof Sign){
            Sign sign = (Sign)e.getClickedBlock().getState();
            if(sign.getLine(0).equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', "&5&lWARP"))) {

                Inventory VagtWarp = Bukkit.createInventory(player, 45, ChatColor.translateAlternateColorCodes('&', "&8[ &5&lVAGT &8- &f&lWARP &8]"));

                // C Main vagt stue
                ItemStack cmain = new ItemStack(Material.WOOD_BUTTON);
                ItemMeta cMainMeta = cmain.getItemMeta();
                cMainMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&c&lC STOR VAGTSTUE"));
                cMainMeta.setLore(Arrays.asList(ChatColor.translateAlternateColorCodes('&', "&7 \n &7Teleport til &cC &7stor vagtstue \n &7 \n &7&o(( Klik her for at teleportere! ))")));
                cmain.setItemMeta(cMainMeta);

                VagtWarp.setItem(19, cmain);



                // C Vagt-events vagtstue
                ItemStack cVagtEvent = new ItemStack(Material.WOOD_BUTTON);
                ItemMeta cVagtEventMeta = cVagtEvent.getItemMeta();
                cVagtEventMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&c&lC LILLE VAGTSTUE &8( &c1 &8)"));
                cVagtEventMeta.setLore(Arrays.asList(ChatColor.translateAlternateColorCodes('&', "&7 \n &7Teleport til &cC &7stor vagtstue \n &7 \n &7&o(( Klik her for at teleportere! ))")));
                cVagtEvent.setItemMeta(cVagtEventMeta);

                VagtWarp.setItem(20, cVagtEvent);




                // C Vault vagtstue
                ItemStack cVaultStue = new ItemStack(Material.WOOD_BUTTON);
                ItemMeta cVaultStueMeta = cVaultStue.getItemMeta();
                cVaultStueMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&c&lC LILLE VAGTSTUE &8( &c2 &8)"));
                cVaultStueMeta.setLore(Arrays.asList(ChatColor.translateAlternateColorCodes('&', "&7 \n &7Teleport til &cC &7stor vagtstue \n &7 \n &7&o(( Klik her for at teleportere! ))")));
                cVaultStue.setItemMeta(cVaultStueMeta);

                VagtWarp.setItem(21, cVaultStue);
                

                // FRAME - LILLA
                ItemStack frame = new ItemStack(Material.WOOD_BUTTON);
                for (int i : new int[]{0,1,2,3,4,5,6,7,8}) {
                    VagtWarp.setItem(i, frame);
                }

                // FRAME - HVID
                ItemStack frame2 = new ItemStack(Material.WOOD_BUTTON);
                for (int i : new int[]{36,37,38,39,40,41,42,43,44,45}) {
                    VagtWarp.setItem(i, frame2);
                }

                player.openInventory(VagtWarp);


                // e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[ &5&lCUBICMC &8- &f&lVAGT &8] &7Dette virker!!"));
                }
            }
        }
}

#

Whats wrong, the gui isn't opening

echo basalt
#

🀦

#

learn java

obsidian drift
#

Read the damn error message

#

It literally tells you

iron glade
#

consider using a ?paste for that much code

#
for (int i : new int[]{36,37,38,39,40,41,42,43,44,45}) {```
tf is this? lol
echo basalt
#

manual loop between range

chrome beacon
echo basalt
#

shitty trick but it owrks

chrome beacon
#

Since you're using Intellij open project settings and make sure to set the JDK version there

iron glade
#

why not simply i = 36; i <.... ++

obsidian drift
iron glade
#

is it faster?

echo basalt
#

don't question him

iron glade
#

hm xD

echo basalt
#

it's worse in every way possible

chrome beacon
obsidian drift
echo basalt
#

there's a much better way to structure this but that comes with experience and I'm not gonna bother making his project for him

iron glade
#

true

chrome beacon
#

Maybe one of the plugins doesn't support Java 19

wet breach
chrome beacon
#

For example the shade plugin

wet breach
#

unless you using eclipse

echo basalt
#

what about ms-paint-ide

obsidian drift
wet breach
#

configuration tag like you have for the maven compiler plugin

#

although you don't have to use the maven compiler plugin specifically to set the version, just a plugin that accepts such configs

obsidian drift
#

I'm building with Java 17 now and still getting the same problem

strange ermine
#

Hello, I have a question. How can I make a floating block. I used the "BlockPhysicsEvent" and canceled it but my block still broke. I watched how work the ropeladder in WorldGuard and the code seems similar to what I do. So I don't understand how they do that. (I want to create a floating sign).

wet breach
#

try doing java -version

echo basalt
#

on the ide terminal

obsidian drift
#

Yeah says 17.0.4.1

#

It must be something to do with the remap plugin

#

I don't know how to change the Java version on that thouugh

wet breach
obsidian drift
wet breach
#

would have to use java 17 or lower

obsidian drift
#

I'm trying to use java 17

#

But it won't let me for some reason

wet breach
#

maybe its something to do with the openjdk version you are using

#

have you tried using a different version?

obsidian drift
#

I'll try using IBM's one

wet breach
#

well might be sufficient to use openjdk 18 or 17

nimble oxide
tardy delta
#

where naming conventions

echo basalt
#

before I ever wrote any java code

tardy delta
#

learnt in college how to create object today πŸ’€

echo basalt
#

You start with the minimum and expand your knowledge by learning about classes and implementations as you go

molten hearth
#

Bruh fr? Same

#

We learnt objects in js with weird syntax

echo basalt
#

we were supposed to have a programming test

tardy delta
#

half of the time im just watching the news or smth

echo basalt
#

on paper today

tardy delta
#

meanwhile other courses

echo basalt
#

had a mad anxiety attack, stood still for like 40 minutes

molten hearth
#

My semester project is a reverse proxy with bot filtering in nodejs and I'm sitting here in the actual js class having to learn how to create an object

echo basalt
#

teacher noticed me, asked to speak outside and just let me go

#

test about fuckin SQL queries

tardy delta
#

learning sql this year too

#

learnt a new few things but idk if those are postgres specific

echo basalt
#

I didn't even get anxious about the test

#

but on my way to the test, I got in from the back gate

#

and a teacher caught me on my way to the test and started questioning how I got the code

tardy delta
#

wait wha

echo basalt
#

and then that teacher appeared on the fuckin classroom and just stood there staring for the entire test duration

#

talkin to the programming teacher

tardy delta
#

i have a test thrusday about basic java concepts

floral drum
#

poor illusion ❀️

echo basalt
#

❀️

#

was shaking for like 2 hours

tardy delta
#

its like 2 hours but can be done in 20 minutes

echo basalt
#

got some ice cream

floral drum
#

damn that sucks man ❀️

#

EYYY ICECREAM

#

POG

echo basalt
#

and then played basketball

molten hearth
echo basalt
#

then had some gymnastics class where I just did like some 5 acrobatic positions and passed

#

and chilled

tardy delta
#

learnt things like select column::numeric(10,2)

echo basalt
#

no

tardy delta
#

no

echo basalt
#

looks unsettling

floral drum
#

oh ok

tardy delta
#

what an ugly animal

floral drum
#

that's my dog..

tardy delta
#

poor dog

floral drum
#

WHAT THE FUCK

echo basalt
molten hearth
#

If your PE teacher isn't drafting you into the military is he really a PE teacher

echo basalt
#

teacher is cool

#

made us run like 30 laps

#

I was the only one wearing a mask

#

almost passed out

molten hearth
#

Bruh

tardy delta
#

lol

#

why do you have PE

molten hearth
#

I remember we had to run a few miles and anyone who fell behind lost points and the less points you got the less you got graded

echo basalt
#

it's mandatory

#

by law

#

for all students

tardy delta
#

your doing college?

obsidian drift
molten hearth
#

So we were sitting there running in the mud for a few miles

echo basalt
#

it's a weird HS mix

molten hearth
#

Good Times

tardy delta
#

lol

echo basalt
#

I'm not that old

tardy delta
#

age is subjective

#

said my mate in college today

molten hearth
#

Huh

echo basalt
#

pretty sure that I can define it with a number

tardy delta
#

he was talking about an old teacher

echo basalt
#

I mean

#

at a certain stage, it doesn't matter

molten hearth
echo basalt
#

69 or 70 their bones will still crack

crimson terrace
molten hearth
#

Court fr tryna frame us all

floral drum
#

what the fuck

tardy delta
#

?

echo basalt
#

1.8 🀑

floral drum
#

18,155,322 instances

#

of network manager

echo basalt
#

purple I thought that EP was 1.19+

tardy delta
#

fun

echo basalt
#

get workin

floral drum
tardy delta
#

you should see how many BlockPositions there are

#

not long living tho

floral drum
#

I hate you

molten hearth
#

Lmao

crimson terrace
#

F

molten hearth
#

Nice

tardy delta
#

lmao

floral drum
#

You know something!

tardy delta
#

does that show all of them in meweory?

#

they are gced pretty soon

floral drum
#

wait, that's not 18M instances of NetworkManager, that's an inner πŸ‘€

tardy delta
#

smh

glad prawn
#

Where’s this

floral drum
#

it's spark heapsummary

tardy delta
#

lambda or smth

echo basalt
#

just look at the amount of bytes and byte arrays used in lighting

floral drum
#

anyone wanna date?

echo basalt
#

eh no you smell

floral drum
#

😭

#

ok

#

bro that's not 18M instances, that's 18M packets being sent

#

cri

#

time to track packets!

river oracle
#

Most here would just tell you to use mojang mappings lol

#

Mojang Mappings on top

#

Prob just better off sending the code and waiting who knows

wet breach
obsidian drift
#

I'm actually going insane

#

Why can't I get this remapping thing to work

obsidian drift
#

I've even built BuiuldTools in Java 17

#

The only JDK I have is Java 17

#

And all of my settings are set to Java 17

#

What could I possibly be doing wrong

wet breach
#

tried clearing caches?

#

maybe try clearing the maven cache stuff

floral drum
wet breach
#

so its 18m instances of channefuture then

obsidian drift
wet breach
#

idk how to do it on intelliJ as I don't use it

#

but I am sure there is someone here who does

obsidian drift
#

Maybe my JDK version is too high

wet breach
#

well that was what I was hinting at

obsidian drift
#

I might try Java 16

#

Attempt #1,251

#

If this doesn't work I am pretty stuffed

obsidian drift
#

...

floral drum
obsidian drift
#

I can't build BuildTools with Java 16

#

Okay

#

Back to Java 17

wet breach
floral drum
#

yeah lmaoo

wet breach
#

might want to check what is going on there lol

floral drum
#

ahah

wet breach
#

never really seen that really except maybe some large server

#

that is literally the only thing that is consuming the most for whatever reason, all the rest is within reasonable limits

fluid river
#

where are noobs

#

showme

floral drum
#

except playerinfo amirite

wet breach
floral drum
#

lmao

tardy delta
#

not me owo

floral drum
#

owo

fluid river
#

what's wrong with OutPlayerInfo

floral drum
#

time to track where Teleport is being created from!

tardy delta
#

AWOOOWOO

#

isnt teleport packet for movements too?

floral drum
#

RelMove right?

#

it still shouldn't be 10M

wet breach
tardy delta
#

hmm

#

more than 8 blocks in one time unit or smth?

floral drum
#

1 tick

tardy delta
#

ah i was thinkin about jumpin 8 block far

floral drum
#

ah

mental moon
#

Anyone know how I'd find and cancel a bundle spilling its contents onto the ground after rightclick?

fluid river
#

?

#

bundle

#

oh i see

floral drum
#

Pog found it

fluid river
#

i guess you need to cancel player interact event

#

for rightclick

#

with bundle

mental moon
#

Found out it just uses the PlayerDropItemEvent, one event for every dropped itemstack individually.

Yeah that looks to be the only way.
Thanks

golden turret
#

hey mathematicians