#help-development

1 messages Ā· Page 1656 of 1

wary harness
#

on server start

#

load prices and command to PersistentDataContainer

#

of the items

tame coral
#
if (event.getEntity() instanceof Ageable) {Ageable ageable = (Ageable) event.getEntity()}
eternal oxide
#

If I were you I'd write down everything you want the plugin to do, then break that down into smaller chunks

tame coral
#

And then ageable.isAdult() will work

wary harness
#

or would it make more load

#

on server

#

is it just better to grab info about item from config

eternal oxide
#

That all depends on how exactly you want it to work. If you GUI is not persistant then using PDC would be no good

wary harness
#

well it changes

#

a lot placeholders

#

and other stuff

#

items shuffel

#

and a lot of crape is happenig

#

in background

#

I was just thinking about PersistentDataContainer

#

as an option

quaint mantle
#

@wary harness please help me

wary harness
#

but ok thanks for info

eternal oxide
#

some kind of memory database is probably better

#

as your UI is not a real inventory theres no need for PDC

wary harness
#

for now I have like ItemData class

#

which has all vairables in it and they get loaded

#

on server start

wary harness
fallow sigil
#

High, how is the ping updated and how often ? And is it possible to improve it ? (better refresh)
I'm meaning this one : ((org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer) p).getHandle().ping;

grim ice
#

OO

#

BUT WHY CANT IT BE OVER 1?

#

if im "including myself" then why is it always over 1

#

@tame coral e

tame coral
#

Debug it dude

chrome beacon
#

It can't be empty if it's looping a value

grim ice
#

if im "including myself" then why is it always over 1

eternal night
#

my man, just as a heads up you are adding yourself multiple times to the players list

#

like

grim ice
#

NVM

grim ice
#

it was becuz i had 'break;'

#

i used intellIj find cause thingy

eternal night
#

aight

#

what is this even supposed to do xD

grim ice
#

its just smth i got in my heaad

#

anyways

chrome beacon
#

For each world youre adding each player on the server

grim ice
#

can i ask a weird java question if u dont mind

#

if(players.size() > 1){
players.stream().forEach(hosts -> {
pl.sendMessage("&6p" + hosts);
});
pl.sendMessage("&3are your hosts");
}

chrome beacon
#

You will have more than one of each player

chrome beacon
#

Wait no

#

Anyway your code is a mess

eternal night
#

it is ^

grim ice
#

Yes it lmao

#

it is

chrome beacon
#

What are you trying to do

grim ice
#

im trying to make it better

#

i want to

#

get players from all the server which have

#

the permission 'eventcore.iamhost'

#

and broadcast their name to all players in the commandsender world

#

if its 1 then do a specific message

young knoll
#

I would just use a normal loop if you aren't familiar with streams

grim ice
#

if its over 1 do a specific message

#

if its 0 then stop the command from sending

chrome beacon
#

You are

grim ice
#

anyways anyone that can help me achievve my goal

grim ice
young knoll
#

Loop over all players, if they have the permission add their name to a list, then broadcast the list, then check the list size to see how many hosts there are

grim ice
#

thats exactly waht im doing

#

/ **trying **to do

young knoll
#

So what's the issue

golden turret
grim ice
#

idk it feels like my thing sucks

golden turret
#

i just wanted to add glowing items

grim ice
#

ur internet

#

i mean

#

ur pc

#

is a fucking war machine wtf

eternal night
#

there

young knoll
#

Just add an enchantment and then give the item the hide enchants flag

golden turret
eternal night
#

true that was spoon feeding

#

sorry

young knoll
#

Well I don't think spigot supports adding invalid enchantments with the API

#

You probably need NMS for that

eternal night
#

it is too late for my head

golden turret
#

let me explain

#

i want to add glow to items

#

in 1.8, i can simply add the nbt tag ench

#

with an enpty list

#

but it seems not to work in 1.16

young knoll
#

Correct

#

Blame Mojang

golden turret
#

but

#

i can add invalid enchantments

#

when i try this in the spigot server

#

it doesnt work

wise mesa
#

does World#getChunk use chunk coordinates or block coordinates?

golden turret
chrome beacon
#

Anyway use javadoc

wise mesa
#

sorry meant getChunkAt

grim ice
#

?>paste

wise mesa
#

the javadoc just said coordinates

grim ice
#

?paste

undone axleBOT
chrome beacon
#

The one with two ints are chunk coords iirc

wise mesa
#

