#help-development

1 messages · Page 487 of 1

dry forum
#

is there a way to make blocks rotate? could i maybe do smthn with falling blocks?

kind hatch
#

You can use the new display entities.

#

Specifically the block_display entity

dry forum
#

thats 1.20 though

kind hatch
#

It's 1.19.4

dry forum
#

wait wut

kind hatch
#

Yea, they are out now.

dry forum
#

oh wowie ok ty

round finch
keen berry
#

fixe 🙂

dry forum
kind hatch
#

It should just be block_display

dry forum
#

when i do /summon nothing comes up for that

kind hatch
#

You have to provide the nbt data as well. Otherwise, you'll get nothing. Those entities can display literally anything. You just need to tell it what.

dry forum
#

it just doesnt show up

#

in the command

static ingot
#

isn't block display an experimental feature? there might be a setting for that

young knoll
#

Don’t think so

remote swallow
#

it got added 1.19.4

dry forum
#

when i do /summon block_display doesnt show up though?

#

my server is 1.19.4

young knoll
#

What happens if you type it anyway

dry forum
#

spawns an armor stand

young knoll
#

What is the output of /version

kind hatch
#

You're in the wrong client version.

dry forum
#

oh im rly

#

dumb mb

dry forum
#

how would i expand/rotate a blockdisplay? i cant see any methods that would help with this?

kind hatch
dry forum
#

i can use that nbt with the api?

kind hatch
#

Yes, so long as you've got the methods to set NBT data.

#

However, I'd recommend using the built in methods like #setTransformation() & #setInterpolationDuration()

wary topaz
#

any idea?

dry forum
#
        display.setBlock(data);
        display.setRotation(240, 240);
        display.setDisplayWidth(10);
        display.setDisplayHeight(10);
        display.setTicksLived(Integer.MAX_VALUE);``` pitch isnt working and displayheight and width arnt doing anything
wary topaz
#

Whyis the tickslived max value?

dry forum
#

so it doesnt despawn

wary topaz
#

make it -1

dry forum
#

ty but still doesnt work same problems

wary topaz
#

could you tellme what youre tring to do

#

trying*

dry forum
#

just spawn concrete with a pitch, yaw, and a certain display size

wary topaz
#

any errors?

dry forum
#

nope

wary topaz
#

try sending some debug messages

dry forum
#

wait nvm the error is from the ticks lived

#

java.lang.IllegalArgumentException: Age must be at least 1 tick

wary topaz
#

ah

dry forum
#

what would i be debugging though

#

everything is hard coded

wary topaz
#

nvm

#

tbh i'm not really good with the 1.19.4 api might have to ask someone else

#

im used to .3

regal scaffold
#

Why is getConfig.addDefault()

#

Not actually adding to the config

round finch
#

try save config

regal scaffold
#

I ddi

#
        this.saveConfig();
#
 getConfig().addDefault();
 getConfig().addDefault();
 getConfig().addDefault();

 saveConfig();
round finch
#

getConfig#addDefault(path, value)?

regal scaffold
#

Yes

#
getConfig().addDefault("toggle-on", "&4&lYou have");
getConfig().addDefault("toggle-off", "&4&lYou have");
this.saveConfig();
round finch
#

where did you put it and is it loading that

regal scaffold
#

oneanble

#

So yes

round finch
#

rn i'm just guessing sense i got no code

regal scaffold
#

The code is literally this

round finch
#

that is all?

regal scaffold
#
        getConfig().addDefault("toggle-on", "&4&lYou have &a&lENABLED &4&lCustomDropProtect.");
        getConfig().addDefault("toggle-off", "&4&lYou have &c&lDISABLED &4&lCustomDropProtect.");
        this.saveConfig();

first 3 lines of onenable

round finch
#

oh main plugin class ah

regal scaffold
#

Yeah

#

I thought it would be a reason too

#

Is it?

dry forum
round finch
#

Idk

getConfig().options().copyDefaults(true);
getConfig().addDefault("toggle-on", "&4&lYou have &a&lENABLED &4&lCustomDropProtect.");
getConfig().addDefault("toggle-off", "&4&lYou have &c&lDISABLED &4&lCustomDropProtect.");
this.saveConfig();

#

works fine to me

wary topaz
#

and yes im using the servers correct name

round finch
#

@regal scaffold

regal scaffold
#

Yeah I was about to lose my mind

#

Maybe your first line

#

I forgot to add it

regal scaffold
wary topaz
#

mk

#

02:11:57 [INFO] Index 1 out of bounds for length 1

#

but how?

#

if (args.length == 0) {
player.sendMessage(new ComponentBuilder("Please enter the lobby you want to connect to!").color(ChatColor.RED).create());
return;
}
String a = args[1];

regal scaffold
#

Full error

#

It’ll give you a better idea

wary topaz
#

System.out.println(all.getMessage());

#

thats the full error lol

#

wait let me try something

regal scaffold
#

Which one is 26

wary topaz
#

String a = args[1];

regal scaffold
#

Is it the one acceding

#

Yes that

#

Thought so

#

The arguments is 1

#

Not 2

#

String a = args[0]

wary topaz
#

args[0] would bet he command though?

regal scaffold
#

No

wary topaz
#

o alr

#

i,ll try it

regal scaffold
#

Oh wait

#

You’re using the bungee version

#

Ngl I have no clue, my test would be to sout args to see what’s in it or check the docs

#

But out of bounds indeed means there’s nothing there

wary topaz
#

It works!

#

tysm!

#

System.out.println(Arrays.toString(all.getStackTrace()));
= worst way to print a stack trace

round finch
#

Normally i just make a custom yamlconfiguration
personally

wet breach
worldly ingot
#

Is anyone readily available with a Spigot test server on 1.19.4?

#

And can you verify whether or not an EntityDamageEvent is called twice for a single lightning strike on a player?

#

Ideally latest commit but honestly if you're a few behind it's not a huge deal

winter dome
#

Anyone know why whenever I clone a group, the prefix doesn't work?

worldly ingot
#

lol

#

Just once then?

vocal cloud
#

Looks like it to me

#

Code at the top, mc, and console

#

downloaded a fresh off the press buildtools and built a fresh jar

worldly ingot
#

tyty. Much appreciated, Mike

vocal cloud
vocal cloud
worldly ingot
#

Actively working w/ Doc to track down a bug lol

vocal cloud
#

What is this bug

late sonnet
worldly ingot
#

Ye

#

Caused by WIP changes

vocal cloud
#

Someone did a fucky wucky

worldly ingot
#

A big ole oopsie woopsie

vocal cloud
#

Oh noes shock

#

I do love a good bug hunt tho 👀

#

Lmk if I can help. I love bugs

wary topaz
#

Any way to compact this

#

oh god that url

#

igayufujef.java

regal scaffold
#

Why is my command

#

Also sending a white message in chat

#

Saying the command

wary topaz
#

you have to return true

regal scaffold
#

Duh

#

I hate

#

me

#

Ty

worldly ingot
# wary topaz Any way to compact this
private static final String[] SERVER_ORDER = { "lobby1", "lobby2", "lobby3", "lobby4", "lobby5" };

public void execute(CommandSender sender,String[] args) {
    if (args.length > 0) {
        if (sender instanceof ProxiedPlayer) {
            ProxiedPlayer p = (ProxiedPlayer) sender;
            p.connect(ProxyServer.getInstance().getServerInfo(""));
        }

        return;
    }

    ProxiedPlayer p = (ProxiedPlayer) sender;

    for (int serverIndex = 0; serverIndex < SERVER_ORDER.length; serverIndex++) {
        String serverId = SERVER_ORDER[serverIndex];
        ServerInfo serverInfo = ProxyServer.getInstance().getServerInfo(serverId);
        if (serverInfo.getPlayers().size() < 20) {
            p.connect(serverInfo);
            break;
        }
    }
}```
#

