Giter Club home page Giter Club logo

immortuoscalyx's People

Contributors

cartoonishvillain avatar

Watchers

 avatar

immortuoscalyx's Issues

villages seem to be infected way too fast after 1.5.0

in version 1.4.2 of the mod i could walk into a newly generated village with minimal problems, post-1.5.0 something seems to have gone wrong and going within the bounds of any village will consistently result in an infection

i think the infection became contagious at all levels rather than at 50% with the rewrites now

tested with a clean instance of only:
minecraft 1.16.5
forge 36.2.8
immortuos calyx 1.4.2 & 1.5.1 respectively

Not losing HP after threshold

Same guy from the Iron golem. I have registered 100+ infection, and I'm not losing HP. (even with the defaults values)
image

[1.18.2] Crash in BYG biome at 85% infection.

The game crashed whilst ticking player
Error: java.lang.NoSuchMethodError: 'net.minecraft.world.level.biome.Biome net.minecraft.world.level.biome.BiomeManager.m_47881_(net.minecraft.core.BlockPos)'
Exit Code: -1

immortuoscalyx-1.18-1.6.4
Oh_The_Biomes_You'll_Go-forge-1.18.2-1.4-RC-11-all
TerraBlender-forge-1.18.2-1.1.0.98

Seed used: 4935950446636565443

Crashlog

Edit: Nevermind. Found the level.dat infection thingy.

Stabilizer (possibly) bugging server when unloaded/loaded

So this may sound more like a fluke rather than anything, but I was doing some Bedrock-lava-glass-cage with a named Infected Player. (to do sort of spawn place)

So I've put an stabilizer inside a Item frame, and then went away (far enough to trigger chunk unloading imo). The game started kinda lagging and even kicked me out(this is the second time. The first time was when I went like 2-5 chunks away and logged off. When I came to log back in, it kinda didn't let me and the log in attempt just timeout) and could never log in and do anything because of EasyAuth never sent me to the Spawn Area so I could type my log in info. So I had to run a backup

As I've said, it may actually be just a coincidence, but after I've removed the Item Frame from the second cage I've built and went back to my home, it all is ok and no issues

I've done a 3rd attempt, and the effect wasn't immediate, but after going close enough so as to load the stabilizer, my client started to kinda get laggy. I'll leave the stabilizer there, and then ask some friends if they lag too when they log in some another day so you might close the thread now, since results are kinda still really inconclusive other than a FBI agent trolling.

2022-02-16_01 35 33

Skins do not appear on infected human entities

Due to a change in how SkullTileEntity (now SkullBlockEntity) works, skins are currently inaccessible from them and their updateGameprofile method. I'll come back to this at a future time, this serves more as a reminder to myself to look into it more. (Although help would be appreciated if you so desired)

Suggestion

A way to actually keep the parasyte till cured with the sringe...like the immortuox calyx persisting after death because people just jump from a high place near their bed each time they get infected, so...they should respawn with the third stage each time

Crash With Mekanism (Happy First Issue!)

All jokes aside, let's get into the meat and bones. It occurs whenever I attempt to join a world. It worked fine before I installed Mekanism.
Also, really enjoy this mod. I'm planning to use it in a sort of post-apocalyptic sci-fi horror modpack.

---- Minecraft Crash Report ----
// My bad.

Time: 10/10/20 10:36 PM
Description: Ticking entity

