#help-development

1 messages · Page 1417 of 1

clear iris
#

paper for anti xray

lofty mulch
#

bukkit provided api

#

but I dont really need it

clear iris
#

im trying to learn how to limit ores in chunk generation atm

wispy monolith
#

Can a player input an infinite amount of characters inside an arg? or should I make this by my own?

weary fossil
#

?paste

queen dragonBOT
weary fossil
#

whats is null now?

lofty mulch
#

stack trace?

weary fossil
#

NullPointerExeception

#

on entry

#

for (Entry<UUID, Integer> entry : valores)

lofty mulch
#

valores is null

weary fossil
#

i know

#

but, i dont have idea to make is not be null

#

entry.setValue(numberReports);

lofty mulch
#

init it

weary fossil
#

how?

#

i tried

lofty mulch
#

public static List<Entry<UUID, Integer>> valores = new ArrayList<>();

weary fossil
#

public static List<Entry<UUID, Integer>> valores;

#

its not initi?

lofty mulch
#

nope

weary fossil
#

right, thanks

cinder thistle
#

public static

#

dear god

#

use encapsulation

wispy monolith
#

does null make a string empty?

weary fossil
#

The NullPointerExeception error came out after I init the ArrayList, however, it is not returning anything in the command event

lofty mulch
#

dont abuse static

#

you will be fine

weary fossil
#

?paste

queen dragonBOT
wispy monolith
#

Does it show an error on break;

#

?

weary fossil
#

no

#

i dont have any error

#

but, only dont work

wispy monolith
lofty mulch
weary fossil
#

but dont work anything

wispy monolith
#

hmmm

weary fossil
#

null excep

wispy monolith
#

idk bcz I don't see anything wrong

weary fossil
#

weird

#

:/

wispy monolith
#

maybe there is something but I can't find it

weary fossil
#

one moment

lofty mulch
#

oh lord

minor garnet
#

people, i'm a bit of a layman in creating some systems, in my case i would need to make a category system where i define several locations in a world, and ends up spawning a particular item in this location with a list of various types of items

wraith rapids
#

uh huh

#

is there a question

quaint mantle
#

I have a block location and I want to fill blocks around it, is there any way to do so?

I have location of gold block and I want to fill diamond blocks

wraith rapids
#

add vectors or single numbers to the location

quaint mantle
#

wdym?

wraith rapids
#

Location::add

#

add 0,0,2 to move it 2 blocks towards the positive z

quaint mantle
#
if (block.getType() == Material.CHEST){
            e.setCancelled(true);
            Location loc = block.getLocation();
            int x = (int) loc.getX();
            int y = (int) loc.getY();
            int z = (int) loc.getZ();
            
        }
#

this is what I have

wraith rapids
#

throw some for loops at it or hardcode the relative locations of the diamond blocks

#

then add that relative location to the location of the origin block

#

and check whether the block at the resulting location is diamond

main dew
#

How I can set item in EntityPickupItemEvent?

compact cape
main dew
#

I haven't this ;/

compact cape
plain quest
#

i’m trying to change a player’s skin, i know how to do it for other players but it is not visible for the player who’s skin is changed

#

is it possible?

compact cape
#

My question: How can I check if a player place an item in his inventory from a chest?

wraith rapids
#

the given itemstack is mutable

plain quest
wraith rapids
#

good luck basically

#

skins are cancer

#

the skin and playerlist protocol is cancer

compact cape
wraith rapids
#

protocollib makes fucking with the protocol quite a bit easier

plain quest
#

ok so do i need to overrides the player list packet sent to the the client giving info about the skin?

wraith rapids
#

sounds about right

plain quest
#

ok i’ll try..

fading lake
wraith rapids
#

yes

#

if you don't put anything in a variable, the variable is empty

#

aka null

#

String variable = null;
and
String variable;

#

are the same thing

minor garnet
wraith rapids
#

do you want to ask it at some point

rotund ravine
#

Not primitives

wraith rapids
#

for primitives a default value of 0 or false is used

supple marsh
#

Hello, quick question: How do I rotate an anvil? I want it to spawn facing the same direction the player is facing, but couldn't find any method to do it anywhere.

wraith rapids
#

it's probably Directional or something

#

come to think of it, is there even any documentation to refer to to figure out which blocks' blockstate/blockdata implement which of the interfaces?

#

i've always just kind of eyeballed it

minor garnet
#

guidelines at last

silent stratus
#

Hello is there any way to stop a player from leaving the boat? I was trying to cancel the VehicleExitEvent but that doesnt work...

@EventHandler
    public void onPlayerLeaveBoat(VehicleExitEvent e)
    {
        if (e.getVehicle() instanceof Boat)
        {
            System.out.println("Player Exit");
            e.setCancelled(true);
        }
    }```
timid rose
#

can someone help me set a world border?

visual tide
#

is there a better way to tabcomplete items other than listing them one by one

worldly ingot
#

Well you have Material#values() and Material#isItem() in your arsenal, Ivj

timid rose
#

can someone help with world border

weary fossil
#

?paste

queen dragonBOT
weary fossil
#

its correctly?

visual tide
#

why does intellij give me a crap ton of errors when using

@Override
    public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {

    }
crude charm
sudden raft
visual tide
#

most helpful

sudden raft
#

I just corrected the link above

sudden raft
#

You must return something

#

a List<String>

visual tide
#

oops

quaint mantle
#

How can I make entity to attacks everyone?

#

with pathfindergoal

#

Targeting entity : ```
this.goalSelector.a(1, new PathfinderGoalNearestAttackableTarget<EntityHuman>
(this, EntityHuman.class, true));

#

(But without humanentity)

tacit drift
#

saw this photo on a discord server

#

how can you do a 11 row inventory?

lusty cipher
#

feels like modded

granite stirrup
#

so im using spigot api and the commandexecutor thing i implemented it and it isnt working?

odd gulch
#

Prev version 1.14 you could make inventories larger than 54 slots. Now you can't. Maybe with the user of resource packs but I haven't tried that.

tacit drift
#

said that it's client side

#

lol

odd gulch
glass sparrow
#

nice

tacit drift
#

Cool

odd gulch
#

Still only works prev 1.14 unfortunately.

granite stirrup
#

u sure

odd gulch
#

I am

tacit drift
#

Not the best way to do it anyway, They use a special client

#

it's a turkish server

granite stirrup
#

i swear i seen that above 1.4

tacit drift
#

and maybe for menus with certain titles, they render the playerinventory diff