At least that's how I'd compact it

wary topaz
#

tyvm

late sonnet
vocal cloud
#

Oh After doing it I found it

#

Isn't this because sometimes lightning strikes twice on a single summon?

#

Are you sure this is a bug? Looking at the source code shouldn't it always do 2 hits of damage?

wet breach
#

But maybe it has to do with pigs possibly? Only other entity that has something to do with lightning

#

Pigs turn into zombie pigs if they are struck with lightning

#

Well not the only entity i suppose. Creepers turn into charged creepers if struck by lightning as well

vocal cloud
true perch
#

What's the most efficient way to find an offline player's name if you have their UUID?

#

found getOfflinePlayer() nvm sorry

chrome beacon
ivory sleet
#

Only if u use it by name

chrome beacon
#

Yeah I read that wrong

#

I read it as get uuid by name

ivory sleet
#

Ye same at first :,)

slim wigeon
#

Hey there, how can I set love mode/breed mode on animals?

chrome beacon
slim wigeon
#

I tried animal.setBreed(true) and all that, no results

#

It just does not work``` for(Entity entity : this.block.getWorld().getNearbyEntities(box)) {
if( entity.getType().equals(EntityType.SHEEP) ) {
Sheep sheep = (Sheep) entity; Breedable sheepLove = (Breedable) sheep;
if( !sheep.isAdult() || animals.get("SHEEP.Adult") == 0 ) { continue; }

            animals.put("SHEEP.Adult", animals.get("SHEEP.Adult")-1);
            if( sheepLove.canBreed() ) { sheepLove.setBreed(true); sheep.setLoveModeTicks(1000); }
        }
    }```
chrome beacon
#

Well that's some awful formatting

#

?paste your code

undone axleBOT
chrome beacon
#

Also sheepLove is redundant

#

Since you're skipping sheep that aren't adults

slim wigeon
chrome beacon
#

My guess is that animals.get("SHEEP.Adult") == 0 is true Did not read the paste code

slim wigeon
#

Its not, I tested it with the shear

chrome beacon
#

Why are you even using that animals map

#

Seems redundant

slim wigeon
#
            EntityType.SHEEP, EntityType.PIG, EntityType.COW, EntityType.MUSHROOM_COW
        ));
        
        if( animals.get("Total.Baby") <= 5 ) { return; }
        
        if( animals.get("SHEEP.Adult") % 2 == 1 ) {
            animals.put("SHEEP.Adult", animals.get("SHEEP.Adult")-1);
        }```
chrome beacon
#

🤷‍♂️ See if you can add some debug messages or use a debugger and make sure it actually reaches the set love ticks method

slim wigeon
#

It reaches to the love ticks, I know. I told you it been tested with the shear. I tried searching before asking here and posts, they super outdated

quaint mantle
#

Hi , ips from the player is string or int ? i think is int but i am not sure

hazy parrot
#

It's inetaddress

#

If asking about java object

#

It can't be int in any possible case

true perch
#

I noticed an issue with my design.

    /**
     * A HashMap of every player's Group.
     */
    private final HashMap<UUID, Group> groupPlayerUuids;```
This stores a reference to the `Group` object a player is a part of. However if a player rejoins the server their UUID object reference is different than the one used to reference the group. Is there a way around this?
hybrid spoke
#

yeah you can obtain the host adress as string

hazy parrot
#

And uuid equals is checking for internal longs

#

It's not reference check

true perch
#

You're right

#

Yeah it doesn't check if the references are the same 😅

pliant sonnet
#

Hey guys not sure if this counts under development but

#

What makes existing plugins break when a new version of minecraft drops

chrome beacon
#

Code changes between versions

#

So the plugins that expect certain code to exist break when it isn't there

pliant sonnet
#

Is it hard to manually update it via editing the source code

chrome beacon
#

Depends on the plugin

pliant sonnet
#

As a person who doesn’t know java

chrome beacon
#

Yeah that could be hard

pliant sonnet
#

Cuz I found some plugins I wanna use for when 1.20 drops

#

Certain plugins won’t break when updated to new version of mc right?

chrome beacon
#

Yes

tender shard
pliant sonnet
#

How does slughorn work

tender shard
#

?nms

tender shard
#

slughorn = nms lol

pliant sonnet
#

So I can edit text from 1.19.4 to 1.20 then server will recognize plugin?

ivory sleet
#

Or javadoc whatever

tender shard
#

why the heck does mysql allow a lengh of 0

#

isn't that totally useless lol

pliant sonnet
tender shard
#

also, does this mean that BINARY can only go from 0 - 255 in length?

woeful valve
#

Pls see my question in #general

hazy parrot
tender shard
#

true

hazy parrot
fluid river
#

pls checkout my question in #another-server

tender shard
#

which one

fluid river
#

idk

tender shard
#

ah yes, I've seen it

fluid river
#

i have lots of questions

#

on different servers

tender shard
#

🎵 I've got so many questions on my mind 🎵

fluid river
#

russian FBI agent

tender shard
fluid river
#

ask somebody to help you in other channel

true perch
fluid river
#

guy asked for help even before wrote a question

tender shard
fluid river
#

nice ==

true perch
#

Yeah just a brain fart

#

😂

fluid river
#

💩

true perch
#

Lemme just quickly do Ctrl+Shift+F and enter in == to verify that all of them are what I need them to be 😂

