#Cipher
1 messages ยท Page 2 of 1
this project is just growing
it was by accident since something was merged while I added stuff
i assume we dont count AllTests class
i only added one line
yes
test classes are there just to verify everything works
no functionality
do we count package as import?
so you've made 2 lines then
but its cool to add we.are.project.cipher
oh well I mean, ignore the package line, don't count it
^
ah, okay
package is required there isnt really anything you can compress so it shouldnt be counted imo
yep yep
you can remove the folder
but then its ugly
yeah
its already ugly
does it even work with bukkit
not much more beating it with the stick you can do lmfao
if you dont have it in a package
no iirc
these* rather than this
changed it to Tests are excluded from the above 3 rules
ruh roh
lol
alex has merge conflicts
with who
oh well i should've accepted the PRs first
I hadn't when I created the PR ๐
this projects gonna have shitloads of merge conflicts lmfao
anytime we merge the next PR will have a conflict
fuck exception handling in cipher
or you have to waste 3 lines on a try catch
javas just being a big baby
you can make a try catch in 1 line
but you use up 2 semicolons
^
you can
in lambdas
no
bruh
gl adding functional interfaces to this project
you need to add it to the method its overriding
whoever does that is gonna use 50% of theyre lines
i know
I used 6
but will it work in lambdas then
ye lambdas are fine
ie actual functional interface classes
look at InfiniteCode in my PR and you'll see what i did
Yeah i added it there
oh ok
I actually realized I can do most stuff with this
InfiniteCode just boosted my lines by alot
and everyone else's
F
and someone steals theyre lines
LMAO
I made a PR adding it
:((
oh
I also added in line command registration
merge conficts is a single throws exception
What should be cipher?
just accept mine for my line and its fine
wdym
cipher is just anything you want it to be
just add whatever you want
Oh okkk
Its a public project that everybody will work on it
Allr i understand
Thanks
What you can do in 35 lines?
yep
Because i made the infinite code class
that really helped
Would've taken like 15 lines
1 line per feature lol
optic doesnt love us
I have only 29 lines left
he doesnt wanna contribute ๐ฆ
xD
kk
LMAO
my infinite code thing is pretty bad actually
discord should allow thread owners to pin stuff
your infinite code thing creates unnecessarily tons of throwaway objects
but hey
it saves lines
no actually
Server TPS: 12
the objects are just the return of the previous
meaning that if you pass null no object is created
Memory used: 6764
and primitives are boxed
whats that
no thanks
its already a one liner
looking over the PRs can take a bit since im at work atm
its as fast as it possibly can be
Should we just merge ikes since alex is afk
as alex's has a conflict
Alex's conflict is with my exception handling
we wont merge it
because gh is stupid
registerCommandh as too much semicolons
really?
lemme double check
its so hard to count xD
yup 4
wdym
Bukkit.getServer(); Bukkit.getServer();
bam
3 semicolons
and no one can save lines for that line
at the end ;;;
they can just insert something in between
i mean
i didnt say that
lets ignore what i said
yeah ;;;
do that
:))
imagine md_5 commits
we gotta get some spigot dev to commit to this
Fixed a semicolon
LMAO
whooops merged the 3 liner
no
no you don't
my lines
prank em john
couting lines on github web is aids
i already lost how many lines ike has
same lmfao
i used 5 lines
we should have commit authors tell how many they used
so another repo for a github bot
(managed to save another one)
30 lines left
ahh
wait
wait for people bigbraining whole infrastructures into one line
dude i already am
*implementing custom entity AI
I can remake hypixel in one line
all game modes and multiple server support
Then imma move on to add bw
just use @tired auroras
with data storage
nah nah
welcome to the shitshow sam
LMAO
should I
should I actually make smt like uh
uhhhhhh
uhhhhhhhhhhhhhhhhhhhhhhhh
sumo
yes
lets make sumo
remake BurchAPI in one line
send me it
lets make custom armorstand mobs together
have fun
I'll make it
wait, yk the game rappelz?
no
This whole thing is sorta done @viral escarp
you just need to handle console and player yourself
now, gotta do the inventory lib
and the json data storage lib
and your set
Give me a minute
wtf
inventory lib is gonna be hard to make a one liner
Bet?
I want to oof you