granite stirrup
#

anyway why not working lol

glass sparrow
#

probably just an rp

odd gulch
#

What does the error say?

granite stirrup
#

hang on

vernal basalt
#

can you not overwrite a value for a addDefault()

#
plugin.getConfig().addDefault(uuid + ".helmet", helmet);
plugin.getConfig().addDefault(uuid + ".chestplate", chestplate);
plugin.saveConfig();```
#

it doesn't update the value anymore

odd gulch
granite stirrup
odd gulch
#

Is CommandExecutor properly imported?

granite stirrup
#

ye

odd gulch
#

Screen

granite stirrup
odd gulch
granite stirrup
vernal basalt
odd gulch
granite stirrup
#

i saved a config in my plugins folder and it had comments

lusty cipher
#

Yo, how can I async resolve the player, before doing

skull.setOwningPlayer(player);
inventory.setItem(skull);

so that if the lookup for it should fail, I can at least catch it and it doesn't crash the main thread.

quaint mantle
#

lmao

#

it wont crash the thread

#

it'll just give a steve head

odd gulch
lusty cipher
#

it won't crash but paper makes a massive fuss about a exception cause it apparently locks up the thread or something

quaint mantle
#

go ask in paper 🤷🏿‍♂️

vernal basalt
lusty cipher
#
  1. They only want you to use something from their API
  2. This is a Spigot plugin, I just run my personal server on Paper
odd gulch
lusty cipher
#

and I mean, Spigot must have some solution to this

quaint mantle
odd gulch
vernal basalt
#

oh

lusty cipher
#

that's not the problem?
It's when the lookup on the Yggdrasil API fails or times out that it may see the thread as "locked up"

quaint mantle
#

what is Yggdrasil

#

what are you trying to do

granite stirrup
lusty cipher
#

Yggdrasil is the internal Minecraft authentication library/system

#

Nothing that I use

odd gulch
lusty cipher
#

it's just when you do inventory.setItem and you give it a skull Spigot will call a yggdrasil method to get the players information

granite stirrup
quaint mantle
granite stirrup
#

like with the commandexecutor not working

odd gulch
lusty cipher
quaint mantle
#

you will not lock up a server's main thread by causing a non-internal NPE

#

i've never seen it happen

#

just do the method, if it doesnt work debug it

lusty cipher
#

it works

#

it's just taking too long

#

as said

quaint mantle
#

show your code

lusty cipher
#

because of a network call from spigot

granite stirrup
#

theres the screenshots

lusty cipher
#
            Bukkit.getScheduler().runTask(BlockProt.instance) { _ ->
                for (item in items.indices) {
                    inv.setItem(item, items[item])
                }
            }

and in an async bukkit task before that I populate items with a skull each,

        val skull = ItemStack(Material.PLAYER_HEAD, 1)
        val meta = skull.itemMeta as SkullMeta?
        meta!!.owningPlayer = player
        meta.setDisplayName(player.name)
        skull.itemMeta = meta
quaint mantle
#

why async?

#

async != better

granite stirrup
#

why not a try catch lol

#

jk

lusty cipher
#

it's not an exception

granite stirrup
#

how do u know

odd gulch
# granite stirrup

Yea that is odd. IntelliJ has something called "Invalidate Caches / Restart". Eclipse probably has something similar.

lusty cipher
# quaint mantle why async?

Cause I thought that when doing setOwningPlayer or create the SkullMeta the network calls would go through, so I made that part async.
Turns out it's the inv.setItem part that is actually performing the network calls.

#

But in the end it doesn't really matter

quaint mantle
#

just

eternal oxide
quaint mantle
#

(Dont do it async)

lusty cipher
#

Doing 1 helps out and doesn't make the thread lock up for 10 seconds

#

Still it could be more than 20 calls theoretically

#

Which is why I would like to do this async

#

With some kind of Bukkit API or similar

granite stirrup
eternal oxide
#

maven in eclipse?

granite stirrup
#

ye?

eternal oxide
#

just cache, then project menu -> clean

odd gulch
#

Nah. It is the IDE's cache

#

Not Maven

eternal oxide
#

else right click your pom -> maven -> update project

granite stirrup
#

gave me error

eternal oxide
#

error?

#

updating maven you make sure the bottom 3 options are ticked

granite stirrup
eternal oxide
#

Looks like your project structure is wrong

granite stirrup
#

it isnt

#

i legit put it the way it said

eternal oxide
#

I'm pretty sure resources should not be nested that deep

granite stirrup
#

isnt it meant to be in src/main/?

eternal oxide
#

I couldn;t say for sure. I use a custom layout

granite stirrup
#

i kinda want to move everything into src lol

odd gulch
#

Should be something like this

thorny bridge
#

how can i get the name of an advancement instead of this: org.bukkit.craftbukkit.v1_16_R3.advancement.CraftAdvancement@160e3cc3

granite stirrup
#

without the test folder tho

eternal oxide
#

Yep, I just created a new maven project and that is correct

granite stirrup
#

why is it moaning about resources tho

eternal oxide
#

what does your problems tab show?

granite stirrup
#

it says that the methods dont exist

#

in 4 different classes

#

even tho it is a method

#

of CommandExecutor

ripe lake
granite stirrup
#

thats from bukkit

granite stirrup
#

maybe u never set it?

wraith rapids
#

if your global variable is null then the problem isn't that you can't retrieve it

#

it's that it's null

eternal oxide
wraith rapids
#

null is null, retrieving something that is null gets you null

granite stirrup
#

ohg wait i read that wrong

#

oh

#

ok

ripe lake
wraith rapids
#

then you're reading from and writing to in the wrong order

granite stirrup
#

nah didnt work

ripe lake
#

How can I correct it then?@wraith rapids

wraith rapids
#

by doing it right

eternal oxide
granite stirrup
hidden delta
#

anyone uses eclipse need to switch intellij idea for better experinece

#

eclipse will do more suffering

eternal oxide
#

right click src -> build path. If there is an option to remove it, then it is

granite stirrup
cold field
#

Guys, quick question. I need a good world manager plugin 1.16.5 (Like the old multiverse-core), does anyone know one?

wraith rapids
#

multiverse-core

cold field
#

Is it still good?

granite stirrup
#

ye

wraith rapids
#

it's as good as it was before

granite stirrup
#

lol

hidden delta
granite stirrup
#

it works on 1.16.5

#

lol

cold field
#

Ook thanks.

granite stirrup
#

it never got outdated..

#

everyone still uses it

hidden delta
#

not me.

cold field
#

I saw some servers that use some slimy thing

hidden delta
#

I use my custom world manager

cold field
#

idk the name

maiden thicket
#

slimeworldmanager

wraith rapids
#

that's not exactly a replacement

maiden thicket
#

it's not a world manager i know

#

it technically is

#

but

#

it only creates void worlds

#

atm

cold field
#

what it does?

#

oh

maiden thicket
#

but you're able to store worlds in DBs instead

#

else in files it's way smaller sizes

hidden delta
#

slimeworldmanager ^^

maiden thicket
#

for example originrealms uses slimeworldmanager

hidden delta
maiden thicket
#

except grinderwolf modified it so it can create actual terrains

wraith rapids
#

slime format worlds are more geared towards minigames and whatnot

maiden thicket
#

for player's personal realms

hidden delta
#

Slime World Manager is a Minecraft plugin that implements the Slime Region Format, developed by the Hypixel Dev Team. Its goal is to provide server administrators with an easy-to-use tool to load worlds faster and save space.

maiden thicket
#

yeah you'd probably use SWM for skyblock tbh

#

that's what hypixel does

#

bc swm is based off the slime format in hypixel

wraith rapids
#

yeah dunno bout skyblock

#

not much happening there terrain wise

cold field
#

If I need to load and unload worlds very often, what should I use?

maiden thicket
#

hypixel uses .slime format for player's worlds

#

for their island worlds

wraith rapids
#

but definitely not intended for your regular survival worlds

maiden thicket
#

just use multiverse core

#

hypixel also uses slime for player housing but i think that's it

wraith rapids
#

small and static

maiden thicket
#

it's a v good plugin but idt it's being maintained if i remember

granite stirrup
#

i cant fix my shitty thing :(

maiden thicket
#

since grinder is focused on originrealms atm

sleek girder
#

How do I get something like this for when someone searches for my website? (I use NamelessMC)

maiden thicket
granite stirrup
#

my plugin

#

XD

maiden thicket
#

whats wrong with it

cold field
#

ok thanks

wraith rapids
#

presumably it's shit

granite stirrup
#

oncommand from bukkit class CommandExecutor doesnt work

wraith rapids
#

define doesn't work

granite stirrup
#

and i need to use it

maiden thicket
#

wdym onCommand

#

you mean

eternal oxide
maiden thicket
#

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){}

#

?

granite stirrup
#

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

eternal oxide
#

You have the correct import and its not showing any error on it

maiden thicket
#

is the command registered

#

?

granite stirrup
#

no i meant its erroring

wraith rapids
#

what is saying what doesn't exist

maiden thicket
granite stirrup
#

yes

maiden thicket
#

show pls

maiden thicket
granite stirrup
granite stirrup
maiden thicket
#

what's the error

cold field
#

Does anyone have any idea why when I send a playerinfopacket with inside an entity with a skin to a target player if the target is still joining it spawns the npc without rendering the skin?

granite stirrup
#

it wouldnt be intresting

granite stirrup
#

it says it doesnt exist

vernal basalt
#

why are boots not being set to "None" when i have none on

#
            if (p.getEquipment().getBoots() == null) {
                String boots = "None";
            }
            else {
                if (p.getEquipment().getBoots().hasItemMeta()) {
                    boots = p.getEquipment().getBoots().getItemMeta().getDisplayName();
                }
                else {
                    boots = p.getEquipment().getBoots().getType().name().replace("_", " ").toLowerCase();
                }
            }```