ah ok thanks (:

chrome beacon
#

A quick bitshift will get the right coords for you

wise mesa
#

I actually already had chunk coords

chrome beacon
#

Aight

wise mesa
#

so I needed to know if I had to go the other way šŸ˜„

#

thanks so much

golden turret
#

if someone knows how to make glowing items without enchanting them i would appreciate

chrome beacon
#

HideFlag and enchant is the only option

young knoll
#

Or manually editing the NBT to add something into the enchantment array

#

Assuming spigot doesn't try and correct invalid data

chrome beacon
#

It might

golden turret
#

i think this is the problem now

#

any way to block the spigot correction?

young knoll
#

Make a custom jar without that patch

golden turret
#

cool

#

if i simply know were spigot is blocking invalid data

scenic hornet
#

wait is their a template for a gui? since im trying to find or make a plugin that can put items in someones inventory when they join and it has commands added to it

young knoll
#

There are various GUI APIs out there

golden turret
#

is possible to give a fake item using packets?

#

i will give a real stick for example

#

but i want that the client see that as a stone

#

example ^

lost matrix
golden turret
#

as i cant add glow to items (in the way i want)

#

i want to create a fake item

unreal quartz
#

probably the unix timestamp of the expiration date

#

might be in millis

#

it's a date object lol, not a numeric value

lost matrix
quaint mantle
#

@lost matrix

golden turret
lost matrix
#

sigh

lost matrix
golden turret
#

ill add a random enchantment to the fake item and give the hide flag too

quaint mantle
#

how can I make sure that when taking an object in 2 hands, it is used only in 1?
if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {

golden turret
#

but in server-side the item wont have the enchantment and the flag

lost matrix
golden turret
#

hmmmmmm

lost matrix
lost matrix
quaint mantle
#

can I please give an example?

golden turret
#

pdc?

lost matrix
#

PersistentDataContainer

golden turret
#

a

lost matrix
#

What version are you on?

golden turret
#

1.16

lost matrix
#

Good

#

?pdc

golden turret
#

yea

lost matrix
# quaint mantle can I please give an example?
  @EventHandler
  public void onInteract(final PlayerInteractEvent event) {
    final EquipmentSlot eventSlot = event.getHand();
    if (eventSlot == EquipmentSlot.OFF_HAND) {
      // This code is only run in the off hand event
    } else {
      // This code is only run in the main hand event
    }
  }
grim ice
#

#1.8.8Matters

lost matrix
#

lul

grim ice
#

lul

quaint mantle
#

thank you very much

turbid silo
#

Is there a rest api to retrieve downloads for a specific plugin?

lost matrix
lost matrix
turbid silo
#

Ah sick thanks

grim ice
#

spiget

#

LMFAO

#

IM DYING

open perch
#

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String [] args) {

    if(sender instanceof Player) {
        
        //if(command.getName().equalsIgnoreCase("send")) {
        
        if (label.equalsIgnoreCase("send")) {
            sender.sendMessage(ChatColor.GREEN + "Mensagem enviada");
            
        }
    return false;

}
}
#

Unhandled exception executing command 'send' in plugin

#

anyone knows why get this erro? i just started learning today

lost matrix
#

?paste

undone axleBOT
lost matrix
open perch
#

šŸ’©

lost matrix
#

Is this onCommand method in your JavaPlugin class?

#

Anyways. You should return true.

open perch
#

ok

#

im using this

#

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;

#

i“m portuguese so i don“t know much english but thx

lost matrix
#

There is nothing that could throw an exception in your code.

open perch
#

hm i don,t know but the error keeps going

lost matrix
#

Show the error pls

wicked remnant
#
        This method must return a result of type boolean
lost matrix
#

How did you compile this in the first place?

open perch
#

eclipse ide

lost matrix
#

When your code is red and your IDE yells at you then its time to fix your code instead of force compiling it and hoping for the best.

wicked remnant
#
 @Override
 public boolean onCommand(CommandSender sender, Command command, String label, String [] args) {
     if (sender instanceof Player) {
         if (label.equalsIgnoreCase("send")) {
             sender.sendMessage(ChatColor.GREEN + "Mensagem enviada");
         }
         return false;
    }
}
#

as you can see, its borked

#

fix your indentation and you'll find fixing things comes easier

#

the method must still return a boolean when the sender is not an instance of Player

worldly ingot
#

Ctrl + A, Ctrl + I (or Ctrl + Shift + F). Best key combination(s) in Eclipse for beginners

#

That alongside Ctrl + Shift + O for import organization

opal juniper
#

or just Ctrl + C, Ctrl + V

open perch
opal juniper
open perch
grim ice
#

?Pasate

#

?paste

undone axleBOT
grim ice
#

help pls

#

i checked config, its
deathrally:
x: -7.0
y: 70.0
z: 355.0

hexed hatch
#
            double x = getConfig().getDouble("deathrally.x");
            double y = getConfig().getDouble("deathrally.u");
            double z = getConfig().getDouble("deathrally.z");
#

tell me what the problem is

#

examine this, and you tell me why it does that

grim ice
#

yes ik theres smth with4

#

.u

#

WAIT

#

FUCK

#

I thought y: is u too

#

ok

#

thank u

#

im a fucking bozo

hexed hatch
#

lol it happens

grim ice
#

i might as well go commit suicide im useless

inland scaffold
#

com/nik/plugin/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0

#

how do I fix this

opal juniper
#

upgrade java

inland scaffold
#

I did update it

#

reinstalled it

opal juniper
#

what version?

wicked remnant
#

Youve compiled your code on a higher version than the runtime that the server is running on supports

#

52 is java 8

#

60 is java 16

#

i.e. youre running your server with java8

#

but the plugin requires java16

inland scaffold
opal juniper
#

it’s not

#

as konica said

#

you are running it with java 8

#

type

#

java -version

#

in the cmd prompt

inland scaffold
#

1.8.0

opal juniper
#

that’s java 8

#

you need java 16

inland scaffold
#

what website should I get it from

opal juniper
#

?java16

undone axleBOT
golden turret
#

hello

inland scaffold
#

ty

golden turret
#

how do i replace the entity in the PacketPlayOutSpawnEntity

#

im using protocollib

#

?paste

undone axleBOT
golden turret
#

tried this

#

basically i cancel the first packet

#

and send other

tame coral
#

Modify the packet

golden turret
#

how would i do this for entities

tame coral
inland scaffold
tame coral
#

Modify the Type field

#

i'll modify what entity is spawned

golden turret
#

im trying to replace an entity item

#

actually i just want to replace the item

tame coral
#

You want to replace the material or the entity ?

golden turret
#

i think is the material

#

any thing related to the item entity

#

like, add enchantments

tame coral
#

You don't have to do this with packets

golden turret
#

but i need this client-side only

tame coral
#

Unless you want it to be different for each client

tame coral
hardy pivot
#

How i check if the args[0] is a player name?

tame coral
#

because items aren't spawned

#

They are thrown by players/entities

#

Or summoned through commands but that's something else

golden turret
#

hm

#

so there is a specific packet for this?

tame coral
golden turret
#

but i want anything that changes the dropped/spawned item client-side only

tame coral
#

Yeah

#

Oh my bad, it's actually spawn entity

#

So check if it's an item (id 41)

#

Then i'll leave you to it, from now here you should be able to figure it out @golden turret

golden turret
#

ok thank you

tame coral
#

You might want to use packetwrapper

slim bough
#

how do player attributes work

#

like what is generic_attack_damage

#

what is it's default value

#

and how does it increase

proud basin
#

Is scheduleSyncDelayedTask sync?

inland scaffold
#

@opal juniper I installed it but I did java -version in cmd and it still showed 1.8

#

nvm

#

Yay its fixed

torn shuttle
#

does anyone happen to have a handy stacktrace creator utility method just lying around there just so I don't have to write one myself?

inland scaffold
#

how come its underlined?

#
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    
        if(cmd.getName().equals("hello")) {
            if (sender instanceof Player) {
                Player player = (Player) sender;
                
                player.sendMessage(ChatColor.DARK_RED + "Hello" + ChatColor.DARK_GREEN + player.getName() + "! Your health has been healed.");
                player.setHealth(20.0);
            } else {
                System.out.println("You cannot use this command through console!");
            }
            
            
        }
    
        return false;
    }