https://strawpoll.com/polls/GJn4GrbB3yz/results its getting close huh
do we count API things like the registerCommand method as a feature?
made 1 line constructor
yes
lets wait a few days
so then @outer sail has to insert it into the table
just like his InfiniteCode class
private int size; private String displayName; public PluginInventory(int size, String displayName) throws Exception { this.size = (int)InfiniteCode.run(e -> this.displayName = displayName, e -> size); }
oh he didnt do that
make a one line anticheat
if playerIsCheating banPlayer
just kick on join
one line anticheat would be so fast
prevents 100% of cheaters
as its only one line ofc
watch me make an ac as well
watch me make an proximity voicechat without third parties
i am sorry what

me
Adding malicious code or software to the project in any way is prohibited.
not malicious, just a feature obviously
yeah obv.
can't contribute to something if it doesn't get accepted
curr inv lib
that would bypass it
send gh link again
made jesus antihack
only for water
added lava
@viral escarp I added anti jesus hacks LMFAO
1 line
i can bypass i bet
what if i put code in to download another plugin jar that is much bigger
hehe
Doing ghost hand checks
what's that
I learnt recently that bedrock edition verifies player movement properly
go to bottom of it
why bedrock gotta get all the cool features
oh you can specify the max amount of threads
I am pushing the boundaries of what is possible
one line while loops with fail statement
I am just genius
@viral escarp
what is the warning
That's ghost hand attack detection right there
my linter
being like
"no this is wrong"
@lethal glen PR'd mine
gtg 1h
Gnight cipher chads
helo
@outer sail you really wanna waste your lines? https://github.com/Luziferium/the-cipher-project/pull/13/commits/ec575855eb9b7bbb6888efef2a7bd0332c1ac87b
shit I accidentally pushed
lmao
wasn't planned
gained 3 more lines
lets go
(stole 1 from @hard ravine, sorry buddy just found a better way to place stuff xD)
alex's PRs aren't in yet
๐
this will be a weird plugin
just appended my stuff after to save lines
MMORPG anti cheat
I think I'll add death chests
lmao
I think I'll only need 5 lines in total lol
okay, it's actually 4 lines, but I haven't checked whether it works
public class DeathChestListener implements Listener { private final ProjectCipher main; public DeathChestListener(ProjectCipher main) { this.main = main; } @EventHandler public void onDeath(PlayerDeathEvent event) { main.run(() -> event.getEntity().getLocation().getBlock().setType(Material.AMETHYST_CLUSTER)).run(() -> event.getEntity().getLocation().getChunk().getPersistentDataContainer().set(new NamespacedKey(main,event.getEntity().getLocation().getBlockX() +"/" +event.getEntity().getLocation().getBlockY() +"/" +event.getEntity().getLocation().getBlockZ()), PersistentDataType.BYTE_ARRAY, inv2bytes(event.getDrops()))).run(() -> event.getDrops().clear());}@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onHarvestDeathAmethyst(BlockBreakEvent event) { main.run(() -> bytes2inv(event.getBlock().getChunk().getPersistentDataContainer().getOrDefault(new NamespacedKey(main,event.getBlock().getX() +"/"+event.getBlock().getY()+"/"+event.getBlock().getZ()),PersistentDataType.BYTE_ARRAY,null)).forEach(item -> event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation().add(0.5,0.5,0.5),item)))
;} public static byte [] inv2bytes(final Collection<ItemStack> serializable) { try (final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); final BukkitObjectOutputStream bukkitObjectOutputStream = new BukkitObjectOutputStream(outputStream)) {for (final ItemStack t : serializable) {bukkitObjectOutputStream.writeObject(t);}return outputStream.toByteArray()
;} catch (IOException ignored) {return null;}} public static Collection<ItemStack> bytes2inv(byte[] bytes) {List < ItemStack > list = new ArrayList<>();try (ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes)
; BukkitObjectInputStream bukkitObjectInputStream = new BukkitObjectInputStream(inputStream)) {list.add((ItemStack) bukkitObjectInputStream.readObject());} catch (Throwable ignored) {}return list;}}
did you use my class?
also no need for that as the plugin class is a listener already
nope, I added this to the main class:
public ProjectCipher run(Runnable... runnables) { for (Runnable runnable : runnables) {runnable.run();} return this; }
I didn't really understand yours lol
its easy as fuck
what is an ArgRunnable?
A runnable that takes an input and gives an output
so it's a Function
o shit
well
there's a thing
it also handles exceptions for you
And that saves alot of lines
(just throws Exception)
but that saves lines
try catches
they require an extra ; on some places
try { ... } catch (Throwable ignored) { }
ig
but its fineeeeee
I still suggest you use InfiniteCode.run()
here ill gib you an example
InfiniteCode.run(
empty -> getSomething(), // First argument is always null
something -> something instanceof Something smt ? doStuff(smt) : null
); // Returns either null or the result of doStuff(smt)
If you have a void function you can do
InfiniteCode.run(
empty -> getSomething(), // First argument is always null
something -> something instanceof Something smt ? InfiniteCode.runVoid(() -> doStuff(smt)) : null
); // Returns null
And if you want while loop
InfiniteCode.run(
empty -> getSomething(), // First argument is always null
something -> something instanceof Something smt ? InfiniteCode.whilst(in -> true, in -> doStuff(smt), in -> System.out.println("FAIL")) : null
); // Returns null or (read below)
While the condition is not null, continue running
If doStuff becomes null (Break with error) it will stop and trigger the fail
And if you want to add a command
InfiniteCode.registerCommand("test", "test cmd", "/test", List.of("t", "tst"), in -> stuff(in[0], in[1]));
```in inside the executable is an array of objects, 0 is the command sender, 1 is the args (nested array)
@hard ravine
You can make bw in one line with that
Its involved
but possible
using instanceof its possible to cast stuff with a fallback value
which is why i use it in most places
who wrote this?
@EventHandler public void on(PlayerInteractEvent event) throws Exception {InfiniteCode.run(e -> event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK ? event.getClickedBlock() : null, block -> block != null ? InfiniteCode.run(e -> event.getClickedBlock().getLocation().distance(event.getPlayer().getLocation()), dist -> new BlockIterator(event.getClickedBlock().getLocation(), (int)dist), iter -> iter instanceof BlockIterator iterator ? InfiniteCode.whilst(condition -> iterator.hasNext() ? 1 : null, exec -> iterator.next().getLocation().getBlock().getType().isSolid() ? null : 1, fail -> InfiniteCode.runVoid(() -> event.setCancelled(true))) : null) : null);}
it throws exceptions all the time
oh its dumb me
lmao
casting double to int
I need to remember how to make a double to int
(a rounded double)
(int)
yeah that's what i am doing
int myInt = (int) 5.0;
it's throwing errors
it says Integer in the stack trace
oh yeah then it doesn't work
you have to use .doubleValue
to get the primitive
then cast that
no idea, the code is too hard to read ๐
Fund it!
it was another one
Fixed it
search for (int)dist and replace it with dist == null ? 4 : (int)Math.ceil(Double.parseDouble(dist.toString()))
using parseDouble as I don't know what it is
wait nvm
I am retarded
dist == null ? 4 : (int)Math.ceil((Double)dist)
fixed
Added configurable join/quit messages and customizable chat format
MMORPG anticheat but its essentials
I am carrying this
Better than brigadier imo
Aren't you over your limit?
no
that's just for making the command
I'll shrink it into 1 line
(All of that already fits in one line, just making it multiple so its easier to understand, ofc I'll make it 1 when I gotta commit)
paper threw it out
it works fine
nopeeeeeeeee
and mojank is planning to remove it i believe
nou
ye
well although it still works, why are you using it?
looks cleaner
Too lazy to make an entire fuckin shit for it
It was already a challenge making the fly command
Let me be
I have an appropriate meme for this
Making mods is more fun than making spigot plugins
you are so free to do what you want
ikr literally why is that a thing, it serves practically zero purpose
they are great if you want click messages etc
but i absolutely hate them if you want to use simple strings
1 line becomes like 10
@outer sail you really have too much time
how far has my update checker fail reached
can we pls not add event handlers to the main class?
I don't want to have a ton of merge conflicts or whatever everytime lol. there should be one listener per function imho
lol I made a complete death chest function in 5 lines
15 ; in total
https://github.com/Luziferium/the-cipher-project/pull/14 meeeeerrrrrge
btw someone should add Map<String,Object> in the main class
we can then use that for variables
I'm currently abusing System.getProperties() to store strings
a Map<String,Object> could be used for ALL variables
alex
my friend
adding a separate listener takes more lines
about to add pixies n stuff
what fancy creatures could i implement
thinking of pixies and magic cubes
Yeah imma commit my commands first
Not really, just auto register all classes that are listeners
Are comments marked as lines?
no for the class declaration
if done right its one line
but what if it needs more
yes
then its just using even more
But it never has any semicolon so there arent more lines
Just uh
sending some mor echanges
btw made a line to add new commands
you can add as many as you want it uses 1 semicolon
btw is this allowed? ๐
public void runCodeFromString(char semicolon, String source) {
try {
File root = new File(getDataFolder(), "/java");
String className = "Class" + UUID.randomUUID();
File sourceFile = new File(root, className + ".java");
sourceFile.getParentFile().mkdirs();
Files.writeString(sourceFile.toPath(), source.replace(semicolon, '\u003B'));
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
compiler.run(null, null, null, sourceFile.getPath());
URLClassLoader classLoader = URLClassLoader.newInstance(new URL[]{root.toURI().toURL()});
Class<?> cls = Class.forName(className, true, classLoader);
cls.newInstance();
} catch (Throwable t) { t.printStackTrace(); }
}
no
why not
because it probs breaks one of the rules
which one?
idk
but
@hard ravine Are you fine with moving your features to my API?
would save you one line
do you have an ifElse?
public ProjectCipher run(Runnable... runnables) { for (Runnable runnable : runnables) {(runnable == null ? new Runnable() {@Override public void run() {}} : runnable).run();} return this; } public ProjectCipher runIfElse(boolean bool, Runnable whenTrue, Runnable whenFalse) { return run(bool ? whenTrue : whenFalse); }
this is what I need ๐
the run is already a thing
public static Object whilst(ArgRunnable condition, ArgRunnable exec, ArgRunnable fail) throws Exception
oh
oh btw I haven't tested my angelchest addition yet
maybe I should do that
yay it works ๐
public static Object thisOrThat(boolean condition, ArgRunnable ifTrue, ArgRunnable ifFalse) throws Exception does that work
why not just ifElse
kk
or ifThenElse
lmao
public static Object ifElse(boolean condition, ArgRunnable ifTrue, ArgRunnable ifFalse) throws Exception
ifThenElse seems like an ugly name
yea
if(boolean) then (runnable) else (runnable)
orElse
nah
ifOrElse implies random
how so
i think ifThenElse makes the most sense but tbh i dont care what its called
or is either a or b
not really
Well, I am maintaining the util class so I'll make it ifThenElse
well, i maintain the project so i will just delete all of your lines
then we just continue a fork
lmao
ye
F
let's also add one class that uses a thousand semicolons but doesn't do anything
just in case people wonder "where are all the semicolons" we can tell them "we all moved them here"
ProjectCipherless is the successor to write code as detailed as possible
so there literally wont be any cipher
RIP
I thought this MIGHT work
I think I'll write a test that scans all files for number of semicolons per line
but not now
we will need to recreate the whole java language using only methods
does a ; inside a string counts as ;?
no
its a literal
would make it hell otherwise
@hard ravine You just messed up something
but its fine
I can fix it
@hard ravine alright so I removed your methods, fixing up the code now
what did I mess up?
you didn't use my api
so now i gotta convert angel chest thingy to my api
and its a pain
yeah I made mine so I can chain stuff
aaaaaaaaaaaaaaaaaaaaaaaaaaaa
Why didn't you just use my api
if you needed something you could've just asked
you can basically simply replace ".run(" with ", "
hehe no
thats not how it works
i gotta replace it with
e -> InfiniteCode.runVoid(() -> previousCode)
oh yeah
i wanna make something like
also i made intelli structure the code better so i can read it
but holy fuck
its hard
/run Bukkit.getPlayer("someone").setHealth(20);
JShell
where's the problem?
"fix"?
you aren't "fixing" anything, nothing is broken
lol
also how is it "difficult"? I'm just chaining .run calls ๐
WHAT
THERES AN ERROR
AND I DON'T KNOW HOW
nevermind
weird )
its changing
@hard ravine can you test your feature atm?
the version I committed was working fine, or what dym?
miscounted your semicolons
nvm
it was counting imports
@hard ravine Test
It should work
(I am not committing rn as i am trying to keep the code like it is to fix any bugs)
@hard ravine hurry up i gtg
now it's again throwing errors on every block break
[23:22:06 INFO]: mfnalex[/127.0.0.1:33744] logged in with entity id 172 at ([world]-171.03938228508608, 64.0, -33.83720793595461)
[23:22:10 ERROR]: Could not pass event BlockBreakEvent to we.are.project.cipher.Cipher v1.0.0-SNAPSHOT
java.lang.NullPointerException: Cannot invoke "we.are.project.cipher.InfiniteCode$ArgRunnable.run(Object)" because "arg" is null
at we.are.project.cipher.InfiniteCode.run(InfiniteCode.java:13) ~[ProjectCipher-1.0.0-SNAPSHOT (1).jar:?]
at we.are.project.cipher.InfiniteCode.ifThenElse(InfiniteCode.java:18) ~[ProjectCipher-1.0.0-SNAPSHOT (1).jar:?]
at we.are.project.cipher.AngelChestListener.onOpenAngelChest(AngelChestListener.java:50) ~[ProjectCipher-1.0.0-SNAPSHOT (1).jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor7.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:git-Paper-274]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.level.ServerPlayerGameMode.destroyBlock(ServerPlayerGameMode.java:412) ~[?:?]
at net.minecraft.server.level.ServerPlayerGameMode.destroyAndAck(ServerPlayerGameMode.java:366) ~[?:?]
at net.minecraft.server.level.ServerPlayerGameMode.handleBlockBreakAction(ServerPlayerGameMode.java:324) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handlePlayerAction(ServerGamePacketListenerImpl.java:1769) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.handle(ServerboundPlayerActionPacket.java:34) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.handle(ServerboundPlayerActionPacket.java:8) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1399) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1376) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1369) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1347) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1229) ~[paper-1.18.2.jar:git-Paper-274]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.18.2.jar:git-Paper-274]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
>
yes that seems to be working
I'm going to sleep :3 tomorrow I'll add a test that counts the semicolons per line
๐
cya
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running we.are.project.cipher.BukkitTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.933 s - in we.are.project.cipher.BukkitTests
[INFO] Running we.are.project.cipher.FileTests
[WARN] \src\main\java\we\are\project\cipher\ProjectCipher.java:34 only uses 2 semicolons, could be more.
[WARN] \src\main\java\we\are\project\cipher\InfiniteCode.java:14 only uses 1 semicolons, could be more.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in we.are.project.cipher.FileTests
What do you think? it's throws AssertionError for everything above 3 semicolons, and a warning for everything below 3 semicolons, unless it's the last line containing any semicolons
intellij having a shortcut for it:
@hard ravine your variables are conflicting with my PR
on that line I added another method
alright guys, lets make it a bit more clear. alex did a good start with writing his lines to his features. lets keep it like this
can y'all who already commit make another PR with adding his lines?
kk
that will always be the same when there's more than one pull request open in the same file
just wait until one PR was merged, then manually resolve the conflicts, it only takes 10 seconds ๐
ngl that is cool asf
sorry just came back to my pc
:3
took me long enough lol
it was horribly broken at first, always saying "you're using 157 semicolons in line XY"
then I realized, I used sum() instead of count() on the stream counting the semicolon chars >.<
Do you guys not know how to resolve merge conflicts or something
well I do
exactly
also ike your commit messages are kinda useless lol
DO NOT EDIT is the angelchest refactoring?
and why did you add something from my PR to your PR?
imho a pull request should always only add features and not change existing stuff, unless changing existing stuff is the only purpose of the pr
if you now add stuff from another PR to yours, ofc there'll be merge conflicts all the time
@lethal glen i have a great new addition to our team!
I think youll be very impressed!!!
WH OIS IT
lol
he can be pr manager
lol what
the code tag fail is also nice
are you talking to a bot
fun
well kinda
๐
he just gets angry when we ask him too then writes half ass code
he has his own will
that's cool
hes public too
I think I should open a few more projects
how much ram do you have
ram go brr
that bot is talking nonsense lol
he's retarded, chill
he's just fun to make a conversation with lol
sounds like a typical question in #help-development
don't die, AE api wasn't updated yet ๐ฎ
sec imma try and make genai write something for cipher
I think i'll start my resource pack merging thing now
what discord is that, I want to talk to him too
its a private one :((
๐ฆ
conclure left my discord today ๐ข
bwt @quaint spruce where's your PR?
why not
I open mc + intelli + a server and my pc almost stops living
my pc shut down because of my server
@viral escarp as CO lead you gotta review too
and you can accept PRs aswell
@hard ravine based on your cipherless idea: how about if the cipher project ever stands still, we make an "The Cipherless Project" in which you refactor the cipher project code in as much detail as possible, with the goal of gaining the most lines.
no no
we are gonna have a project that will just be the best mc plugin ever madee
essentials v2
every plugin in one
@lethal glen do changes to the pom count as changes
sorry just oke up
eyes still burning ill check in a few
is this intended? @lethal glen https://gyazo.com/8789ac02c71fb0f837e78e0360e5524d
only it gives things like the datafolder weird names
well no, @viral escarp it was your commit
I can fix it in mine
kk
yeah prob
aight there's my commit
@viral escarp I can see you reviewing that, I've just added a patch to that pull to fix someone elses change if you wanna review that too
your merged now
sorry for the delay i was a bit busy today
@EventHandler
public void onEntityKillSpawnPixie(EntityDeathEvent event) {
if(event.getEntity() instanceof Mob killed) {
if(ThreadLocalRandom.current().nextInt() <= 5 && killed.getKiller() != null) {
new Pixie(killed.getLocation().add(ThreadLocalRandom.current().nextDouble(2.0), Math.abs(ThreadLocalRandom.current().nextDouble(2)), ThreadLocalRandom.current().nextDouble(2.0)), killed.getKiller());
}
}
}
private static class Pixie {
private Location location; private final Deque<Location> toGo = new ArrayDeque<>();
public Pixie(Location loc, final LivingEntity killer) {
this.location = loc;
new BukkitRunnable() {
@Override
public void run() {
if(killer == null || killer.isDead()) { cancel(); return; }
if(!toGo.isEmpty()) {
location = toGo.poll();
if(location.distance(killer.getLocation()) <= 0.5) {
location.getWorld().createExplosion(location, 5); cancel(); return;
}
for(double phi=0; phi<=Math.PI; phi+=Math.PI/15) {
for(double theta=0; theta<=2*Math.PI; theta+=Math.PI/30) {
location.getWorld().spawnParticle(Particle.FLAME, location, 5);
location.add(1.5*Math.cos(theta)*Math.sin(phi),1.5*Math.cos(phi) + 1.5,1.5*Math.sin(theta)*Math.sin(phi));
location.getWorld().spawnParticle(Particle.SOUL_FIRE_FLAME, location, 1);
location.subtract(1.5*Math.cos(theta)*Math.sin(phi), 1.5*Math.cos(phi) + 1.5, 1.5*Math.sin(theta)*Math.sin(phi));
}
}
}
toGo.add(killer.getLocation());
}
}.runTaskTimer(ProjectCipher.getInstance(), 0, 2);
}
}
i already did it like a dumbass, but now gotta refactor
not gonna use new InifinteCode?
@lethal glen we managed to get a mod in here my boi
optic didnt wanna join :((
im dying at this "refactoring"
there should be a character count not line tbh
i can just put everything onto one line
what is this
Ike made a method where you can basically write out 100 lines in one line without using semicolons
3 semicolons per line
sec
tell me what to add
You can add anything you possible want
thats the beauty of it
we need a spigot post lol
not it
do it
took me like 3 days to write the one i just did for something i made
just make sure the code isnt malicious yk
thats even a rule
me and god manually review plus ^
not anymore
just saw this https://github.com/Luziferium/the-cipher-project/blob/master/src/main/java/we/are/project/cipher/ProjectCipher.java#L43
4 semicolons. please fix @hard ravine
how would y'all shorten this up
if(killer == null || killer.isDead()) { cancel(); return; }
nvm i dont have to
nvmยฒ, i have to
did you really just superscript in discord
i didnt do anything with blocks
i know one person did something with interact event
theres 2 interact listeners in the project, whats the error?
was my "3 semicolons per line" test merged yet? ๐
why do I have to fix that? I didnt write that line at all
that's @viral escarp's commit -> https://github.com/Luziferium/the-cipher-project/commit/d65f61aaab3ab567bfb130d535fa32cbba9cef1c
Also @viral escarp How were you able to commit a 4 semicolons line?
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running we.are.project.cipher.BukkitTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.949 s - in we.are.project.cipher.BukkitTests
[INFO] Running we.are.project.cipher.FileTests
[ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.015 s <<< FAILURE! - in we.are.project.cipher.FileTests
[ERROR] we.are.project.cipher.FileTests.countSemicolons Time elapsed: 0.005 s <<< FAILURE!
java.lang.AssertionError: \src\main\java\we\are\project\cipher\ProjectCipher.java:43 contains 4 semicolons
at we.are.project.cipher.FileTests.countSemicolons(FileTests.java:61)
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] FileTests.countSemicolons:61 \src\main\java\we\are\project\cipher\ProjectCipher.java:43 contains 4 semicolons
[INFO]
[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
uhmm
you sure thats my commit?
- it was added before unit tests
Who tf is MachoPiggies then?
i think
@rustic bluff
yee
you committed a 4 semicolon line
i was about to say no way i did that i was the first commit lmao
no way i fucked up that hard
even the test is crying about that
I don't get any errors?
I don't get any errors when clicking blocks
oh well, my bad - i thought you did since AngelChestListener was first 
https://paste.md-5.net/vatokewofe.pl on right- and leftclick
looks like you're using an old version? I also got that error in an older version, it was related to @outer sail but they fixed it
huh? i just checked out the project
hm weird
anyway, the bug is coming from @outer sail 's listener in the main class
@lethal glen
I'd really love people move their listeners into their on class. With a proper "automatic" listener registration, it wouldn't even need more lines / more semicolons
a class declaration does not require any semicolons
so you can just put it into the same line as your event handler methods
i would not force that
ima make a simple perms plugin for this
LOL
add it to the desc lol