eternal oxide
#

?paste

queen dragonBOT
granite stirrup
maiden thicket
#

show AbstractCommand

granite stirrup
#

it contains legit nothing lol over than a few functions ...

maiden thicket
#

o

#

ok

#

do u have a return true

#

?

#

or returnf alse

#

or anything

granite stirrup
granite stirrup
#

that isnt even the error

#

did u even look

maiden thicket
#

i did

#

im just narrowing it down

#

lol

eternal oxide
# granite stirrup

what happened when you moved your implement CommandExecutor to your abstract class?

granite stirrup
#

it caused a error in my main class

eternal oxide
#

that makes no sense

granite stirrup
#

cuz i was registering the comamnds there

#

and since the command didnt have implements CommandExecutor

maiden thicket
#

what's the eclipse shortcut for seeing hints

#

such as auto fixes

granite stirrup
#

it errored

maiden thicket
#

i.e. intellij's is alt enter

eternal oxide
#

it doesn;t need it as its extending the abstract

granite stirrup
granite stirrup
vernal basalt
#

oh no... why is is it linked

#
  chestplate: elytra
  leggings: diamond leggings
  helmet: Diamond Helmeteasefwqr33
  boots: Diamond Bootsqwe
29e391aa-e42f-475c-a232-e4dfe692fe33:
  helmet: Diamond Helmeteasefwqr33
  chestplate: elytra
  leggings: diamond leggings
  boots: Diamond Bootsqwe