how come when I run !hello nothing appears?

undone turtle
#

can someone help me, i made a spawn area with world guard and i cant run any commands anymore without operator

undone turtle
quartz pike
#

Remove the plugins that are giving problems and start over

fluid cypress
#

is there a way to get a world "in sync" again with its region files, or something like that? i mean: If you delete a region file, everything works normally, you can still build in that region, but its never saved to disk again, and when you restart the server, everything will be lost in that region. is there any way to make the server believe that those chunks arent generated yet, as it does after restarting the server and seeing that those files dont exist?

#

maybe a method like the deprecated World#regenerateChunk, but that instead of regenerating it, it just "marks" it as not generated, so that when its loaded the next time, its generated and saved to disk, or something like that

wary harness
#

Is it possible to hide specific enchant of item

#

Not all of them with flag

hexed hatch
#

No

#

It's all or nothing

wary harness
#

I want to keep enchant and change color or there lore

#

Is that possible

hexed hatch
#

Nope

wary harness
#

Dam

hexed hatch
#

Only solution is to hide enchantments and apply lore for all the enchantments

wary harness
#

Dam

#

Don't like that xd

#

A lot of work

#

But look like there is no other option

proud basin
inland scaffold
#

I meant to say /hello

quasi stratus
#

I've used the following code to freeze a player ā¤µļø but would like to reset it soon after. Does anyone know the default values?java player.setFlySpeed(0); player.setWalkSpeed(0);

lavish hemlock
#

is there a player.getFlySpeed()?

#

if so, then you can just store the old speed and then set it to the stored speed when resetting

quasi stratus
#

there is but say the player was already affected and I may be new to plugins and have no idea how to fix it.

inland scaffold
#
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    
        if(cmd.getName().equals("hello")) {
            if (sender instanceof Player) {
                Player player = (Player) sender;
                
                player.sendMessage(ChatColor.DARK_RED + "Hello" + ChatColor.DARK_GREEN + player.getName() + "! Your health has been healed.");
                player.setHealth(20.0);
            } else {
                System.out.println("You cannot use this command through console!");
            }
            
            
        }
    
        return false;
    }

how come when I run /hello nothing appears?

quartz pike
#

the way i use it would be label.equals("hello")

worldly ingot
#

no. cmd.getName() is the preferred way

#

otherwise you have to compare the label against every single alias

quartz pike
#

okok

#

thx

worldly ingot
#

though even then, you don't have to check that if you set an executor

#

if your command isn't running, you haven't registered it in the plugin.yml or set the executor if it's in a class outside of your javaplugin class

inland scaffold
#
main: com.nik.niksplugin.Main
name: NiksPlugin
description: Nik's First Plugin
version: 1.0
commands:
  hello:
    aliases: [hi, sup]
    description: Says Hello and heals you.
#

thats my plugin.yml

worldly ingot
#

Unrelated note, don't assume that the player's max health is 20.0. Set it to player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()

quasi stratus
worldly ingot
#

where is your executor?

#

the class that extends JavaPlugin? Or another class that implements CommandExecutor?

inland scaffold
#
package com.nik.niksplugin;

import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.material.Command;
import org.bukkit.plugin.java.JavaPlugin;

import net.md_5.bungee.api.ChatColor;

public class Main extends JavaPlugin {
    
    @Override
    public void onEnable() {
        System.out.println("Nik's Plugin has loaded!");
    }
    
    @Override
    public void onDisable() {
        
    }
    
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    
        if(cmd.getName().equals("hello")) {
            if (sender instanceof Player) {
                Player player = (Player) sender;
                
                player.sendMessage(ChatColor.DARK_RED + "Hello" + ChatColor.DARK_GREEN + player.getName() + "! Your health has been healed.");
                player.setHealth(20.0);
            } else {
                System.out.println("You cannot use this command through console!");
            }
            
            
        }
    
        return false;
    }
    
}
quartz pike
#

it's not like that

#

the onCommand method is from CommandExecutor

#

you can't just write it out

#

To fix it : put on your onEnable something like this

this.getCommand("hello").setExecutor(new HelloClass());

#

and then your Hello class willl be

public class HelloClass implements CommandExecutor {

onCommand(...){}

}

inland scaffold
#

but on the tutorial it was like how I had it

lavish hemlock
#

what fucking tutorial are you watching

quartz pike
quartz pike
inland scaffold
lavish hemlock
#

it's literally just an informational safeguard :p

quartz pike
#

that method is never running

#

putting an override would help i'm almost sure

golden turret
#

since i cant edit the entity

#

the only thing the spawn packet stores is the entity id

#

in the setslot packet i can edit the itemstack using reflection

#

any help here pls ^

#

trying to edit an entity client-side only in the PacketPlayOutSpawnEntity

#

specifcally an item

worldly ingot
# lavish hemlock ~~what fucking tutorial are you watching~~

JavaPlugin implements CommandExecutor already. All of a plugin's commands default to the JavaPlugin executor unless otherwise set. It's ill-advised to write commands in the JavaPlugin class but if you're writing a quick plugin, especially for beginners, it's fine.

#

And yes, always annotate your methods with @Override, it's a compiler hint and your IDE will complain to you if a method signature is incorrect. Helps prevent a lot of issues

#

With that being said, if the code you wrote above isn't working, your plugin probably isn't loading due to some error on startup

worldly ingot
golden turret
#

just find a thread in spigot about that lmao

#

here he used to change the nametag

#

following the wiki.vg, i need to edit the 8th index which is a Slot

#

what i put inside here

inland scaffold
#

eh should I develop a plugin, or a packet spoofer for prison servers to get lots of igm

quaint mantle
#

if I join a server and its packet spoofed im leaving

slim bough
#

how tf they do this

#

with plugins

#

is it possible to replicate the solid beams in that video without a texturepack

sleek pond
#

is there an event for flowing liquids?

#

ahhh

#

block from to event

quaint mantle
narrow vessel
#

i made something similar but way more reactive to music

narrow vessel
#

you can use the default guardian beam texture but you cant make it solid

quaint mantle
#

hey

#

checking if an entity.hasGravity(), should return false

#

if they dont have gravity... right?

hexed hatch
#

That's the intent, yes

quaint mantle
#

ok

#

just making sure im not crazy

dry forum
#

how could i multiply a string/integer by 20?

quaint mantle
dry forum
#

how would i multiply a integer by 20?