java.lang.ClassCastException: com.jedijoe.ImmortuosCalyx.Infection.InfectionManager cannot be cast to top.theillusivec4.curios.api.type.capability.ICuriosItemHandler
at top.theillusivec4.curios.common.event.CuriosEventHandler$$Lambda$8718/1593276958.accept(Unknown Source) ~[?:?] {}
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:161) ~[?:?] {re:classloading}
at top.theillusivec4.curios.common.event.CuriosEventHandler.tick(CuriosEventHandler.java:351) ~[?:property(class java.lang.String, map(provider(?)))] {re:classloading}
at net.minecraftforge.eventbus.ASMEventHandler_190_CuriosEventHandler_tick_LivingUpdateEvent.invoke(.dynamic) ~[?:?] {}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-3.0.3-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297) ~[eventbus-3.0.3-service.jar:?] {}
at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:310) ~[?:?] {re:classloading}
at net.minecraft.entity.LivingEntity.func_70071_h_(LivingEntity.java:2112) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.entity.MobEntity.func_70071_h_(MobEntity.java:430) ~[?:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}
at net.minecraft.entity.monster.ZombieEntity.func_70071_h_(ZombieEntity.java:204) ~[?:?] {re:classloading}
at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:606) ~[?:?] {re:classloading}
at net.minecraft.world.server.ServerWorld$$Lambda$8712/1360865747.accept(Unknown Source) ~[?:?] {}
at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:399) ~[?:?] {re:classloading}
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:847) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:783) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:120) ~[?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:638) [?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer.lambda$func_240784_a_$0(MinecraftServer.java:229) [?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer$$Lambda$8382/1329082422.run(Unknown Source) [?:?] {}
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {}

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Server thread
Stacktrace:
at top.theillusivec4.curios.common.event.CuriosEventHandler$$Lambda$8718/1593276958.accept(Unknown Source) ~[?:?] {}
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:161) ~[?:?] {re:classloading}
at top.theillusivec4.curios.common.event.CuriosEventHandler.tick(CuriosEventHandler.java:351) ~[?:property(class java.lang.String, map(provider(?)))] {re:classloading}
at net.minecraftforge.eventbus.ASMEventHandler_190_CuriosEventHandler_tick_LivingUpdateEvent.invoke(.dynamic) ~[?:?] {}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-3.0.3-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297) ~[eventbus-3.0.3-service.jar:?] {}
at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:310) ~[?:?] {re:classloading}
at net.minecraft.entity.LivingEntity.func_70071_h_(LivingEntity.java:2112) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.entity.MobEntity.func_70071_h_(MobEntity.java:430) ~[?:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}
at net.minecraft.entity.monster.ZombieEntity.func_70071_h_(ZombieEntity.java:204) ~[?:?] {re:classloading}
at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:606) ~[?:?] {re:classloading}
at net.minecraft.world.server.ServerWorld$$Lambda$8712/1360865747.accept(Unknown Source) ~[?:?] {}
-- Entity being ticked --
Details:
Entity Type: minecraft:drowned (net.minecraft.entity.monster.DrownedEntity)
Entity ID: 16
Entity Name: Drowned
Entity's Exact location: -184.50, 49.00, 83.50
Entity's Block location: World: (-185,49,83), Chunk: (at 7,3,3 in -12,5; contains blocks -192,0,80 to -177,255,95), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Entity's Momentum: 0.00, 0.00, 0.00
Entity's Passengers: []
Entity's Vehicle: ERROR NullPointerException: null
Stacktrace:
at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:399) ~[?:?] {re:classloading}