#
 @EventHandler
    public void armor(PlayerInteractEvent event) {
        for(Player p : Bukkit.getOnlinePlayers()){
            UUID uuid = p.getUniqueId();```
eternal oxide
granite stirrup
#

oh wtf now it works

#

but oncomamnd

vernal basalt
#
            plugin.getConfig().set(uuid + ".helmet", helmet);
            plugin.getConfig().set(uuid + ".chestplate", chestplate);
            plugin.getConfig().set(uuid + ".leggings", leggings);
            plugin.getConfig().set(uuid + ".boots", boots);
            plugin.saveConfig();```
granite stirrup
#

still isnt working

#

bro

granite stirrup
eternal oxide
#

you will override it in yoru command class

vernal basalt
#

i thought the player loop would run sperate for each

cold field
#

I've downloaded a world, and into the world folder there is that. I was wondering from what plugin/mod this came from, does anyone know?

vernal basalt
#

not once for everyone

granite stirrup
#

ok it fixed it

#

weird

thorny bridge
#

how can i get the name of an advancement instead of this: org.bukkit.craftbukkit.v1_16_R3.advancement.CraftAdvancement@160e3cc3

granite stirrup
#

wtf there was a warning that have no info XD

#

eclipse is damn broken rn lol

cold field
#

nvm, found. It is a mod

odd gulch
#

Moving CommandExecutor shouldn't change anything

granite stirrup
odd gulch
#

This works just fine.

granite stirrup
#

it fixed it

#

i think eclipse is broken

lusty cipher
cold field
#

Thanks

odd gulch
solemn shoal
#

does spigot do anything special in terms of console handling?
when i print ansi sequences on windows it works fine when running under spigot, but when running separately it doesnt

eternal oxide
solemn shoal
odd gulch
granite stirrup
#

i think my version of eclipse is fucked

#

its a older version to

solemn shoal
#

when running under spigot:

granite stirrup
#

its eclipse java 2018-12

eternal oxide
solemn shoal
#

<yikes spigot loading slow>

odd gulch
#

Why don't you just update?

granite stirrup
#

uh

#

cuz

#

i dont want to

#

i like eclipse 2018

solemn shoal
#

output under spigot:

odd gulch
#

"Hey my IDE is outdated and causes issues but I like it"

granite stirrup
#

and i think i downloaded 2020 version but idk where it is

vernal basalt
#

ok i found out the problem with the link

#

if player 1 has full diamond

#

and player 2 has full iron

#

lets just say

#

and player 2 takes off his boots

#

then it will think he has the same boots as player 1

#

which is diamond

granite stirrup
#

so now i cant build the plugin in eclipse cuz if i do the resources are gonna be in the main folder ;-;

#

cuz of the structure

#

i wish i could change it

#

;-;

vernal basalt
#

and if player 1 took off their chestplate

#

it would say he has iron

granite stirrup
#

why does maven have to be like dat

odd gulch
#

Resources should be in main.

vernal basalt
#

how do i fix this

granite stirrup
#

but with eclipse it is

#

and it shouldnt be

#

...

odd gulch
#

I have never used Eclipse so I can't help you with that

granite stirrup
#

i think its cuz u meant to put resources in a source folder

#

not in a folder

#

and it should only be one directory

#

thats why i dont like to use maven but im using it cuz i need to

#

cuz i dont want to go have to build spigot api manually using buildtools :)

#

i think u should be able to change the resourceDirectory and the sourceCodeDirectory for maven

#

overwise its kinda lame

cold field
#

Any Good alternative to fawe?

granite stirrup
#

and bad

granite stirrup
#

i dont think there is

cold field
#

it doesn't handle well schems.

granite stirrup
#

how big are ur schems lOL

#

maybe get more ram

#

lol

cold field
#

No, what I mean is.

granite stirrup
#

lol

cold field
#

It screws up things like fences and signs

#

railroad

#

etc

granite stirrup
#

isnt that in worldedit ? already

#

i dont think theres fixing that

#

i dont think schems hold block rotations

#

lol

#

im not sure tho

cold field
#

😦

granite stirrup
#

just fix them manually thats the only way really

#

its never fucked up for me tho

#

idk im a newbie to schems

vernal basalt
#

help

sleek pond
#

Incorrect usage, the correct usage would be !help <error> <what to help with> to receive help with plugin development

solemn shoal
#

guess ill just include jansi in my jar lol

thorny bridge
#

how do I convert this (org.bukkit.craftbukkit.v1_16_R3.advancement.CraftAdvancement@160e3cc3 ) into the name of the achievement?

chrome beacon
#

Start by not printing the instance

thorny bridge
#

how should I do that?

eternal night
#

CraftAdvancement.getHandle().c().a()

thorny bridge
eternal night
#

gives you a ChatComponent tho

thorny bridge
#

how should i add it?

granite stirrup
#

u add it

#

:)

thorny bridge
#

where tho?

granite stirrup
#

in ur main file probs

compact haven
#

oh my

#

god

#

crosschat -> Crosschat 😄

thorny bridge
#

i got it thanks!

ripe lake
#

@limpid pumice I love you so much

eternal night
# thorny bridge i got it thanks!
private String getEnglishDisplayName(Advancement advancement) {
    final IChatBaseComponent displayComponent = ((CraftAdvancement) advancement).getHandle().c().a();
    final String key = ((ChatMessage) displayComponent).getKey();
    return LocaleLanguage.a().a(key);
}

would return The End? for the advancement story/enter_the_end

#

if that is what you needed

#

not that you can only translate to English as the server only ships that

harsh void
#

Hey, I was wondering how I could summon an entity and then every tick or two ticks (in-game) position that entity to be looking the same way as the player, and be in the same location as the player

chrome beacon
#

Use a BukkitRunnable and loop through all players and entities

coral sparrow
#

Hello, How do i do like /command command1

granite stirrup
#

google search how to make command using (api of ur choice spigot,paper)

coral sparrow
#

command*

granite stirrup
coral sparrow
#

but the thing is like

#

bruh

#

I mean

#

like

#

/command (a new command here)

granite stirrup
#

like this in the onCommandjava if (args[0].equals("something")) { do stuff }

#

easy

coral sparrow
#

oh ty

granite stirrup
maiden thicket
#

args[0].equals("something") or args[0].equalsIgnoreCase("something") instead pls

granite stirrup
#

i meant equals

#

lol

#

oops

#

i forgot it doesnt work with ==

maiden thicket
#

== is like

#

memory location or whatever

#

memory reference

#

i forget it's something to do w memory tho

#

equals is comparing objects or smthn

granite stirrup
#

before i tried args[0] == "something" didnt work

#

;-;

coral sparrow
granite stirrup
#

lol

plain sequoia
#

hello, does anyone know how to disable creating a map when you right click an empty map?
This code is in a PlayerInteract event.
The weird thing is that this code only disables it when you right click a block

granite stirrup
#

cuz air isnt a block?

#

lol

#

i dont think so anyway

plain sequoia
#

you can't disable it?

plain sequoia
#

what are you saying?

granite stirrup
#

is it a block

#

its not a block u can just get atleast

plain sequoia
#

why is this guy speaking in half sentences?

granite stirrup
#

what

#

i dont i just like splitting my words in to different messages

coral sparrow
coral sparrow
plain sequoia
#

yes

coral sparrow
plain sequoia
#

no

ivory sleet
#

cancel MapInitializeEvent iirc

plain sequoia
#

you can't cancel that event

ivory sleet
#

oh

#

shet

#

tried cancelling inventory interact event?

plain sequoia
#

I will try that

#

give me a second...

ebon venture
#

Is there a way to buy a litebans whit paysafe card?

slim magnet
#

is there a way/feature for when the player looks at an entity it displays it's custom name but not when looking away?

lusty cipher
#

How safe is it to do Inventory#setItem from an async task/runnable?

#

probably very unsafe, right

coral sparrow
ebon venture
#

oki

eternal oxide
lusty cipher
#

ok, thx