quaint mantle
#

do you know

#

the most basic of any programming lnaguage

dry forum
#

mhm

quaint mantle
#

wdym

#

val * 20

#

this channel makes me wanna kms

#

?learnjava @dry forum

undone axleBOT
dry forum
#

i already know it,
Operator '*' cannot be applied to 'java.lang.String', 'int'

quaint mantle
#

Obviously not learn java

#

like a 30 minute course at least

#

please

dry forum
#

"help-development"

#

how is this help

quaint mantle
#

Do you wanna repeat the string or just multiply a number

dry forum
#

just multiply a string by 20

quaint mantle
#
  1. Convert the string to an int
  2. Multiply it
#
  1. Google questions next time
    Integer.parseInt(str) * 20
#

this is the most basic of knowledge and I advise you to learn basics before implementing an Api

urban crest
#

can someone make me a simple plugin that makes people spawn with items on there first time joining

worldly ingot
#

Question also just wasn't really clear. Could also have wanted "Hello".repeat(20)

worldly ingot
urban crest
copper yoke
urban crest
#

well is there a way on it to completely disable kits and only give items to people join the server for the first time

copper yoke
#

I don't use it, I use essentials kits for my first time players. But one would assume you could just remove the default kits already in the config and set the first join kit to an obnoxious time limit if there isn't an option for one time use lol.

#

Could also just....not give them the perms to not use any of them. šŸ¤·ā€ā™€ļø

stark marlin
#

Would it be safe to change the worldborder async or could it cause issues?

stark marlin
#

Have bad experience doing some world related stuff async, so thought it'd be better to ask before having potential issues šŸ˜‚

narrow vessel
#

worldborders are async already arent they

#

its how datap*ck users use real-time over ticks

stark marlin
#

Ah right, makes sense

tidal skiff
#

so how would i go about making a hypixel skyblock-esque talisman that gives the player a buff? i have the buff i just dont know how to check if the player has the item in their inventory

quaint mantle
#

sorry wrong one

#

valueOf

#

Integer.valueOf

#

should i be using parseInt instead? or is it the same thing

narrow vessel
#

parseInt sounds better to me atleast

quaint mantle
quaint mantle
#

i havent had any issues

#

so i guess i'll start using parseInt?

#

does int extend Integer or something

tidal skiff
#

how do i check if a player has an item in the inventory

#

a custom item

#

i tried looping through their inventory and checking for every item if it has the custom meta but that didnt work

quaint mantle
tidal skiff
#

i tried that

#

lemme retry it

proven whale
#

Is there someone online?I have troubles in plugins.I want to ask if there is a way to make the command support target selector.

waxen plinth
#

@proven whale

#

šŸ‘

proven whale
#

Thank you very much! I find this function for almost one day!

stark marlin
#

I see that Bukkit.getOfflinePlayer() is deprecated. Is there a better way nowadays to get an OfflinePlayer object? I want to get it by searching for the player name in the chat, so I don't want to use UUID

waxen plinth
#

It's deprecated because it issues synchronous web requests if the player is not cached

#

The only good way around it is to load every offline player into a big HashMap on startup and reference that

#

My library has a class for that, let me find it

stark marlin
#

So it doesn't mean it will be removed in the near future?

waxen plinth
stark marlin
#

Alright, thank you!

#

Well I'm using paper but I can't rely on their methods because I'm going to release the plugin so I'll have to do the workaround

proven whale
#

I ran my command in command block.It works! I used "sender.sendMessage",However,there's no text in command block's last output?How to fix?

weary lintel
#

Does anyone know or know how to make a custom mob plugin

#

that takes vanilla mobs

#

and add texture packs to make a custom mob

#

/custom mobs

quaint mantle
#

paper/
core/

#

then an interface UserManager

chrome beacon
quaint mantle
#

or add the armor to the entity^

chrome beacon
#

Can't

quaint mantle
#

k

chrome beacon
#

Armor does not support custom models

quaint mantle
#

minecraft development expandability is shit

weary lintel
chrome beacon
undone axleBOT
weary lintel
#

I just thought you guys might know a plugin or know how to make one

#

?services

undone axleBOT
chrome beacon
quaint mantle
#

mhm

chrome beacon
#

I've heard that Mojang might be implementing a way for JSON entity models

#

Not sure if this is true or not

#

We'll see in 1.18

hexed hatch
#

Where’d you hear that?

chrome beacon
#

Forge discord. They've noted that a system to make it possible is already made. JSON parser is missing though

hexed hatch
#

Interesting

#

I’d love to see it

#

JSON armor models would be cool too

gloomy goblet
#
public static <T> void setField2(Class<T> clazz, String fieldName, T instance, Object fieldValue, boolean removeFinalModifier)
    throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
    {
        Field field = clazz.getDeclaredField(fieldName);
        field.setAccessible(true);
        
        if(removeFinalModifier) {
            Field modifiersField = Field.class.getDeclaredField("modifiers");
            modifiersField.setAccessible(true);
            modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
        }
        
        field.set(instance, fieldValue);
    }
#

i made a function to hopefully cleanup the reflection abuse mess in the above image, can someone check to make sure the function looks right (this is actually the first time ive made a function with variable type)

chrome beacon
#

Uh what are you trying to do

gloomy goblet
#

just cleanup some code i have that injects custom material into bukkit

chrome beacon
#

Thought so

#

Why though

gloomy goblet
#

porting navidk0's carbon to 1.16 and turning it into an api i can use for later

chrome beacon
#

That code will break in 1.17 and Java 16

#

Since it does some bad reflection

gloomy goblet
#

java 16 changes reflection a lot?

chrome beacon
#

Yes. It's a lot stricter now

#

There are startup flags to disable that but would be bad to force users

hexed hatch
#

I had no idea you could inject custom materials to Bukkit. Is it even stable?

chrome beacon
#

You can always do bad stuff with Reflections and such

gloomy goblet
chrome beacon
#

I mean if you really wanted you could get Mixins running

chrome beacon
#

Use a tag or simillar to find yours

hexed hatch
#

In what situation would you want to add custom materials though

gloomy goblet
#

custom items can be done without nms but i want to also get into custom blocks and even oregen later

#

my end goal is to have "modded features" that "work" on both vanilla clients (with item remap) and forge clients

chrome beacon
#

I would just use a Forge server as a base then

#

It's easier

gloomy goblet
#