night verge
#

I'm making a custom recipe, but the item double whenever I acquire the product from the crafting slot.
(I didn't use ShapedRecipe because the crafting elements contain custom items.)
What could be the problem?

#

This is my code:

public void craftItem(PrepareItemCraftEvent event) {
        CraftingInventory inv = event.getInventory();
        boolean[] part_tag = new boolean[10];
        for (int x = 1; x <= 9; x++) {
            ItemStack item = inv.getItem(x);
            if (item != null && item.hasItemMeta() && item.getItemMeta().getPersistentDataContainer().has(new NamespacedKey(plugin, "smithingtag"),
                    PersistentDataType.STRING)) {
                part_tag[x] = true;
            }
        }
        boolean detect = false;
if (detect == true) {return;}
        int board = 0;
        for (int x = 1; x <= 9; x++) {if (inv.getItem(x) != null && inv.getItem(x).getItemMeta() != null && inv.getItem(x).getItemMeta().equals(Items.boards("board").getItemMeta())) {board += 1;}}
        if (board == 1) {
            int prop = -1;
            for (int x = 1; x <= 9; x++) {
                if (inv.getItem(x) != null && inv.getItem(x).getItemMeta() != null && !inv.getItem(x).getItemMeta().equals(Items.boards("board").getItemMeta())) {
                    if (prop == -1) {prop = x;}
                    else {prop = -1; break;}
                }
            }
            if (prop != -1) {
                final boolean smithingtag = inv.getItem(prop).getItemMeta() != null && inv.getItem(prop).getItemMeta().getPersistentDataContainer().
                        has(new NamespacedKey(plugin, "smithingtag"), PersistentDataType.STRING);
                if (inv.getItem(prop).getType().equals(Material.BRICK) && !smithingtag) {
                    detect = true;
                    inv.setResult(Items.boards("ingot_board"));
                }
            }
        }

        if (detect == false) {
            for (int x = 1; x <= 9; x++) {
                if (part_tag[x] == true) {
                    inv.setResult(null);
                    break;
                }
            }
        }
    }
tender shard
#

why didnt you use ShapedRecipe? o0

#

it works fine for custom items

tender shard
night verge
#

I thought the recipe cannot distinguish the same material but with different itemmeta.

tender shard
true perch
#

To be fair though I've only worked on this project for a couple weeks now 😅

tender shard
#

goblin

true perch
# tender shard goblin
public class GroupMember {
    private final UUID uuid;
    private final String name;
    private GroupRank rank;

    public GroupMember(UUID uuid, GroupRank rank, String name) {
        this.uuid = uuid;
        this.rank = rank;
        this.name = name;
    }
    public Player getPlayer() { return Bukkit.getPlayer(uuid); }
    public void setRank(GroupRank rank) { this.rank = rank; }
    public UUID getUniqueId() { return uuid; }
    public String getName() { return name; }
    public GroupRank getRank() { return rank; }
    @Override
    public boolean equals(Object obj) {
        if ((obj == null) || (obj.getClass() != GroupMember.class))
            return false;
        GroupMember id = (GroupMember)obj;
        return this.uuid == id.uuid;
    }
}
```added an equals method for good measure 😄
tender shard
#

you still are using == to compare

#

the uuid

quaint mantle
fluid river
#

if (!(obj instanceof GroupMember member)) return;

#

return member.uuid.equals(this.uuid);

tender shard
#

also the equals() method should check both name, and rank, too

fluid river
#

should it

true perch
fluid river
#

i mean just for internal use

tender shard
#

if you have two group members, with the same uuid, but different names, I would not consider those to be the same

true perch
true perch
fluid river
#

doesnt it?

ivory sleet
true perch
#

I replaced == with equals 😅

tender shard
#

daddy?

true perch
#
@Override
public boolean equals(Object obj) {
    if ((obj == null) || (obj.getClass() != GroupMember.class))
        return false;
    GroupMember id = (GroupMember)obj;
    return this.uuid.equals(id.uuid);
}```
fluid river
#

but he doesn't have subclasses

hazy parrot
#

Do you think mc ever had uuid collision?

ivory sleet
#

which is probably something you dont want to have cause of hashmap collision checks etc

tender shard
hazy parrot
#

Ur lucky guy ahahahha

fluid river
#

gay class

ivory sleet
#

?

tender shard
#
private static final UUID RANDOM_UUID = UUID.fromString("92864445-51c5-4c3b-9039-517c9927d1b4"); // We reuse the same "random" UUID all the time
``` 🥲
fluid river
#

with uuid collisions

true perch
#

What do you mean?

quaint mantle
true perch
#

If I try to cast obj as a GroupMember object when it's in fact null, would cause a nasty error

ivory sleet
#

By contract of Object::equals
passing null should return false, not NPE

fluid river
#

imagine how many plugins would break on a typical mc server cuz of uuid collision

tender shard
true perch
#

Ah, now I know

ivory sleet
true perch
#

regardless, if the passed in object is null it can't equal the current object

tender shard
#
String asd = (String) null;

should work fine

fluid river
#

ClassCastException: Cannot cast joe to String

#

wait what

#

you can call static methods of null

tender shard
#

ofc

ivory sleet
#

yes

fluid river
#

funny

ivory sleet
#

static methods can be invoked on instances and variables

#

but like, afaik its supposed to be avoided

drowsy helm
#

yeah it looks funky

ivory sleet
#

iirc effective java classifies that as an antipattern

fluid river
#

defective java classifies that as meme

tender shard
#

wanna see more weird java?

public class Test {
    public static void main(String[] args) {
        if (true == false) { // \u000a\u007d\u007b
            System.out.println("Java can be weird. This line DOES get printed!");
        }
    }
}
ivory sleet
#

Please NukerFall, try stay a little bit serious at times

rough drift
#

doesn't that make it false

ivory sleet
#

The Gifs are probably better suited in general I’d say at least some of the ones you send.

drowsy helm
#

true == false?

tender shard
#

note the comment behind the if

rough drift
#

yeah I don't get it

#

Ah shit

#

you little

tender shard
#

you can also randomly insert http links into your code and it still compiles fine

class Test {
    public static void main(String[] args) {
        https://blog.jeff-media.com
        System.out.println("Visit my website");
    }
}
rough drift
#

?

tender shard
#

iirc it's just }{

#

so the if(false) { becomes if(false) { } {

cobalt thorn
#

Hi, i made my system of commands work on annotation and i wanted to make a system for subcommands, but how can i get in class if there are @Subcommands annotations?

for reference here my classes and an example
BaseCommand Class: https://sourceb.in/DzfUpDEDAL
Example Class: https://sourceb.in/BcKm31DDCq

tender shard
#
YourClass.class.getAnnotations()
cobalt thorn
tender shard
#

then use myObject.getClass().getAnnotations()

cobalt thorn
tender shard
#
        Annotation[] annotations = someObject.getClass().getAnnotations();
        for (Annotation annotation : annotations) {
            if(annotation.getClass().equals(MyCustomAnnotation.class)) {
                // It's your custom annotation
            }
        }```
tender shard
#

or just use Class#isAnnotationPresent

cobalt thorn
tender shard
#

ah I see, loop over getDeclaredMethods(), then check the annotation there

#
        for(Method method : myCommandClazz.getDeclaredMethods()) {
            if(method.isAnnotationPresent(Subcommand.class)) {
                // "method" is a subcommand
            }
        }
cobalt thorn
tender shard
#

no, you currently only get the annotation of the class itself. you have to loop over the declared methods, then check if any of those has the Subcommand annotation

cobalt thorn
# tender shard like this

and cast the method as SubCommands so i can add it into a list and then check if the subcommand is the same as the args[0]

tender shard
#

nope! do not cast the method, but cast the annotation

#
        for(Method method : myCOmmandClazz.getDeclaredMethods()) {
            if(method.isAnnotationPresent(Subcommand.class)) {
                // "method" is a subcommand
                Subcommand subcommand = (Subcommand) method.getAnnotation(Subcommand.class);
                String name = subcommand.name();
            }
        }
#

sth like this

pliant sonnet
young knoll
#

There have been some API changes that break things in the past

#

1.13 is a notable one because of the flattening

#

Though even that spigot made an effort to minimize issues

tender shard
#

for example ServerGamePacketListenerImpl has a field called "connection". that became private in 1.19.4 but was public before

#

so plugins that used that field will now have to find a different way to access it

pliant sonnet
#

So no one would know whether 1.20 will break stuff until stuff breaks first?

tender shard
#

1.20 will definitely break things

young knoll
#

If you just use the api there’s a good chance you’ll be fine

tender shard
#

yes

young knoll
#

If you use NMS then you’ll 102% need to change things

tender shard
#

slughorn*

#

nobody calls it NMS anymore

#

yes

young knoll
#

Useful on the odd occasion

#

Now when do we get goto

tender shard
#

i love labels

#

i wonder why init blocks do not allow early return

cobalt thorn
tender shard
#

then how would you init final fields?

#

as you can see, the CONSTRUCTOR_INVOKER thing is final

#

final field

young knoll
#

I wish java could magically detect that a method is called from a constructor and therefor allow said method to set final fields too

#

Or a keyword that marks a method as such

tender shard
#

but what if someone else called that method again then

sullen marlin
tender shard
#

1.19.2

young knoll
#

Private methods only

tender shard
#

1.19.2 had a cursed constructor for ServerListPingEvent

young knoll
#

Pretty much

tender shard
#

it took in a boolean "isPreviewChat" or sth

young knoll
#

Idk what I would call the keyword

tender shard
#

so I need reflection to support 1.19.2 and <all other versions>

young knoll
#

I just don’t like having a ton of code in the constructor itslef

tender shard
#

public static fancy void setup()

young knoll
#

Sold

#

Shhh

tender shard
#

but it's fancy

round finch
#

slef

young knoll
#

Someone get uhh

tender shard
#

you cannot argue that it's not fancy if it's literally called "fancy"

young knoll
#

John Java on this asap

tender shard
#

@johnjava

#

he's not here

young knoll
#

Shit

tender shard
#

"I'll create my own JVM - or JDK. With blackjack, and hookers"

young knoll
#

I’m not optic

#

:p

round finch
#

try @DinnerBone

tender shard
#

@Dinnerbone

#

he's not here

round finch
#

@Mojang

young knoll
#

I don’t think any mojangsters are here

#

Smh

quaint mantle
#

Bros can fork jvm/jdk and rename it

round finch
#

@Microsoft

tender shard
#

@BillGates

#

ah yes

quaint mantle
#

@Windows

tender shard
#

hello wilson

young knoll
#

WILSOOOOOOON

round finch
#

@Java

#

it turns into wilson

tender shard
#

did anyone watch the new tom hanks movie btw

young knoll
#

Damn we got a programming language in our discord

tender shard
young knoll
#

java is their discord name

#

Wilson is their nickname

tender shard
#

funny

round finch
#

who installed java on this discord server?

young knoll
#

3 billion discord servers run java

tender shard
#

kotlin joined the chat

round finch
#

Kotlin is the annoying little brother to java

tender shard
#

that is the best explanation of kotlin I have ever read

#

very accurate

round finch
round finch
molten hearth
#

3 billion runners serve java

quaint mantle
#

3 billion devices debugs java

round finch
#

3 billion debugs done with java developers

fluid river
#

3 billion bugs/features are still not fixed/implemented in java

late sonnet
true perch
#

If I run HashMap#remove() to get rid of a reference will the object data in memory also be removed with Garbage Collection? Or should I manually clear the object?

hybrid spoke
#

the garbage collector has his own will, we never know when he do shit

#

but if nothing else is referencing to your object, its "marked" for removal

true perch
#

perfect, thank you.

hybrid spoke
#

á outlawed

quaint mantle
#

what would be the best aprouch to make player able to create their own island

#

and also load/unload then when needed

round finch
#

sky island?

quaint mantle
#

yh

#

sorta

round finch
#

maybe /island create

#

./island reset

eternal oxide
#

Simplest is divide the world up into areas (Math), and prevent the player moving outside theor area

quaint mantle
#

not talking about that i mean how do i actually create the island. Like use the blueprint etc

eternal oxide
#

create a Void world

round finch
#

yeah what he said start from 0 0

quaint mantle
#

aight thx

wet breach
#

you use a void world, and then generate the islands from the schematic at either pre-determined points

#

or random places

round finch
#

worldedit api has schematic loader

wet breach
#

generally its done at random with a check to ensure minimum distance from other islands

eternal oxide
#

Bukkit has a Structure loader

wet breach
#

schematics are easier

eternal oxide
#

which handles Blocks and Entities

quaint mantle
eternal oxide
#

easier? not sure

young knoll
#

(Schematics also handle blocks and entities)

round finch
#

i mean you could randomize the islands

wet breach
#

indeed they do, and they handle states

young knoll
#

Both schematics and structures handle the same data

flint coyote
young knoll
#

Schematics are harder to read, but are easier to make

#

And vice versa for structures

eternal oxide
#

I see no advantage to use WorldEdit for it over the built in Structures

wet breach
#

you don't need worldedit

#

you just need a schematic loader

young knoll
#

Schematics are also much smaller

eternal oxide
#

Why though? WHat advantage over Structures?

young knoll
#

Smaller, easier to make

wet breach
#

plenty, they are smaller, more things are compatible with them and easier to make

eternal oxide
#

Smaller possibly (I've not looked) but what "easier" about it?

young knoll
#

Structures are limited to 48x48 with just structure blocks

#

You can make bigger ones but you need a different tool

eternal oxide
#

You are not limited to structure blocks

#

you can load/paste any size

young knoll
#

You would have to use FAWE to make them

eternal oxide
#

No

young knoll
#

Normal worldedit can't export as a structure

round finch
#

haha

eternal oxide
#

Bukkit can though

young knoll
#

Sure but writing a plugin just to make the structures is annoying

#

When FAWE can already do that

wet breach
#

if I had to choose, I would choose schematics just because I am more familiar with them. So far you haven't presented why structure should be used over a schematic o.O

round finch
#

i have seen people make their own schematic loader

young knoll
#

Yeah I've done it

#

Not that hard

wet breach
#

its not hard, a single class of like 30 or so lines is all that is needed for loading a schematic

young knoll
#

Also schematics can hold biomes, structures cant

eternal oxide
#

For 1, it's built in function. for 2 I've yet to hear of any reason why it's "better" to use another plugin when it's already in Bukkit and takes a couple of line of code to implement

wet breach
#

technically schematics can hold whatever you want them to, its just a matter of how much compatibility do you need with other things

young knoll
#

I mean both are just NBT files

wet breach
quaint mantle
#

https://www.youtube.com/watch?v=8qlnlvigodM ill just use this i have worldedit on my server anyways

Love the video or need more help...or maybe both?
💬Join us on Discord: http://discord.gg/invite/fw5cKM3
Thank you for tuning in to this episode of TheSourceCode! ❤️

If you enjoyed this video make sure to show your support by liking , commenting your thoughts, and sharing for all your friends to see and learn!

All code is available on Github:
...

▶ Play video
wet breach
#

most people use the world edit format for schematics

eternal oxide
#

Still not hearing any reason NOT to use Structures. What exactly is "better" about schematics?

wet breach
#

they are smaller

eternal oxide
#

thats all?

wet breach
#

and easier to port around

#

they are more efficient in loading as well

eternal oxide
#

easier to port arouind is a lie. they are literally nbt files

wet breach
#

copy and paste is too hard for you?

eternal oxide
#

Effiency in Loading I could acccept

young knoll
#

I mean if you want specific biomes that always helps

eternal oxide
#

to hard? thats litteraslly what Structures do

wet breach
#

that isn't what I am talking about

#

schematics are literally single files

#

moving them around is super easy

eternal oxide
#

So are Structures

young knoll
#

^

wet breach
#

also, worldedit exists to create schematics easily too

eternal oxide
#

it's a Single nbt file, you can paste anywher, rotate and even apply integrity

young knoll
#

I support both in my project ¯_(ツ)_/¯

wet breach
#

well, since you haven't told me how they are better I will stick with schematics

round finch
#

hidethepain
why does this matter?

young knoll
#

Funny enough due to limitations with the API the impl for schematics is smaller than structures

round finch
#

seems similar

eternal oxide
#

and the Bukkit.getStructureManager() exists to create Structures, no extra plugin required

dire marsh
#

it depends on your usecase, structures are much better if you have lots of (usually smaller) structures and need to modify the builds within them a lot

#

visualising the end result is much easier with structures, and you don't have to deal with origin of //copy

quaint mantle
#

Is it possible to change a music discs audio?

young knoll
#

Resource pack

wet breach
#

its not necessary to however

#

in the case of islands, don't think it really matters on the origin in this case

eternal oxide
#

Structure allows you to place anywhere you like. No offset in the file

young knoll
#

So does a schematic with a good reader

wet breach
#

offset is only used if you were placing from player, but if there is no player offset is unnecessary

eternal oxide
#

Yeah I'm still seeing littel to no reason to require an extra plugin/reader when its built into Bukkit.

wet breach
#

built into bukkit doesn't mean no plugin needed

#

still need a plugin regardless

eternal oxide
#

Speed of placement is the only one I can really see

young knoll
#

The problem with the built in system is that you have to place it all at once

wet breach
#

schematics can leverage threads

dire marsh
eternal oxide
#

In the correct implementation, thats true

young knoll
#

Once we get block state cloning and proper virtual entity support structures will be much better

#

Until then they are kinda lacking

wet breach
#

but, since structures have no better advantage I still don't see a reason for myself to switch. If other people want to, that is fine, but you have failed to convince me they are better

eternal oxide
#

Isn;t there a PR ongoing for that?

wet breach
#

just because bukkit has an api for it, doesn't necessarily mean better. Just means convenient which has a trade off usually

young knoll
#

The entities you read with bukkits structure api are virtual

#

There is no way to manually add them to a world

eternal oxide
round finch
#

doesn't your source have more control?

dire marsh
#

I see

young knoll
#

The blockstates are also virtual

wet breach
#

well, since schematics can basically be however custom you want it to be, you don't have anything to adhere to. Structures can't be too custom they have to conform to whatever the system dictates

#

so schematics means you have more freedom, but the disadvantage I guess is a reader and writer but like both are approximately 30 lines of code to make

young knoll
#

Structures can have arbitrary data too

dire marsh
#

Apart from pasting ridiculously sized builds I haven't come across anything you can't do with structures vs schematics yet

eternal oxide
#

I guess I'm lazy. I'll stick with Structures and wait for improvements 😉

young knoll
#

They are a persistent data holder

wet breach
young knoll
#

The heck you mean to an extent

#

They are both nbt files

#

They can both hold the same things

round finch
#

haha man spitting facts

wet breach
#

one has to conform to a system, the other doesn't.

#

so schematics can hold not just arbitrary data but literally any data you want it to

young knoll
#

I mean yes it has to conform to PDC

#

But PDC can handle anything with the right adapter

wet breach
#

right, so have to make a custom adapter and what not. But even then, it still has limitations

#

the only conformity for schematics is for compatibility purposes with other plugins, if that isn't needed you are free to add as much data to it, even data that doesn't even relate directly to it but maybe to have it do something at particular times or something else.

eternal oxide
#

You sound like you are arguing to convince yourself to keep using Schematics.

wet breach
#

No I don't need convincing already told you I have no reason to switch

#

I am saying schematics have more freedom/flexibility

#

because there is nothing for them to conform to

eternal oxide
#

So truth is, you already use Schematics

wet breach
#

indeed, pretty much said this way up above somewhere

#

why would I toss out code that works? lol

#

just because a new system came along? XD

eternal oxide
#

No reason, it just seemed you were struggling to find a difference when there is very little. I've give you performance when pasting, but thats about it.

wet breach
#

and the fact it can store literally anything you can think of

eternal oxide
#

Structure pasting is terrible on performance.

#

you can in either

wet breach
#

no

eternal oxide
#

yes, it's just an nbt file

#

you (in thoery) could tack on anything, so long as it's valid json

wet breach
#
Minecraft Wiki

Structure files are stored as an NBT file.
This file format is used to store structures such as end city, igloo and fossil into the data/minecraft/structures folder inside client.jar. Custom structures can also be saved and loaded using the structure block. These structures are saved into the /generated/minecraft/structures subfolder in the worl...

#

unless the api lets you add custom stuff in there, that is the format

#

unless we talking about creating custom loader/writer of course

eternal oxide
#

You can't add arbitrary data to either without your own implementation.

wet breach
#

to make a custom island world with random islands you are going to need a custom plugin. Now you could choose to hook into WE if you want to, or just code up a reader/writer. But that reader/writer doesn't need to be modified to add custom data

#

or even read it

#

in your case, if we strictly go with the API, you are conformed to the format given

eternal oxide
#

Thats true

wet breach
#

but yes if you had a custom reader and writer for the structure stuff, you could add whatever you wanted

#

but then you couldn't really use the API or have limited use

tawny remnant
#

Whenever I restart the server the uuidTag of the itemstack backpack() in my inventory resets to null causing the contents to not load. Why is that and how can i fix it?
https://paste.md-5.net/fenototuve.cs //i fused the classes so i didnt have to send 3 of them//

eternal oxide
#

posting random sections of code will not get you help

tawny remnant
eternal oxide
#

what is null? where? where are you loading the data? where are you generating it? where are you saving it?

tawny remnant
#

When I give myself the backpack() it has the tag with the random uuid but when i restart the server and then send myself a message of the tag it says null

eternal oxide
#

are you sayign Main.instance.uuidTag is null?

tawny remnant
#

after i restart the server yes

eternal oxide
#

where do you set Main.instance.uuidTag?

tawny remnant
eternal oxide
#

its not set in there

#

You use it there, you never set it

tawny remnant
#

could you be more specific please

#

o

#

i create the Namespaced key in my main class if you are asking for that

#

but that wont get us anywhere my problem is that the tag resets whenever I restart the server

eternal oxide
#

I'm not understanding what you are talling a tag

#

Main.instance.uuidTag is the only thing I see called tag

tawny remnant
#

The Itemstack has the namespaced key called uuidTag which is a randomUuid given to the itemstack to be unique. When i send myself a message of the Namespacedkey of the itemStack in my hand it gives me a UUID as it should. When i restart the server and send myself a message of the Namespacedkey it says null

eternal oxide
#

show that actual code then, to start

tawny remnant
#

which part of the code

eternal oxide
#

that line in yoru code inv.setContents(Main.instance.backpackMap.get(player.getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer().get(Main.instance.uuidTag, PersistentDataType.STRING)));

#

you are reading the inventory contents from a Map?

tawny remnant
#

yes

eternal oxide
#

that Map will reset upon a restart, so it's empty

tawny remnant
#

it is not, i save it in my config and then load it it is full trust me

eternal oxide
#

ok I'm not guessing anymore. post full classes

#

code snippets get us nowhere

#

snippets

#

You have a bug you can not work out, you are posting code YOU think is relevant, but you can not find the cause of your issue. Stop thinking you know what code is relevant.

chrome beacon
#

ow don't detect inventories by their name

tawny remnant
#

how should i detect them

chrome beacon
#

Track the inventory instance

kind hatch
tawny remnant
#

restarting actually

#

I just tried to /reload and i have the same issue

eternal oxide
#

then your saving/loading is at issue

kind hatch
#

What's the code look like for the map?

tawny remnant
#

ill just record a video pay attention to the green text in chat

kind hatch
#

I think he actually does as I also believe that the issue is with how you are loading your map.

#

The only other thing I can think of is you not reopening the inventory after using /reload, but that can't apply here since you said that you fully restart.

quaint mantle
#

how to create a config file

tawny remnant
#

in main this.saveDefaultConfig and you have a config file

#

also you have to have a config.yml in the plugin src or something like that

quaint mantle
#

ok

#

i put this.saveDefaultConfig of the onEnable ?

tawny remnant
#

yes

quaint mantle
#

Cannot resolve symbol 'saveDefaultConfig

tender shard
#

it's part of JavaPlugin, obviously

#

call that on your main instance

eternal oxide
#

Why are you tagging me in a video?

#

Show the code as I asked or I can't help you

tawny remnant
#

which part of code

eternal oxide
#

your main class FULL

remote swallow
# tawny remnant

you dont need to do /reload, you can do /reload confirm directly

tawny remnant
kind hatch
quaint mantle
#

any1 got a good tutorial to learn spigot

tawny remnant
quaint mantle
#

im not familiar with java

tender shard
#

?learnjava

undone axleBOT
tender shard
#

you must definitely know at least the basic ideas of java, so check out one of the tutorials linked above ^

quaint mantle
#

i know the basic

tender shard
tawny remnant
#

CodedRed has good tutorials with good explanations

tender shard
#

does he use maven in his tutorials?

tawny remnant
#

moslty spigotApi sometimes nms

tender shard
#

but does he use maven

#

or tell people to just add spigot as dependency using the lame way?

quaint mantle
#

i already made 1 plugin

#

but idk how to add a config file

tender shard
#

you just include it in your resources

#

then you call saveDefaultConfig()

quaint mantle
#

ok

tender shard
tawny remnant
#

alex would you be able to help me with my issue

tender shard
#

i dont know

#

maybe

#

but you haven't send any code

tawny remnant
#

i dont know which part you need

tender shard
#

the whole class

tawny remnant
#

there are 3

tender shard
#

all 3 classes

#

just put it on github

chrome beacon
#

^^

#

Was about to say

#

Put entire project on github

tender shard
#

nobody will steal your code anyway, I mean it's not even working

quaint mantle
#

the config file need to be in yaml ?

tawny remnant
tender shard
#

why not?

kind hatch
quaint mantle
#

ok

tawny remnant
tender shard
chrome beacon
tawny remnant
#

its not like a small plugin yk

quaint mantle
#

to advanced

tender shard
#

in that case, pay a contractor to fix it for you

#

either

  1. share your code, to get free help
    or
  2. pay someone to do it
eternal oxide
#

its only 800 lines in your main class (should not be that big) It's not a Big plugin

tender shard
#

you cannot expect people to help you for free, without even seeing your code

quaint mantle
#

nice now my plugin work

tender shard
#

great

eternal oxide
#

I'm certain your issue is whith your loading/saving, but we need to see the WHOLE class to see what exactly you are doing

#

Everyone here has written shit code at one time or another. No need to be embaressed.

tawny remnant
#

i am not saving the itemstack from my inventory anywhere

tender shard
#

no code = no help

tawny remnant
#

its only in my inventory and for some reason the NamespacedKey is resetting

tender shard
#

ofc it is, you used /reload

eternal oxide
#

We are not going to guess. Show code

tender shard
#

everything's gone after reload

kind hatch
#

Which leads us back to how you are reloading the data into the map.

tender shard
#

not at all

kind hatch
#

??

eternal oxide
#

or don't

tender shard
#

Upload your code or get rekd

#

^

eternal oxide
#

It matters not to us. If you want help, show code

tender shard
#

agree

quaint mantle
#

how can i make that when I build the plugins it auto goes into the plugins folder

kind hatch
#

By changing the output directory.

quaint mantle
#

how

silk hinge
#

best place to learn for plug-in development?

true perch
#

I have a config file with this format: yml groups: 4bd2c67d-8f89-4dd8-89e7-727ba418d203: Name: Test Group Acronym: TG Description: Test Description. Members: 4a3f6ed4-153d-424a-858d-5fdd2e78fc54: Name: CombatBorn Rank: LEADER 069a79f4-44e9-4726-a5be-fca90e38aaf5: Name: Notch Rank: MEMBER Written by this codejava String data = "groups." + group.getUniqueId() + "."; for (GroupMember member : group.getMembers()) { config.set(data + "Members." + member.getUniqueId().toString() + ".Rank", member.getRank().toString()); config.set(data + "Members." + member.getUniqueId().toString() + ".Name", member.getName()); }If a player were to leave the group, they wouldn't exist in the members variable within the Group object. How can I update the Yml file to remove a player that leaves the group? It seems to stay there.

kind hatch
chrome beacon
undone axleBOT
remote swallow
#

someone get alex's blog post out

quaint mantle
#

how to make a /myplugin reload command ?

tender shard
#

you register a command in plugin.yml, then set an executor to that, then check if args[0] equals "reload", and then you do whatever is needed to reload your plugin

#

if you never cache config stuff, the command must only call myPlugin.reloadConfig()

kind hatch
true perch
#

ahhh null

#

thank you

quaint mantle
#

ok thx

eternal oxide
true perch
cinder abyss
#

Hello, how can I set a custom tag to a block placed in the world ?

tender shard
#

?blockpdc

undone axleBOT
tender shard
#

check out this @cinder abyss ^

cinder abyss
hushed spindle
#

i think im not understanding something about using nms but whenever i, in pom.xml, specify i want to use the mojang mappings various what i thought were like fundamental classes no longer exist, like EntityPlayer or PlayerConnection

#

blockpdc is a blessing fr

tender shard
#

there is no "EntityPlayer" in NMS, it's called "ServerPlayer"

cinder abyss
hushed spindle
#

there really is a help command for everything huh 👍👍👍

tender shard
hushed spindle
#

ah makes sense

tender shard
hushed spindle
#

you're a fucking king alex

tender shard
#

you wanna create custom blocks with custom textures, right?

hushed spindle
#

you need to use some workarounds to get those to work, one way is to use retextured note blocks

tender shard
#

in that case, you gotta "abuse" existing blocks that allow custom textures, e.g. Mushroom blocks (ikr? funny but it's usually mushroom blocks that people use for this)

kind hatch
#

Noteblocks, Mushroom blocks, and barriers are the common ones to use.

hushed spindle
#

mushroom blocks work too, since they can have a lot of different states you can give them lots of new textures

cinder abyss
#

I want to add 100+ ores

tender shard
#

noteblocks yes, mushroom blocks yes, but barriers?

chrome beacon
#

Yeah barriers with an entity in it

kind hatch
#

Maybe I have that one wrong, but when I see custom textures, I see barriers pop up a lot too. Maybe they are really just used for a quick and dirty hitbox, but for whatever reason, they seem to be common.

tender shard
hushed spindle
#

barriers with entities seems like a suboptimal solution

chrome beacon
hushed spindle
#

so they're just entities to display the texture but the barrier is to give a hitbox

tender shard
hushed spindle
#

like how people make custom furniture using barriers

tender shard
#

thank god we got BlockDisplays now in 1.19.4

#

that will maybe finally get rid of oraxen, ItemsAdder etc

#

because they all have liker "utter shit" api

kind hatch
#

I hope. They are one of the best things added to the game.

chrome beacon
#

It's still quite bad

hushed spindle
#

unironically yeah

kind hatch
#

All they need now is the ability to tie collision boxes to them and it's complete.

tender shard
#

does oraxen at least have a proper maven artifact meanwhile?

chrome beacon
#

jitpack

tender shard
#

yes but the .jar published there doesn't work

chrome beacon
#

hm how so?

tender shard
#

it's hard to explain haha

#

remove your .m2 directory, then create a new project and add oraxen to your pom

#

it won't work

chrome beacon
#

You can always open a PR and fix it

tender shard
#

I told uxor like 10 times already

#

then someday I gave up

quaint mantle
#

im trying to make a reload command can som1 help me ?

tender shard
#

this is also funny

#

it's not maven being weird, but oraxen not properly declaring dependencies to be transitive

#

gradle doesn't know what that is, so there's no issue

undone axleBOT
hazy parrot
#

there are few links that would help you

#

as you seem to not have fundamental knowledge

quaint mantle
#

i only code in C#

coral kelp
#

Where do I ask for a developer?

kind hatch
#

?services

undone axleBOT
hazy parrot
chrome beacon
tender shard
#

or just equals

#

if(args[0].equalsIgnoreCase("reload")) ...

#

aaaaaand check the length of args beforehand

quaint mantle
#

like that

tender shard
#

no

#

that's not what I said

hazy parrot
#

and returning something inside of method that is declared as boolean and passing main instance

tender shard
#

this is what I said

#

I did not say to use ==

chrome beacon
#

Just didn't remove the old code

remote swallow
#

why are you even doing 2 arg equal checks

tender shard
#

oh

#

remove the line that uses == for comparison

#

and learn java

quaint mantle
remote swallow
#

do an args legnth, then do arg equal checks

tender shard
#

?learnjava

undone axleBOT
remote swallow
tender shard
#

otherwise you won't get any better

quaint mantle
#

but im not english

#

i dont understand

hazy parrot
#

?learnenglish ig

tender shard
#

but you seem to be able to understand basic english

#

I am sure you'll understand those tutorials

#

otherwise, google "java tutorial <yourlanguage>"

hazy parrot
#

also its pretty good skill to know english, it will surely benefit you in life

quaint mantle
#

there is no java tutorial in french

rapid topaz
#

?paste

undone axleBOT
remote swallow
#

obviously didnt look very hard

quaint mantle
#

its only paid tutorial

remote swallow
#

idk but the last time i checked, youtube isnt paid

quaint mantle
#

breh

remote swallow
quaint mantle
remote swallow
#

use dark reader

#

or suffer

tender shard
#

it'll be magically dark

quaint mantle
#

good idea

hazy parrot
remote swallow
quaint mantle
#

nice

#

thx

wispy monolith
#

What is the recommended way or approch to do this:

getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "['plugin name']: Plugin is enabled");
young knoll
#

Plugins already have a enabled message

quaint mantle
#

put your plugins name in 'plugin name'

wispy monolith
remote swallow
#

use your logger

wispy monolith
wispy monolith
young knoll
#

mhm

wispy monolith
#

and this project is much smaller than me to actually make a logger

remote swallow
quaint mantle
#

does it matter if its a 2016tutorial ?

wispy monolith
#

i thought you meant create a logger class and implement stuff like that

#

good

remote swallow
grizzled oasis
#

Hi, i wanted to make a scripting system for my plugin, how can i like start trying adding for example if clauses etc..

quaint mantle
#

ok

#

why is mincraft coded in java

grizzled oasis
quaint mantle
#

hes dumb

kind hatch
#

Why is anything programmed in any language? It's just the language they were familiar with.

quaint mantle
river oracle
#

Sounds like a bad idea

remote swallow
#

yeah

river oracle
#

I'm in

tender shard
wispy monolith
remote swallow
#

i would rather code in java than python or something

river oracle
#

Java is pretty decent for games anyways ngl

remote swallow
#

or C or its children

wispy monolith
#

it makes everything contained and easily managable

plucky pasture
river oracle
wispy monolith
plucky pasture
#

Assembly is not universal it’s architecture based

wispy monolith
quaint mantle
#

what the best for beginer eclispe or intelij

river oracle
remote swallow
#

intellij

river oracle
#

Intellij most people use

quaint mantle
#

ok

wispy monolith
river oracle
#

I use vscode eclipse is also extremely popular

remote swallow
#

most of us use intellij, so using intellij would be easier to get help with

plucky pasture
#

I used notepad++

wispy monolith
chrome beacon
#

Paint IDE >

river oracle
quaint mantle
#

what sould i program to learn java

kind hatch
wispy monolith
remote swallow
#

use info prob

kind hatch
#

Info level

#

Warning for any warnings

#

Severe for any errors

river oracle
chrome beacon
wispy monolith
remote swallow
#

yeah

kind hatch
#

Yes

wispy monolith
#

nice

eternal oxide
#

It adds a prefix so long as it's a sync task

#

async it will not

wispy monolith
#

last question, does the prefix in plugin.yml add the squere braces or should i add them?

chrome beacon
tender shard
quaint mantle
#

what is cli ?

tender shard
#

command line

quaint mantle
#

ok

tender shard
#

whenever you learn a new language:

  1. hello world
  2. cli calculator
#
  1. a software to organize orders of grand pianos
quaint mantle
#

breh hello worl

#

i dont even know to do that

remote swallow
#

time to learn

frail gale
#

I learned Java by programming Minecraft mods and just changing the string names and etc. I also copied the code from every tutorial by hand

chrome beacon
#

Everyone needs to start somewhere

grizzled oasis
#

Hi, how can i like make my own scripting system for my plugin, like someone has some example?

quaint mantle
#

just use SKRIPT

pseudo hazel
#

scripting system? highly depends on the goal

frail gale
#

After a while I rewatched some Java tutorials

remote swallow
quaint mantle
#

why

grizzled oasis
remote swallow
#

its perforance is horid

chrome beacon
#

How does the syntax look

pseudo hazel
#

yes, and then make some mock programs

wispy monolith
# quaint mantle breh hello worl

you use the System.out.println() method, and that should be in the main method, or in a method called by the main method, and all of that must be in a class

yeah, java is very strict about OOP

pseudo hazel
#

and then create the parsers so that atleast those mock scripts work like you want

quaint mantle
pseudo hazel
#

and then make a billion more scripts to refine the parser

grizzled oasis
pseudo hazel
#

whats the goal of it

#

like why would people use it over something like skript

chrome beacon
#

You can always hook skript

grizzled oasis
pseudo hazel
#

i see

#

so you want to make a scripting lang to program the computers?

#

quite complicated but im sure you know that already

desert tinsel
#

can a player have more than 1 scoreboard team?

vivid skiff
#

To save a list in MySQL i should create an another table where put everything like
id1 | id2
id1 | id3
... | ...

?

grizzled oasis
pseudo hazel
#

not only do you need a format, you need to decide what inputs or output the script can have as well

#

yes

hazy parrot
#

only if its many-many relationship

pseudo hazel
#

but like the point of you scripts is to control the computers though right?

chrome beacon
#

You can always do like OpenComputers does

#

Load an actual Lua based OS

pseudo hazel
#

yes but then make it not lua xD

#

since lua is kinda sucky

#

but its preference i guess

chrome beacon
#

Many kids know Lua

remote swallow
#

specifically roblixers

chrome beacon
#

^

pseudo hazel
#

that doesnt make it not sucky

grizzled oasis
grizzled oasis
pseudo hazel
quaint mantle
#

Hello so I'm trying to add NBT tags to an item but haven't quite been able to
I use the remapped param and have everything setup net.minecraft.server itself is all defined and works but for some reason "net.minecraft.server.v1_8_R1" doesn't exist under net.minecraft.server was wondering if anyone knows why

chrome beacon
#

Remapped does not exist for 1.8

kind hatch
#

Mappings only work back to 1.14

tender shard
#

1.8 remapped does not even exist

chrome beacon
#

Also WHY 1.8

#

Please at least use 1.8.8

remote swallow
echo basalt
#

1.14

quaint mantle
kind hatch
tender shard
#

mappings 1.14, spigot 1.17

quaint mantle
#

will this work ?