tacit drift
#

can i hide player name using packets? to fix a bug on 1.8 with invis players having their names visible when using something like nte for nametags

granite stirrup
#

how do i set build path of maven

#

so it isnt target XD

glass sparrow
#

you tried to edit the Cart#getLocation#setDirection?

#

like after it was spawned?

#

weird, not sure sorry

visual tide
#

i'm modifying my config like this

if (Material.matchMaterial(args[2].toUpperCase(Locale.ROOT)) != null) {
                            List<String> banned_blocks = plugin.getConfig().getStringList("banned-blocks");
                            banned_blocks.add(args[2]);
                            plugin.getConfig().set("banned-blocks", banned_blocks);
                            player.sendMessage(ChatColor.GREEN + "Block successfully added to banned blocks!");
                        }

but when i reload or restart the changes are gone, is there a way to save them?

ivory sleet
#

Save the in-memory config into the actual file?

visual tide
#

um

#

how do i do that tho

young knoll
#

Plugin#saveConfig

visual tide
#

thx

quaint mantle
#

Did something with the Bukkit.getOfflinePlayer(name) method change? I know it's deprecated but it's just returning random UUIDs now

ivory sleet
#

Uh it shouldn’t return random uuids

#

Only reason for its depreciation is the fact that it may make a request to mojang

young knoll
#

I wonder what it does if the request fails

#

Is it nullable?

quaint mantle
#

Check this.

vernal basalt
#

my config doesn't save anymore

#

idk why

#

i didn't change anything

quaint mantle
# quaint mantle https://gyazo.com/56d770ebd3ccf3dc908e98f3a7d14689
    public boolean onCommand(CommandSender sender, Command command, String alias, String[] args) {
        Player p = (Player) sender;
        if (args[0].length() > 16) {
            p.sendMessage("" + Bukkit.getOfflinePlayer(UUID.fromString(args[0])).getUniqueId());
        }
        else {
            p.sendMessage("" + Bukkit.getOfflinePlayer(args[0]).getUniqueId());
        }
        return true;
    }```
#

See how it's returning a different UUID if I change a letter to caps

#

that's not normal right

#

not to mention that none of the UUIDs match the actual UUID

#

Weird...

young knoll
#

Is your server in online mode

quaint mantle
#

Yep

young knoll
#

And is the connection not being firewalled

quaint mantle
#

correct

vernal basalt
#
            plugin.getConfig().set(uuid + ".helmet", helmet);
            plugin.getConfig().set(uuid + ".chestplate", chestplate);
            plugin.getConfig().set(uuid + ".leggings", leggings);
            plugin.getConfig().set(uuid + ".boots", boots);
            plugin.saveConfig();
            p.sendMessage("saved");```