ok

proven whale
#

I ran my command in command block.It works! I used "sender.sendMessage",However,there's no text in command block's last output?How to fix?

waxen plinth
#

Why are you using command blocks

crude charm
#

ikr lmfao

quaint mantle
proven whale
#

I thought about the combination of command block and plugin. I don't need it if I can't output it

waxen plinth
#

You should avoid command blocks at all costs

quaint mantle
#

How can I send messages in sequences when interacting with a mob?

#

For example:

#

First click: Hey

#

Second click: Listen

#

Three click: Hello

#

and return for First

spring river
#

With a custom entity whoes have the uuid of the player and the number of the next message

#

You can put each instance of this object on an Map<UUID, Custom Object>

proven whale
quaint mantle
#

Is this a bad way to check a mob's date?

quaint mantle
hybrid spoke
#

the baddest

quaint mantle
hybrid spoke
#

switch, loop, extract method refactoring

quaint mantle
#

switch not works with getPersistentDataContainer

#

šŸ˜•

hybrid spoke
#

but should with #has or not?

quaint mantle
hybrid spoke
#

so either make your own method to make it switch compatible or just loop over

quaint mantle
#

I have no idea how to think about running this loop, could you help me?

spring river
spring river
#

For the problem of Dimensions

hybrid spoke
#

what type are these objects of?

#

archer, stableman...

#

and is the citizenManager a custom one or from a public api?

quaint mantle
#

😩

hybrid spoke
#

this

#

uhm

#

is bad

quaint mantle
#

šŸ˜•

hybrid spoke
#

refactor your code

#

the namings

quaint mantle
#

I'm looking for a way to use stationary and clickable mobs like npc.

hybrid spoke
#

yeah but no

#

look up the java naming conventions, dont create a new instance of an object each method call, having a getter for everything isnt mostly the right way. here you could go by what @spring river said. making a class for each type which inherit from a superclass you can use for whatever you need

quaint mantle
#

Developing an npc plugin is too complex.

#

I think I'll choose to use npclib instead of citizens because it's lighter.

stark marlin
#

Do I need to loop every block in height as well?

#

It appeas that way.. takes a lot of time to complete this task and it would be dangerous to do it async, right?

eternal oxide
#

don;t do it all in one tick

#

run it sync but a repeating task changing x number of blocks each time, until its done

stark marlin
#

Yeah that's probably the best idea, thanks šŸ‘

grim ice
#

how do i organize my code? I have a command with 3 args, each arg is sort of big

hybrid spoke
grim ice
#

ok when i finish it ill do tht

tidal skiff
#

how do i get the item in an entities main hand (eg a skeleton or a zombie)

#

without specifically casting to a skeleton or zombie

hybrid spoke
#

LivingEntity#getEquipment()

tidal skiff
#

thx

stark marlin
eternal night
#

do you actually need the taskId outside of the runnable ?

eternal oxide
#

Use runTaskTimer so you can cancel it inside the task when you are finished

vale ember
#

hey how to set block facing direction of blocks like chest?

eternal oxide
#

You only need to pass the task either a chunk coordinate or two opposing locations.

stark marlin
#

Chunk coordinate?

#

Is it possible to set the biome of an entire chunk?

young knoll
#

Sure, use a loop

tidal skiff
#

how do i check if an item just

#

has a name?

lunar python
#

check if the display name in the item meta isn't empty

tidal skiff
#

actually wait nvm

#

wait nvm nvm

eternal night
tidal skiff
#

cuz ((LivingEntity) e.getEntity()).getEquipment().getItemInHand().getItemMeta().getDisplayName() == null doesnt work

#

oh

#

hasdisplayname

#

nvm

eternal night
#

not tho that a lot in there can be null

#

and might cause a null pointer exception

tidal skiff
#

ive put checks

plain scroll
#

how can i change the weather?

stark marlin
#

Bukkit.getWorld().setWeather()

#

or something similar

plain scroll
#

ty lol

stark marlin
#

setStorm it was

plain scroll
#

wait i forgot how to get a world lol

stark marlin
#

Bukkit.getWorld("the world name")

vale ember
#

how can i set blocks facing direction if i dont know what block it is

lunar python
#

wdym

vale ember
#

like chest facing direction

#

where does it front facing

#

or dropper

lunar python
#

depends on your version

vale ember
#

1.17.1 newest

lunar python
#

ah

#

i only know for 1.12-

lunar python
# vale ember 1.17.1 newest

i found this```java
BlockState state = block.getState();
PistonBaseMaterial piston = (PistonBaseMaterial)state.getData();

piston.setFacingDirection(BlockFace.NORTH);
piston.setFacingDirection(BlockFace.SOUTH);
piston.setFacingDirection(BlockFace.WEST);
piston.setFacingDirection(BlockFace.EAST);
piston.setFacingDirection(BlockFace.UP);
piston.setFacingDirection(BlockFace.DOWN);

state.setData(piston);
state.update();```

#

well this is for pistons

#

but it will prob work for chests and droppers

#

(except you don't case it to a PistonBaseMaterial)

vale ember
#

nah

#

not works

toxic mesa
#

What's the best way to detect a player having a lagspike? Just using ping or is there a better way?

lunar python
lunar python
#

but you can also send keepalive packets if you want to dc them

eternal oxide
#

There are too many causes of lag spikes for a server to detect a lagging player easily

toxic mesa
#

I don't necessarily need an easy way but a good way šŸ™ƒ

eternal oxide
#

To set a chest facing, cast the BlockData to Directional and setfacing

lunar python
#

I've been trying to make a fork of Spigot to try to find an issue with beds and fix it (I'm not adding it to the issue tracker right now, as it might be my fault) but when importing Maven dependencies, it always says: Cannot resolve org.spigotmc:minecraft-server:1.17.1-R0.1-SNAPSHOT
If this is just the normal Minecraft server, I can add it to my .m2/repository but I'm not sure it's just that.
If it isn't, how can I fix this problem?

stone sinew
#

?learnjava I'm just copying these links this isn't telling anyone to learn java...

undone axleBOT
grim ice
#

oh god

#

im gonna start making a teams plugin

#

IN 1.8.8

#

NO PDCS

#

this is prob gonna be my biggest project

vale ember
grim ice
#

with over 20 commands

#

?paste

undone axleBOT
grim ice
#

its for 1.13, just hope it will work for 1.17