-- Affected level --
Details:
All players: 0 total; []
Chunk stats: ServerChunkCache: 2025
Level dimension: minecraft:overworld
Level spawn location: World: (-224,74,144), Chunk: (at 0,4,0 in -14,9; contains blocks -224,0,144 to -209,255,159), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 1 game time, 1 day time
Level name: New Worldvcxzb
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Level weather: Rain time: 56173 (now: false), thunder time: 82225 (now: false)
Known server brands: forge
Level was modded: true
Level storage version: 0x04ABD - Anvil
Stacktrace:
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:847) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:783) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:120) ~[?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:638) [?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer.lambda$func_240784_a_$0(MinecraftServer.java:229) [?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bettercaves.mixins.json:MixinMinecraftServer,pl:mixin:A}
at net.minecraft.server.MinecraftServer$$Lambda$8382/1329082422.run(Unknown Source) [?:?] {}
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {}

-- System Details --
Details:
Minecraft Version: 1.16.3
Minecraft Version ID: 1.16.3
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 2333021056 bytes (2224 MB) / 3690987520 bytes (3520 MB) up to 5368709120 bytes (5120 MB)
CPUs: 4
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx5G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
ModLauncher: 7.0.1+78+master.e9771d8
ModLauncher launch target: fmlclient
ModLauncher naming: srg
ModLauncher services:
/mixin-0.8.2.jar mixin PLUGINSERVICE
/eventbus-3.0.3-service.jar eventbus PLUGINSERVICE
/forge-1.16.3-34.1.12.jar object_holder_definalize PLUGINSERVICE
/forge-1.16.3-34.1.12.jar runtime_enum_extender PLUGINSERVICE
/accesstransformers-2.2.0-shadowed.jar accesstransformer PLUGINSERVICE
/forge-1.16.3-34.1.12.jar capability_inject_definalize PLUGINSERVICE
/forge-1.16.3-34.1.12.jar runtimedistcleaner PLUGINSERVICE
/mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE
/OptiFine_1.16.3_HD_U_G3.jar OptiFine TRANSFORMATIONSERVICE
/forge-1.16.3-34.1.12.jar fml TRANSFORMATIONSERVICE
FML: 34.1
Forge: net.minecraftforge:34.1.12
FML Language Providers:
[email protected]
minecraft@1
Mod List:
forge-1.16.3-34.1.12-client.jar Minecraft {[email protected] DONE}
Mekanism-1.16.3-10.0.11.436.jar Mekanism {[email protected] DONE}
forge-1.16.3-34.1.12-universal.jar Forge {[email protected] DONE}
pneumaticcraft-repressurized-1.16.3-2.4.2-49.jar PneumaticCraft: Repressurized {[email protected] DONE}
curios-forge-1.16.3-4.0.2.0.jar Curios API {[email protected] DONE}
BiomesOPlenty-1.16.3-12.0.0.405-universal.jar Biomes O' Plenty {[email protected] DONE}
MekanismTools-1.16.3-10.0.11.436.jar Mekanism: Tools {[email protected] DONE}
MekanismAdditions-1.16.3-10.0.11.436.jar Mekanism: Additions {[email protected] DONE}
BetterCaves-1.16.2-1.0.3.jar YUNG's Better Caves {[email protected] DONE}
immortuoscalyx-1.1.jar Immortuos Calyx {[email protected] DONE}
MekanismGenerators-1.16.3-10.0.11.436.jar Mekanism: Generators {[email protected] DONE}
Crash Report UUID: b9f76c1f-ae7c-4a58-a0cb-8990ef6d7ef7
Player Count: 0 / 8; []
Data Packs: vanilla, mod:mekanism, mod:forge, mod:pneumaticcraft, mod:curios, mod:biomesoplenty (incompatible), mod:mekanismtools, mod:mekanismadditions, mod:bettercaves (incompatible), mod:immortuoscalyx, mod:mekanismgenerators
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'forge'
OptiFine Version: OptiFine_1.16.3_HD_U_G3
OptiFine Build: 20200916-082411
Render Distance Chunks: 8
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.5.13476 Compatibility Profile Context 22.19.180.1536
OpenGlRenderer: AMD Radeon R7 Graphics
OpenGlVendor: ATI Technologies Inc.
CpuCount: 4

Infinite Iron Golems

I don't know if intended, but once there's an infected Iron Golem, you can't kill it unless you use extreme methods, It will respawn another iron Golem. I even had once where I chomped an infected iron golem like 7 times, and he was still respawning more until I pushed him into a hole, and threw some lava in

JSON parse error

Version: immortuoscalyx-1.2.1.1-1.18

[18:35:35] [Worker-Main-31/ERROR]: Couldn't parse data file immortuoscalyx:entities/infecteddiver from immortuoscalyx:loot_tables/entities/infecteddiver.json
com.google.gson.JsonParseException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 32 column 8 path $.pools[0].entries[1].conditions
        at net.minecraft.class_3518.method_15267(class_3518.java:505) ~[server-intermediary.jar:?]
        at net.minecraft.class_3518.method_15276(class_3518.java:542) ~[server-intermediary.jar:?]
        at net.minecraft.class_4309.method_20731(class_4309.java:47) ~[server-intermediary.jar:?]
        at net.minecraft.class_4309.method_18789(class_4309.java:21) ~[server-intermediary.jar:?]
        at net.minecraft.class_4080.method_18791(class_4080.java:11) ~[server-intermediary.jar:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
        at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 32 column 8 path $.pools[0].entries[1].conditions
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1562) ~[gson-2.8.8.jar:?]
        at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:490) ~[gson-2.8.8.jar:?]
        at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:413) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:725) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:718) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:726) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:718) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:726) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:701) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:908) ~[gson-2.8.8.jar:?]
        at net.minecraft.class_3518.method_15267(class_3518.java:503) ~[server-intermediary.jar:?]
        ... 11 more
[18:35:35] [Worker-Main-31/ERROR]: Couldn't parse data file immortuoscalyx:entities/infectedhuman from immortuoscalyx:loot_tables/entities/infectedhuman.json
com.google.gson.JsonParseException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 32 column 8 path $.pools[0].entries[1].conditions
        at net.minecraft.class_3518.method_15267(class_3518.java:505) ~[server-intermediary.jar:?]
        at net.minecraft.class_3518.method_15276(class_3518.java:542) ~[server-intermediary.jar:?]
        at net.minecraft.class_4309.method_20731(class_4309.java:47) ~[server-intermediary.jar:?]
        at net.minecraft.class_4309.method_18789(class_4309.java:21) ~[server-intermediary.jar:?]
        at net.minecraft.class_4080.method_18791(class_4080.java:11) ~[server-intermediary.jar:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
        at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 32 column 8 path $.pools[0].entries[1].conditions
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1562) ~[gson-2.8.8.jar:?]
        at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:490) ~[gson-2.8.8.jar:?]
        at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:413) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:725) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:718) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:726) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:718) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:726) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:701) ~[gson-2.8.8.jar:?]
        at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:908) ~[gson-2.8.8.jar:?]
        at net.minecraft.class_3518.method_15267(class_3518.java:503) ~[server-intermediary.jar:?]
        ... 11 more

Does Shield Block Infection?

Will it still transfer infection even if you succesfully block an attack with a shield? or you've programmed it so to only trigger when damaged?

Allow Infecteds to "smell" invisible players

So, just as the title, would be kinda spooky if the infecteds are able to stare at you while invisible(Specifically with no armor visible[Worded this way because there's an outdate mod for 1.17 that allows you to at least visually hide your armor])

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.