#
    @EventHandler
    public void armor(PlayerInteractEvent event) {
        for(Player p : Bukkit.getOnlinePlayers()){
            UUID uuid = p.getUniqueId();
            p.sendMessage("test");```
#

but it's not being saved

#

infact somehow all the old data was lost

#
29e391aa-e42f-475c-a232-e4dfe692fe33: {}
#

well ok it is being saved

#

if i delete it it comes back

#

but the data isn't being written

#

unless is everything set to null?

quaint mantle
#

Same thing on localhost aswell @young knoll

torn oyster
#

is there a way to attempt to connect a player in bungeecord

quaint mantle
#

yessir

vernal basalt
#

how can i define a variable like this

#

String helmet;

#

inside the same void that i will be using it in

#

shouldn't the next time i try and define it it just gets overwritten?

young knoll
#

Local variables are local

#

They only last as long as the code block does

vernal basalt
#

yeah

#

my problem is

#

if a player doesn't have boots on

#

then the variable would stay has the previous person's armor

#

making it so if player 1 had diamond boots

young knoll
#

Then it isn't local

vernal basalt
#

and player b had gold

#

and player b took theirs off

#

it says they have diamond

vernal basalt
young knoll
#

Declare it inside the method

vernal basalt
#

then i get Error:(36,23) java: error: variable helmet is already defined in method armor(PlayerInteractEvent)

young knoll
vernal basalt
#
            //helmet
            String helmet;

            if (p.getEquipment().getHelmet() == null) {
                String helmet = null;
            }
            else {
                if (p.getEquipment().getHelmet().hasItemMeta()) {
                    String helmet = p.getEquipment().getHelmet().getItemMeta().getDisplayName();
                }
                else {
                    String helmet = p.getEquipment().getHelmet().getType().name().replace("_", " ").toLowerCase();
                }
            }```
quiet ice
#

helmet = null

vernal basalt
#

tried that

quiet ice
#

You don't need to define it's type twice

quaint mantle
#

https://api.mojang.com/users/profiles/minecraft/tomcool
This returns this {"name":"tomcool","id":"0eadc03912364963b48bf663a8f853da"}

Bukkit.getOfflinePlayer("tomcool").getUniqueId() returns a random UUID that's not associated to any player

quiet ice
#

So you'd get

            //helmet
            String helmet;

            if (p.getEquipment().getHelmet() == null) {
                helmet = null;
            }
            else {
                if (p.getEquipment().getHelmet().hasItemMeta()) {
                    helmet = p.getEquipment().getHelmet().getItemMeta().getDisplayName();
                }
                else {
                    helmet = p.getEquipment().getHelmet().getType().name().replace("_", " ").toLowerCase();
                }
            }
young knoll
#

You should probably store an instance rather than calling p.getEquipment.getHelmet 3 times

quiet ice
quaint mantle
#

the server is in online mode

earnest junco
#

if it is, thats why

eternal oxide
quaint mantle
#

nah

eternal oxide
#

has tomcool ever logged into your server?

quaint mantle
#

no

eternal oxide
#

then you will not have a local cache of that player

quaint mantle
#

same result with my main account though

hidden delta
#
    public static boolean hasPlayedBefore(String name) {
        Player player = Bukkit.getPlayerExact(name);
        if (player != null) {
            return true;
        } else {
            OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name);
            return offlinePlayer.hasPlayedBefore();
        }
    }
plain sequoia
hidden delta
#

I use this method to check if the player is has played before in this server

earnest junco
young knoll
#

Right click air should fire as long as you are holding an item

quaint mantle
#

Is the fallback incorrect then?

young knoll
#

It will not fire with an empty hand

earnest junco
#

no the fallback is correct, although it shouldn't care about capitalization iirc

quaint mantle
#

but then why are my results not correct

eternal oxide
earnest junco
#

🤷‍♂️ thank mojang

#

do you need to consider ALL player names or just ones that have joined the server

quaint mantle
#

All.

eternal oxide
#

only if the Player name is unknown to Mojang should you get a generated UUID

earnest junco
#

I'd suggest doing a quick api call yourself then

quaint mantle
#

Yeah no other options IG

#

this only started happening like a day ago btw

#

it was perfectly fine before

eternal oxide
#

Why do you need to lookup an offline player by name?

quaint mantle
#

Skins

quiet ice
#

Did you mess with the player cache?

quaint mantle
#

na

#

nothing changed to this server

#

btw I created a new localhost server and the result is the same

eternal oxide
#

if he got an invlid lookup then his cache is incorect

quaint mantle
#

a completely fresh server

eternal oxide
#

This is my JD for an offline player by name ```java
/**
* (Deprecated) Gets an OfflinePlayer object ![NEVER USE]!
* adds this data to the servers usercache.
* Always returns an object with this name, but the UUID will be generated if there is no account.
* (performs a blocking web request if the player is not known to the server)
*
* -----------------------------------------------------------------
* The reason to never use this is it adding data to the usercache.
* This can result in a name being associated with an invalid UUID
* possibly confusing future searches.
* -----------------------------------------------------------------
*
* @param name a sting of this players name (case insensitive)
* @return OfflinePlayer object for this name.
*/
@Deprecated
public static OfflinePlayer getOfflinePlayer(String name) {

    return Bukkit.getOfflinePlayer(name);
}```
#

I never use it for the commented reason

#

if I want an offline player I getOfflinePlayers() and search it

foggy bough
#

what java version do I need to make this?

eternal oxide
torn oyster
#
        if (!e.getKickReason().equals("full")) {
            e.setKickReason(ChatColor.RED + "The game is full! Placing you in the queue...");
            e.setCancelled(true);
            e.setCancelServer(kickTo);
            p.sendMessage(ChatColor.RED + "You have lost connection to the server you were on, so you have been put in the lobby.");
        } else {
            if (kickFrom.getName().equals("testing1")) {
                QueueManager qm = QueueManager.getQueueManager();
                if (!qm.queueForCaptureTheClay.contains(p)) {
                    qm.queueForCaptureTheClay.add(p);
                }
                p.sendMessage(ChatColor.GRAY + "You are currently in the queue! " +
                        "(" + (qm.queueForCaptureTheClay.indexOf(p) + 1) + "/" + qm.queueForCaptureTheClay.size() + ")");
            }
        }``` (this is in a ServerKickEvent)
#

the reason is full

#

but it just says

quaint mantle
#

ah that's fucked lol @eternal oxide

#

not sure why this started happening only a few hours ago

eternal oxide
# torn oyster

You will not see a kick message as you are cancelling the kick event

torn oyster
#
            if (kickFrom.getName().equals("testing1")) {
                QueueManager qm = QueueManager.getQueueManager();
                if (!qm.queueForCaptureTheClay.contains(p)) {
                    qm.queueForCaptureTheClay.add(p);
                }
                p.sendMessage(ChatColor.GRAY + "You are currently in the queue! " +
                        "(" + (qm.queueForCaptureTheClay.indexOf(p) + 1) + "/" + qm.queueForCaptureTheClay.size() + ")");
            }```
#

this is the code that is supposed to be running

#

the reason is "full"

eternal oxide
#

getKickReason() isn't spigot

torn oyster
#

oh

#

what is it then

eternal oxide
torn oyster
#

what

#

that isnt getKickReason

plain sequoia
#

eae get's not send when you right click air for some reason, can't find why

torn oyster
#

i know

#

im coding in bungeecord

eternal oxide
#

ah

torn oyster
#

i thought u meant the e.getKickReason()

#

wouldn't have the reason that was given

eternal oxide
#

debug the returned kick reason then

torn oyster
#

when the player was kicked on spigot

eternal oxide
#

make sure its your expected "full"

torn oyster
#

bruh

#

i printed the reasona

#

and it is

#

"?ffull"

eternal oxide
torn oyster
#

but i kick the player for reason "full"

eternal oxide
#

color code?

#

perhaps

#

&f is white

#

I think

plain sequoia
#

ye f is white

#

§r is reset

eternal oxide
# plain sequoia eae get's not send when you right click air for some reason, can't find why

This event will fire as cancelled if the vanilla behavior is to do nothing (e.g interacting with air). For the purpose of avoiding doubt, this means that the event will only be in the cancelled state if it is fired as a result of some prediction made by the server where no subsequent code will run, rather than when the subsequent interaction activity (e.g. placing a block in an illegal position (BlockCanBuildEvent) will fail.

plain sequoia
#

ah yes

#

just had to remove ignoreCancelled

#

ty

lean zodiac
sage swift
#

is there a more specific event for when dirt is tilled other than PlayerInteract?

kind coral
#

is there like a CropTrampleEvent?

eternal oxide
lusty cipher
#

Is it just me just now, or does Bukkit.getOfflinePlayers() return a List of all offline players with COMPLETELY random and invalid UUIDs?

kind coral
wraith rapids
#

in offline mode, yes it does

lusty cipher
#

it's online

wraith rapids
#

then no, it's not supposed to

glass sparrow
wraith rapids
#

what are you using to determine whether the uuids are valid or not

lusty cipher
#

but I think I just looked at one UUID from a user when the server was in offline mode accidentally

#

so nvm

kind coral
torn oyster
#
            p.connect(GlobalMessage.getPlugin().getProxy().getServerInfo("testing1"), new Callback<Boolean>() {
                @Override
                public void done(Boolean aBoolean, Throwable throwable) {
                    if (!aBoolean) {
                        queueForCaptureTheClay.remove(p);
                    }
                }
            }, ServerConnectEvent.Reason.PLUGIN);```
#

what is the boolean for

#

is it if the connection was successful

#

or failed

glass sparrow
kind coral
#

THERE IS WTF

#

SO POOOG

glass sparrow
#

thats cool

lusty cipher
#

there's something very weird going on....
at one point I do this and add it to an inventory.

meta.setOwningPlayer(player);

Then when someone clicks on that inventory, I do

val skull = item.itemMeta as SkullMeta?
val uuid = skull.owningPlayer?.uniqueId

Yet that uuid is complete garbage

wild gust
#

I'm getting into programming plugins and i'm trying to figure out how teams work but can't find a guide anywhere. Can anyone help?

hidden delta
wraith rapids
#

paper adds more tags :fingerguns:

torn oyster
#

okay so that means that the boolean would mean that the connection was successful

hidden delta
#

yup

torn oyster
#

doesnt really seem that way though

#

because im trying to remove the player from the queue when they join

#

but for some reason that sometimes doesnt work

#

and instead just says 1/1 in the queue

#

instead of 2/2

hidden delta
#

!aBoolean means if they not joined

#

you need to remove the ! to remove them if they joined the server

torn oyster
#

lines

wraith rapids
#

if that's a regular collection you can just

                if (qm.queueForCaptureTheClay.add(p)) {

                }```
hidden delta
#

I didn't use bungeecord for long ago

lusty cipher
#
    fun getPlayerSkull(player: OfflinePlayer): ItemStack {
        val skull = ItemStack(Material.PLAYER_HEAD, 1)
        val meta = skull.itemMeta as SkullMeta?
        meta!!.owningPlayer = player
        meta.setDisplayName(player.name)
        skull.itemMeta = meta
        return skull
    }
#

is there anything wrong with this function?

wraith rapids
#

it's written in kotlin

#

that makes it gay

lusty cipher
#

I am so confused as to why the items have a owningPlayer that has a different uuid

wraith rapids
#

you're not in offline mode right

lusty cipher
#

nope

wraith rapids
#

because skulls and offline mode don't play nice together

lusty cipher
#

I've checked the player value that goes into that function against the Mojang API / namemc, and they're totally valid

wraith rapids
#

i don't actually quite remember the format of a skull

#

can you send the itemstack/blockstate serialized info here

#

/data get block for blocks and /paper dump item for items

#

although i guess you're probably on spigot

lusty cipher
#

im testing on spigot rn, but I've got a purpur and a paper server set up aswell

torn oyster
#
            p.connect(GlobalMessage.getPlugin().getProxy().getServerInfo("testing1"), new Callback<Boolean>() {
                @Override
                public void done(Boolean aBoolean, Throwable throwable) {
                    if (aBoolean) {
                        queueForCaptureTheClay.remove(p);
                    }
                }
            });``` @hidden delta would the aBoolean be true if the Spigot AsyncPlayerPreJoinEvent was disallowed

because it checks if the /send was SUCCESS
but it appears it is "success" when the Spigot event was disallowed
#

anyone help

wraith rapids
#

try it on paper and send the serialized item data

#

it might be that set owning player doesn't quite do what one might expect it to

lusty cipher
#

hmm k

wraith rapids
#

i remember the skull data format being super weird

#

having duplicate data under different names for stuff like the owning player and their uuid

hidden delta
#

@torn oyster so you need to check in the ServerConnectEvent I guess

torn oyster
#

what

hidden delta
#

it will tell you if the player kicked or something

lusty cipher
#

ah yes

wraith rapids
#

great

lusty cipher
#

idk, might this help, it's just skull.toString()

ItemStack{PLAYER_HEAD x 1, SKULL_META:{meta-type=SKULL, display-name={"extra":[{"text":"schweinhd"}],"text":""}, internal=H4sIAAAAAAAA/+NiYOBi4AnOLs3JCSjKT8vMSeVgYPFLzE1l4CxOzihPzczLSGFgAACvmJtBJgAAAA==, skull-owner=schweinhd}}
wraith rapids
#

no that hammers the actual internal data into an unrecognizable state

lusty cipher
#

its just base64

wraith rapids
#

put the item in a chest or a container and run /data get block on it

#

that's the ghetto way of looking at item internals

lusty cipher
#

see its not an item

#

it's in a virtual "menu", so to speak

wraith rapids
#

you're kind of fucked then

lusty cipher
#

one sec I thought of something

wraith rapids
#

unload the plugin with the menu open and you can grab it i guess

lusty cipher
#

yeah exactly that

torn oyster
lean zodiac
lusty cipher
#

there's also just a Name attribute for the SkullOwner

wraith rapids
#

i'm not sure if set owner actually sets the gameprofile properties and data

lusty cipher
#

I mean it used to

wraith rapids
#

or if it only changes the name that's shown there

#

if you use paper you'd probably want to use the gameprofile setter instead

lusty cipher
#

yeah ik, im trying to target a broader audience tho

#

I feel like this used to work

#

someone over on the paper discord also said they've had issues with skulls just being steve/alex for no apparent reason

#

just my plugin is simply uuid based

#

so having uuids which are just random things doesn't quite work

wraith rapids
#

yeah i don't really work much with skulls

lusty cipher
#

I really have a feeling that the setOwningPlayer function is somehow broken

#

especially since the sessionserver API has been marked as down for a while now

#

which is where profile data and textures come from

lusty cipher
#

nope there's definitely something broke with skulls/bukkit/mc web api right now

eternal oxide
#

sessionserver queries look fine to me

lusty cipher
#

I thought so too, however the root, https://sessionserver.mojang.com/, does not answer. And I am not the only one experiencing this (or similar) issues with skulls not keeping their owners properties.

#

it works for online players.... just not for offline

lusty cipher
#

No, I mean when doing Bukkit.getOfflinePlayers, those players don't work with skulls.

#

but yeah I tested the APIs and they seem to be working fine

wraith rapids
#

mmm

#

the UUID is copied directly from the offlineplayer

#
    @Override
    public void setOwningPlayer(OfflinePlayer player) {
        Preconditions.checkNotNull(player, "player");

        if (player instanceof CraftPlayer) {
            this.profile = ((CraftPlayer) player).getProfile();
        } else {
            this.profile = new GameProfile(player.getUniqueId(), player.getName());
        }
    }
lusty cipher
#

yeah I tried doing it with NBT just earlier and it resulted in the same thing

wraith rapids
#

wait, you're doing it on itemstacks

#

this was for the tile state

#

i don't have any spigot source for the itemstack one

#

paper has redone it completely

lusty cipher
#

@wraith rapids But my own head works

#

which is the most confusing part

#

it uses the same function

wraith rapids
#

are you online?

sage swift
#

^

lusty cipher
#

well im on the server

#

so obviously yeah

wraith rapids
#

there's an instanceof there that changes how the logic works

#

if the player is online, the profile is grabbed from the player directly

#

if not, a new profile is constructed

lusty cipher
#

well GameProfile would just fetch it from the API

wraith rapids
#

well it should

lusty cipher
#

which from what I saw before times out sometimes

wraith rapids
#

but that's the only difference i see

lusty cipher
#

When doing it on like 5 heads the paper thread shut my plugin down for blocking the main thread for more than 10 seconds

wraith rapids
#

lol

#

yeah you shouldn't complete profiles on the main thread

lusty cipher
#

and this has 100% worked like a few weeks before

#

yes I've moved that now

wraith rapids
#
    @Override
    public boolean setOwningPlayer(OfflinePlayer owner) {
        if (owner == null) {
            setProfile(null);
        } else if (owner instanceof CraftPlayer) {
            setProfile(((CraftPlayer) owner).getProfile());
        } else {
            setProfile(new GameProfile(owner.getUniqueId(), owner.getName()));
        }

        return true;
    }
#

but well this is the under the hood

#

i don't have authlib source so I can't look at what the gameprofile ctor does

#

but the fault is probably there

lusty cipher
#

doubt that

wraith rapids
#

well... it works as intended when it's an instanceof craftplayer

#

so the existing profile works

lusty cipher
#

when doing inventory.setItem(skull

#

the api call happens

#

because from there CraftMetaSkull#applyToItem is called

torn oyster
lusty cipher
#

here the stacktrace from earlier

#

this is the point where it laggs and actually calls the API

wraith rapids
#

it doesn't need to call the api for online players

lusty cipher
#

yeah I know

#

so I blame it on the API

wraith rapids
#

could be the case

lusty cipher
#

eventhough it seems to work when just using it over the browser

wraith rapids
#

paper will try to load it from the usercache

#

have you checked if it works for a recently visited player on paper

lusty cipher
#

the sessionserver is taking up to 450ms to respond

torn oyster
#

okay i am being ignored at this point

wraith rapids
#

indeed you are

#

what is your question

torn oyster
wraith rapids
#

i'm not gonna go on some cancer thread

torn oyster
#

bruh

#

im not bothered to repost it

wraith rapids
#

spigot's cloudflare shit bricks my browser

#

i'm not bothered to go through that

eternal oxide
torn oyster
#

no

#

im asking how to make the /send command have a FAIL result

eternal oxide
#

?paste

queen dragonBOT
torn oyster
#

if the AsyncPrePlayerLoginEvent is disallowed

eternal oxide
torn oyster
#

im not doign redirects

#

how do i even use that with my AsyncPrePlayerLoginEvent

#

or bungeecord /send

eternal oxide
#

a browser handles it without you seeing. In code you have to deal with a redirect yourself

lusty cipher
#

@torn oyster idk random suggestion but what about cancelling the login event?

torn oyster
#

i dont think u can

lusty cipher
#

oh indeed, yes

torn oyster
#

wdym

lusty cipher
#

yeah it's not cancellable

#

but event.disallow() should work, maybe?

wraith rapids
#

disallow the prelogin event

torn oyster
#

i tried that

#

but it still comes up as "SUCCESS"

#

when i /send my alt there

#

but my alt doesnt connect either

wraith rapids
#

have you tried velocity

#

it's less shit

#

it's kind of like bungee but not a veritable fucking shitfest

wary harness
#

any one can help

#

can't compile

#

my project

#

from some reason got stuck

proven sierra
#

jitpack is probably down

#

stop downloading spigot from jitpack

#

aahhh

#

you need to run buildtools i think

wary harness
proven sierra
#

you have jitpack as a repository, and probably spigot maven repo too

#

but as the nms build isn't on there

#

it tries to find on jitpack, which it also isn't on

#

run buildtools

wary harness
#

oh thanks

vernal basalt
#
            if (p.getEquipment().getChestplate().getType() == null) {
                chestplate = "None";
            }```
```java
            if (p.getEquipment().getChestplate().getType() == Material.AIR) {
                chestplate = "None";
            }```
#

ive tried both

#

and chestplate isn't being set to null

wraith rapids
#

print it out

vernal basalt
#

ok

#

ohhh

#

wait up

#

the NPE is the if statement

#

itself

wraith rapids
#

getChestplate returns null

#

you calling getType tries to call a method on a null pointer

#

which throws a null pointer exception

vernal basalt
#

yeah

wraith rapids
#

nullcheck getEquipment and getChestplate

#

i have lost count of how many times you've asked about trivial NPE's

#

you need to put some brain juice into it and at least pretend you're trying to learn

vernal basalt
#

sigh i should

#

but i thought i had already but i guess i din't

minor fox
#

I'm trying to remember how I changed other players name tags for one player only with scoreboard packets, but can't seem to recall what it was

#

Can someone guide me in the right direction as to what packet is used for such

wraith rapids
#

you can add team prefixes and suffixes to names

#

but changing a player's name tag itself can't be done through the scoreboard

minor fox
#

Yeah I meant prefixes and suffixes* ^^

wraith rapids
#

check wiki.vg for the team related packets I suppose

north cipher
crude charm
#

setDropItem sets if items drops

#

get the broken block

#

and add the smelted version to the players inv

north cipher
#

thats what im doing but then they would get both, should i setDropItem(false) and then drop the smelted version there

crude charm
#

yes

north cipher
#

alright

#

thanks

crude charm
#

np

dense goblet
#

hey, im making my own recipe system (with good reason) and I want to do the following but java's generics won't allow it:

public static <Z extends IRecipeInput> boolean match(IRecipeInput input, IRecipeIngredient<Z> ingredient {
    if(ingredient == null) {
        return input == null;
    }
    if(input instanceof Z) {
        return ingredient.match((Z) input);
    }
    return false;
}

Z is unfortunately lost at runtime. Is there a way to circumvent this?

crude charm
#

I dont even know what a minecraft composter is lmfao

#

but like how it works

havent played a version above 1.8 in over 9 years

#

played 1.9 once for 10 mins when it came out to see the new combat and never used one since

dense goblet
vernal basalt
#

how have you never at least gone to see what the newest update is at least 1 time

crude charm
#

I tried once on my laptop which mind you had an intel Pentium LMFAO and it kept crashing and was 1fps not even

#

it was advertised on the cover as the "new cool thing" HAHA

#

does stuff grow in them, do you have to water it? Literally never played it

#

ah ok

#

so it breaks down

quaint mantle
#

hey so, I am in need of changing the weather globally, what would be the best way of doing that?

quaint mantle
#

should I just mess with chunk packets?

crude charm
#

no lol

#

on weather change

quaint mantle
#

I need to change from snow to rain ecc...

crude charm
#

then check for it

#

and allow it

quaint mantle
#

I don't see that done without packets

crude charm
#

yes u can