lost matrix
lost matrix
grim ice
#

tbh smile and elgar are top 2 most helpful ppl here

vale ember
lunar python
grim ice
#

always take his notices prioritized, he's one of the best out there ;)

lunar python
#

i'll try running it again

lost matrix
vale ember
lost matrix
lost matrix
vale ember
#

dont work on echest

lost matrix
#
  public void rotateBlock(final Block block, final BlockFace face) {
    final BlockData data = block.getBlockData();
    if (data instanceof Directional directional) {
      if (directional.getFaces().contains(face)) {
        directional.setFacing(face);
        block.setBlockData(directional);
      }
    }
  }
lost matrix
vale ember
#

1.17.1

#

and blockface set to west

lost matrix
#

Your IDE should tell you that what you are using is deprecated, right?

vale ember
#

nah

lost matrix
#

Anyways you imported the wrong Directional

vale ember
#

nothing is deprecated

#

import org.bukkit.material.Directional;

#

isn't this right?

lost matrix
#

org.bukkit.block.data.Directional

vale ember
lost matrix
toxic mesa
#

Alright ty

lost matrix
#

Did you add the jitpack repo?

#

Try reopening your IDE or just compile once. Sometimes the maven messages are weird.

#

This doesnt match up with the pom youve sent earlier.

#

Show your pom pls

#

Makes no sense. Do you manually add external jars to the project?

#

Did you manually add external jars to the project?

#

Because if you do you can throw your entire pom in the trash and not use maven at all.
How do you compile the project?

#

Does that build an artifact?

#

Or does that start a maven cycle

#

You are mixing a maven project and manual dependency management. This will break everything everywhere.

tardy delta
#

kaboom again

lost matrix
#

This is how you compile a maven project if you are a beginner: @quaint mantle

#

But if you have some bits and pieces from manually tinkering with your dependencies then you might be better off creating a new clean project.
How much code did you write so far?

#

Then first thing youll do now is getting the minecraft dev plugin for IntelliJ

grim ice
#

so um

#

this migh be kinda complicated be

#

but

#

Player assigned = Bukkit.getPlayer(args[1]);
Player teamLeader = Bukkit.getPlayer(args[2]);
boolean assignedIsInTeam;
for(String childSection : plugin.getConfig().getConfigurationSection("Teams").getKeys(true)) {
if(childSection.equalsIgnoreCase(assigned.getName())){
plugin.getConfig().set();
}

#

i wanna check if a player (assigned) name exists under Teams

#

and if it is i wanna remove it

lost matrix
#

Then create a new spigot project, add your dependencies and try a clean mvn clean install with one dependency at a time.

lost matrix
#

And during runtime you use the classes

grim ice
#

why

lavish hemlock
#

performance

#

it's faster to use objects in memory than parse the same file over and over

grim ice
#

onDisable i clear config either way

#

lol

#

anyways

#

@lost matrix can you answer my main question

quaint mantle
#

Just set the section to null or something if you want to remove it

grim ice
#

YEAH BUT

#

look

#

what i wanna do

#

is

#

look for a string in config

#

and remove the line it exists in entirely

lost matrix
#

If you properly installed maven then you can just write this into the terminal

grim ice
#

7smile do u know smth i can do

#

i searched all forums theres nothing about that

lost matrix
#

Yes. Dont tinker with FileConfigurations but structure your data in classes and data structures.

grim ice
#

bruh

#

u want me to make 50 lists

#

with over 3 elements per list

lost matrix
#

Then use the buttons on the right for now. It uses the maven installation which is bundled with IntelliJ

quaint mantle
lost matrix
grim ice
#

i have 0 clue

quaint mantle
#

And that’s better then writing and reading from config

#

So often

grim ice
#

WHAT

#

ok

#

hwo do i even do it

quaint mantle
#

Bruh

lost matrix
#

Give me some mins. ill write you an example.

grim ice
#

thank you

quaint mantle
#

Load from config into some holder

grim ice
#

i hate 1.8.8

quaint mantle
#

It’s that easy

grim ice
#

i agree, ancient softwares are ass

quaint mantle
#

1.8 is probably the least aids imo

grim ice
#

BRO

#

THERE AARENT EVEN EPRSISTENT DATA CONTAINER

#

FENAWEOFUBAGPAG

quaint mantle
#

There’s nbt still what?

grim ice
#

I used to use pdcs everyday mannnn

#

yeah but

#

i dont like it

quaint mantle
#

Nbts are easy anyways

grim ice
quaint mantle
tardy delta
#

did you download the jars?

lost matrix
#

add
<scope>provided</scope>
to your SkriptLang dependency

quiet ice
#

Well the enginecraft (or however they are called) repo is missing

lost matrix
#

Also worldguard 6.2 is too old for 1.16

#

For now remove the SkriptLang dependency and see if it even compiles then.

grim ice
#

lol smile did u give up

quiet ice
#

You are missing wg's repo anyways

lost matrix
#

Try adding the repo for worldguard:

    <repository>
        <id>sk89q-repo</id>
        <url>https://maven.enginehub.org/repo/</url>
    </repository>
#

Also the artifactId should be like this:

    <dependency>
        <groupId>com.sk89q.worldguard</groupId>
        <artifactId>worldguard-bukkit</artifactId>
        <version>VERSION</version>
        <scope>provided</scope>
    </dependency>
lost matrix
#

What are you trying to do? Write an addon for skript?

tough venture
#

Where can I buy MySQL ?

lost matrix
tough venture
#

for MySQL

quaint mantle
#

hi guys quick question incase anyone can help me on the fly
what is the 1.17 equivalent of goalSelector and targetSelector in nms?

lost matrix
vale ember
#

why does armorstand.teleport(Location) not works?

lost matrix
quaint mantle
vale ember
lost matrix
quaint mantle
#

what would the equivalent be then or how should i go about it

lost matrix
vale ember
lost matrix
# vale ember no

Is it an actual ArmorStand that was spawned or is it spawned with packets?

lost matrix
vale ember
# lost matrix Then teleporting works as long as the Location is valid. Send more code pls.

i am sure that location is valid cuz when i spawn it in same location its working but when spawning on 0, 0, 0 and teleporting to same its not working, here is some code

            ArmorStand armorStand = CustomStand.spawn(new Location(location.getWorld(), 0, 0, 0), "Test");
            armorStand.setVisible(false);
            armorStand.teleport(createLocation(location.clone().add(0, 5 * Math.sin(Math.toRadians(i * 40)), 0),
                    5 * Math.cos(Math.toRadians(i * 40))));

// custom stand.spawn
    public static ArmorStand spawn(Location location, String name) {
        ArmorStand armorStand = (ArmorStand) Objects.requireNonNull(
                location.getWorld()).spawnEntity(location, EntityType.ARMOR_STAND);
        armorStand.setCustomName(ChatColor.translateAlternateColorCodes('&', name));
        armorStand.setCustomNameVisible(true);
        armorStand.setGravity(false);
        armorStand.setVisible(true);
        armorStand.setCanPickupItems(false);

        return armorStand;
    }
// createLocation
    private Location createLocation(Location location, double right) {
        Location resultLocation = location.clone();

        switch (blockFace) {
            case WEST -> resultLocation.add(0, 0, right);
            case EAST -> resultLocation.add(0, 0, -right);
            case NORTH -> resultLocation.add(right, 0, 0);
            case SOUTH -> resultLocation.add(-right, 0, 0);
        }

        return resultLocation;
    }
lost matrix
#

or 1.0 * i in your case

vale ember
lost matrix
#

Should be a long line then

#

setGravity(false); results in weird behavior regarding movement and teleportation. Try commenting that out for now.

stone sinew
#

I just realized in CraftServer.createWorld(String) I don't see it checking for settings from the world file? So how does it know the world already has generated data?

lost matrix
grim ice
#

smile u there

lost matrix
#

Yes

lost matrix
#

Too late. Ill give you the simpler approach now.

grim ice
#

o ok

stone sinew
lost matrix
#

Here are some lines you could follow: @stone sinew

#

There are literally hundreds of calls down there.

grim ice
#

o

#

wait nvm thats for yappery

vale ember
#

i checked, armor stands being spawned and if i never disable their gravity they getting teleported and falling down but i need to disable their gravity what to do?

lost matrix
vale ember
lost matrix
#

An armorstand that should not be ticked. No interaction, no gravity, nothing.

vale ember
stone sinew
quaint mantle
#

did they remove negative slime sizes in 1.17?

rigid hazel
#

Before teleporting to spawn and back to guild:

#
[15:25:33 INFO]: [CCRP] Triggered
[15:25:33 INFO]: [CCRP] Triggered1
[15:25:33 INFO]: [CCRP] Triggered2
#

After teleporting to spawn and back to guild:

#
[15:25:33 INFO]: [CCRP] Triggered
[15:25:33 INFO]: [CCRP] Triggered1
[15:25:33 INFO]: [CCRP] Triggered2
#

Why is this happening?! This doesn't make any sense to me. Why is the menu after teleporting to spawn and back there, the beacon menu?

#

@lost matrix Can you help please? I saw, that you handled a similiar problem before.

#

Debug:

#
[15:25:33 INFO]: [CCRP] Triggered
[15:25:33 INFO]: [CCRP] Triggered1
[15:25:33 INFO]: [CCRP] Triggered2
eternal oxide
vale ember
#

when i spawning armor stand and setting it's visiblity to false theres some ticks when it is visible to player, is there a way to fix this (i know that this is not bug)?

rigid hazel
eternal oxide
#

it will be VERY rare for a spawn Location to precisely match a Block Location

lost matrix
quaint mantle
#

does anyone know how to change slime sizes to -1 in 1.17 or has that been removed completely? if so whats the new norm for armour stand position manipulation

eternal oxide
lost matrix
#

Check equals on the block of the spawn location

eternal oxide
#

You will see they differ

rigid hazel
lost matrix
#

I didnt read any code yet to be honest. Lets see what you did there.

rigid hazel
eternal oxide
#

If you expect that to be false, whats your issue? You code runs the menu beacon if that is false.

rigid hazel
#

Is the beacon menu is overwriting my gui?

grim ice
#

o

lost matrix
#

Beacon implements PersistentDataHolder.
Just write a system that checks the PDC of the block and open the GUI for the key thats in the PDC.

grim ice
#

ty smile

lost matrix
gleaming grove
#

it is possible to get texturepack from google drive by player.setTexturePack() ?

lost matrix
grim ice
rigid hazel
#

You meant that @lost matrix?

#

beacon.getPersistentDataContainer().set(NamespacedKey.fromString("guild"), PersistentDataType.STRING, "guild");

gleaming grove
#

hmm so why m i getting this error?

rigid hazel
opal juniper
#

what is the code you are using? @gleaming grove

grim ice
#

but cant u just do
for(Material m : Materials.value()){
config.set(m.getName(), 1);
}

#

:D

rigid hazel
#

Please go to help-server @gleaming grove

grim ice
#

it is

#

wtfrick u saying, it is

rigid hazel
#

A resource pack error?

lost matrix
rigid hazel
#

Are you developing resource packs?

grim ice
gleaming grove
grim ice
#

is still coding

rigid hazel
#

For sure.

#

Whole Spigot is coding.

quaint mantle
#

can anyone help me 😭

gleaming grove
grim ice
quaint mantle
#

my nms code isnt working im not sure how to fix

#

haha

grim ice
#

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

rigid hazel
quaint mantle
#

oh...

#

im so tired and ive been refactoring 1.17 all day

#

left the hardest till last my bad..

grim ice
#

send ur code

quaint mantle
#

    public NMSSlime(Location loc, int size) {
        super(EntityTypes.aD, ((CraftWorld) loc.getWorld()).getHandle());

        WorldServer craftWorld = ((CraftWorld) loc.getWorld()).getHandle();
        this.setPosition(loc.getX(), loc.getY(), loc.getZ());
        this.setSize(size);
        craftWorld.addEntity(this);

    }

    public void setSize(int size){
        this.bK = size;
        this.updateSize();
    }

}```
grim ice
#

but i cant help just ask some1 else Shrug

quaint mantle
#

trying to spawn this

#

basically i was just spawning a slime in prior using spigot's api, and setting the size to -1, -2, etc

#

and now in 1.17 it doesnt do that so i my holograms dont work properly

#

if theres another solution to holograms or another way to fix slimes id like to know

lost matrix
#

Holograms are usually done with packet based ArmorStands.

vale ember
#

anyone please help wth armor stand with no gravity not being teleported via armorstand.teleport?

quaint mantle
lost matrix
quaint mantle
#

i need the slimes to adjust where the holograms are at at all times

vale ember
quaint mantle
#
        int j = MathHelper.clamp(i, 1, 127);
        this.Y.set(bU, j);
        this.ah();
        this.updateSize();
        this.getAttributeInstance(GenericAttributes.a).setValue((double)(j * j));
        this.getAttributeInstance(GenericAttributes.d).setValue((double)(0.2F + 0.1F * (float)j));
        this.getAttributeInstance(GenericAttributes.f).setValue((double)j);
        if (flag) {
            this.setHealth(this.getMaxHealth());
        }

        this.bK = j;
    }```
this is the current NMS code for setting slime sizes, it looks like theres a check between 1 and 127? so i made my own update method but to no prevail
lost matrix
quaint mantle
#

basically a lightweight way to handle them

#

i also worked around their collision, issue is i cant spawn them at the correct size anymore 😦

lost matrix
#

Ok good. Because a multi line systems should be done using packet based entities which are mounted on the target

quaint mantle
#

if i do this however it is too tall/too small so thats why i need the slimes to adjust sizes

#

it gives me more options

#

unless im understanding the whole nms hologram thing wrong

lost matrix
#

Did you just extend the NMS slime and overwritten the collide method?

torpid matrix
#

I tried to edit a plugin but I got this error

quaint mantle
#

i did not overwrite the collide method

#

    public NMSSlime(Location loc, int size) {
        super(EntityTypes.aD, ((CraftWorld) loc.getWorld()).getHandle());

        WorldServer craftWorld = ((CraftWorld) loc.getWorld()).getHandle();
        this.setPosition(loc.getX(), loc.getY(), loc.getZ());
        this.changeSize(size);
        craftWorld.addEntity(this);

    }

    public void changeSize(int size){
        this.bK = size;
        this.updateSize();
    }

}```
#

this is my whole NMSSLime class

#

to be honest im not an expert in NMS so i may have messed things up. 1.16 made things very easy, have i perhaps missed something?

lost matrix
# quaint mantle to be honest im not an expert in NMS so i may have messed things up. 1.16 made t...

There are multiple things you could do to make this slime more feasible for such a use case.
For one you should disable its AI. Then you should overwrite the collide method and prevent it from colliding with any entity.
If you want to use deobfuscated fields and methods then you should read how to set that up here:
https://www.spigotmc.org/threads/spigot-bungeecord-1-17-1-17-1.510208/

Under the section NMS

quaint mantle
#

ill read through this thanks

lost matrix
quaint mantle
#

but the issue still stands that i believe they removed negative slimes

torpid matrix
#

IDE

#

I used the github source code to make a fork and changed it

#

then cloned it

#

Exported it to a jar

#

Realised I didnt have the yml files

vale ember
lost matrix
# quaint mantle ```public class NMSSlime extends EntitySlime { public NMSSlime(Location loc...

Overwrite the the method

  @Override
  public void setSize(int size, boolean heal) {
    int j = MathHelper.clamp(size, 1, 127);
    super.Y.set(bU, j);
    this.ah();
    this.updateSize();
    this.getAttributeInstance(GenericAttributes.a).setValue((double)(j * j));
    this.getAttributeInstance(GenericAttributes.d).setValue((double)(0.2F + 0.1F * (float)j));
    this.getAttributeInstance(GenericAttributes.f).setValue((double)j);
    if (heal) {
      this.setHealth(this.getMaxHealth());
    }

    super.bK = j;
  }

And edit the first line to not clamp the value. Maybe that helps.

torpid matrix
lost matrix
# torpid matrix did it again and now im here

In your project there should be a plugin.yml
Inside this yml the path to your class that extends JavaPlugin should be present and point
exactly to the class that extends JavaPlugin. Also referred to as your "main" class

torpid matrix
#

idk

vale ember
lost matrix
torpid matrix
#

yh that was a whoops

#

i need to change that

lost matrix
#

Btw. really really confusing path. packets should be all lower case if possible

lost matrix
torpid matrix
hybrid spoke
torpid matrix
#

yeh

vale ember
vale ember
lost matrix
vale ember
torpid matrix
#

and what do i put here

#

as the package

vale ember
hybrid spoke
#

?learnjava

undone axleBOT
lost matrix
torpid matrix
#

I just dont understand the package bit of java it is well weird

vale ember
lost matrix
lost matrix
torpid matrix
#

I hate folders

eternal oxide
#

packages should also be all lowercase

quiet ice
#

well, then you should stop using computers

torpid matrix
#

why couldnt computers just be one directory

vale ember
lost matrix
quiet ice
torpid matrix
#

that sounds better lmao

eternal oxide
#

A God class. The bestest ever

lost matrix
quiet ice
#

And use a single method for everything.

lost matrix
torpid matrix
#

it happened again

quiet ice
#

I'm pretty sure that there is some library that allows to use lambdas for event listeners, so there isn't too much of a need for anonymous classes

vale ember
lost matrix
# quiet ice And use a single method for everything.
  @Override
  public void onEnable() {
    Bukkit.getPluginManager().registerEvents(new Listener() {
      @EventHandler
      public void onJoin(final PlayerJoinEvent event) {
        event.setJoinMessage("Hi " + event.getPlayer().getName());
      }
    }, this);
  }
quiet ice
#

The name of the main class is package.name.ClassName

quiet ice
#

right now you only have package.name

torpid matrix
#

idk what that means

#

what is name

#

ik what className is

quiet ice
#

the fucking package name

vale ember
torpid matrix
torpid matrix
quiet ice
#

if you were to use lowercase package names it would be easier to identify your issue, but no, you have to play against the rules

vale ember
quiet ice
vale ember
quiet ice
#

How do you export the jar?

tardy delta
#

intellij?

quiet ice
#

Do you click on the project > export

quiet ice
torpid matrix
# torpid matrix

but there is only the package and class here, only two .Nofalls I changed it

torpid matrix
tardy delta
vale ember
torpid matrix
#

that has the name of NoFall

tardy delta
#

just take the package name with folders and your main class name

quiet ice
# tardy delta smh

usually you should be using maven, that is way better than eclipse's export option

vale ember
torpid matrix
#

I got the error still

quiet ice
#

I use the export option, but only for quick tests and before it goes into prod

vale ember
stone sinew
#

Only use dependencies builders if its required. I wouldn't say it should be used if its not needed.

torpid matrix
#

dir?