jaylawl / jnbt Goto Github PK
View Code? Open in Web Editor NEWProvides NBT usages within Skript
License: GNU General Public License v3.0
Provides NBT usages within Skript
License: GNU General Public License v3.0
This works
on right click holding flint and steel:
set {_value} to tag "asd" of held item's nbt
broadcast "%{_value}%"
but this results in the error below
on right click holding flint and steel:
set {_tool} to held item
set {_value} to tag "asd" of {_tool}'s nbt
broadcast "%{_value}%"
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! [Skript] Severe Error:
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Something went horribly wrong with Skript.
[11:58:54 ERROR]: #!#! This issue is NOT your fault! You probably can't fix it yourself, either.
[11:58:54 ERROR]: #!#! It looks like you are using some plugin(s) that alter how Skript works (addons).
[11:58:54 ERROR]: #!#! Here is full list of them:
[11:58:54 ERROR]: #!#! skRayFall (https://sk.rayfall.net/) skript-mirror TuSKe (github.com/Tuke-Nuke/TuSKe) skDragon ExtrasSK skUtilities (https://tim740.github.io/) skript-yaml SkQuery Skellett (https://forums.skunity.com/resources/skellett-the-addon-with-a-beast-name.24/) MundoSK (https://forums.skunity.com/resources/mundosk.69/)
[11:58:54 ERROR]: #!#! We could not identify which of those are specially related, so this might also be Skript issue.
[11:58:54 ERROR]: #!#! You should try disabling those plugins one by one, trying to find which one causes it.
[11:58:54 ERROR]: #!#! If the error doesn't disappear even after disabling all listed plugins, it is probably Skript issue.
[11:58:54 ERROR]: #!#! In that case, you will be given instruction on how should you report it.
[11:58:54 ERROR]: #!#! On the other hand, if the error disappears when disabling some plugin, report it to author of that plugin.
[11:58:54 ERROR]: #!#! Only if the author tells you to do so, report it as Skript issue (url below)
[11:58:54 ERROR]: #!#! Issue tracker: https://github.com/SkriptLang/Skript/issues (only if you know what you're doing!)
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Stack trace:
[11:58:54 ERROR]: #!#! java.lang.NullPointerException
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.a(SourceFile:327)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.g(SourceFile:331)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.l(SourceFile:292)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.b(SourceFile:308)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.f(SourceFile:177)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.a(SourceFile:34)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.parse(SourceFile:29)
[11:58:54 ERROR]: #!#! at de.jaylawl.jnbt.elements.expressions.ExprTagOfNBT.get(ExprTagOfNBT.java:38)
[11:58:54 ERROR]: #!#! at de.jaylawl.jnbt.elements.expressions.ExprTagOfNBT.get(ExprTagOfNBT.java:15)
[11:58:54 ERROR]: #!#! at ch.njol.skript.lang.util.SimpleExpression.getArray(SimpleExpression.java:102)
[11:58:54 ERROR]: #!#! at ch.njol.skript.effects.EffChange.execute(EffChange.java:275)
[11:58:54 ERROR]: #!#! at ch.njol.skript.lang.Effect.run(Effect.java:52)
[11:58:54 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61)
[11:58:54 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:89)
[11:58:54 ERROR]: #!#! at ch.njol.skript.lang.Trigger.execute(Trigger.java:55)
[11:58:54 ERROR]: #!#! at ch.njol.skript.SkriptEventHandler.check(SkriptEventHandler.java:152)
[11:58:54 ERROR]: #!#! at ch.njol.skript.SkriptEventHandler$1.execute(SkriptEventHandler.java:110)
[11:58:54 ERROR]: #!#! at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78)
[11:58:54 ERROR]: #!#! at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[11:58:54 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:527)
[11:58:54 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:512)
[11:58:54 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:236)
[11:58:54 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:203)
[11:58:54 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:199)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1030)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:5)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14)
[11:58:54 ERROR]: #!#! at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[11:58:54 ERROR]: #!#! at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:849)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:773)
[11:58:54 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665)
[11:58:54 ERROR]: #!#! at java.lang.Thread.run(Thread.java:748)
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Version Information:
[11:58:54 ERROR]: #!#! Skript: 2.2-dev37c (latest)
[11:58:54 ERROR]: #!#! Bukkit: 1.12.2-R0.1-SNAPSHOT
[11:58:54 ERROR]: #!#! Minecraft: 1.12.2
[11:58:54 ERROR]: #!#! Java: 1.8.0_171 (OpenJDK 64-Bit Server VM 25.171-b11)
[11:58:54 ERROR]: #!#! OS: Linux amd64 4.4.0-116-generic
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Server platform: Paper
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Current node: null
[11:58:54 ERROR]: #!#! Current item: set {_value}(as java.lang.Object) to Tag of NBT
[11:58:54 ERROR]: #!#! Current trigger: right click holding flint and steel (click holding [[itemtype:flint_and_steel]]) (test.sk, line 11)
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Thread: Server thread
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! Language: english
[11:58:54 ERROR]: #!#! Link parse mode: STRICT
[11:58:54 ERROR]: #!#!
[11:58:54 ERROR]: #!#! End of Error.
[11:58:54 ERROR]: #!#!
Also if the item doesn't contain the tag, it results in this error
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! [Skript] Severe Error:
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Something went horribly wrong with Skript.
[12:11:39 ERROR]: #!#! This issue is NOT your fault! You probably can't fix it yourself, either.
[12:11:39 ERROR]: #!#! It looks like you are using some plugin(s) that alter how Skript works (addons).
[12:11:39 ERROR]: #!#! Here is full list of them:
[12:11:39 ERROR]: #!#! skRayFall (https://sk.rayfall.net/) skript-mirror TuSKe (github.com/Tuke-Nuke/TuSKe) skDragon ExtrasSK skUtilities (https://tim740.github.io/) skript-yaml SkQuery Skellett (https://forums.skunity.com/resources/skellett-the-addon-with-a-beast-name.24/) MundoSK (https://forums.skunity.com/resources/mundosk.69/)
[12:11:39 ERROR]: #!#! We could not identify which of those are specially related, so this might also be Skript issue.
[12:11:39 ERROR]: #!#! You should try disabling those plugins one by one, trying to find which one causes it.
[12:11:39 ERROR]: #!#! If the error doesn't disappear even after disabling all listed plugins, it is probably Skript issue.
[12:11:39 ERROR]: #!#! In that case, you will be given instruction on how should you report it.
[12:11:39 ERROR]: #!#! On the other hand, if the error disappears when disabling some plugin, report it to author of that plugin.
[12:11:39 ERROR]: #!#! Only if the author tells you to do so, report it as Skript issue (url below)
[12:11:39 ERROR]: #!#! Issue tracker: https://github.com/SkriptLang/Skript/issues (only if you know what you're doing!)
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Stack trace:
[12:11:39 ERROR]: #!#! java.lang.NullPointerException
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.a(SourceFile:327)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.g(SourceFile:331)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.l(SourceFile:292)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.b(SourceFile:308)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.f(SourceFile:177)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.a(SourceFile:34)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MojangsonParser.parse(SourceFile:29)
[12:11:39 ERROR]: #!#! at de.jaylawl.jnbt.elements.expressions.ExprTagOfNBT.get(ExprTagOfNBT.java:38)
[12:11:39 ERROR]: #!#! at de.jaylawl.jnbt.elements.expressions.ExprTagOfNBT.get(ExprTagOfNBT.java:15)
[12:11:39 ERROR]: #!#! at ch.njol.skript.lang.util.SimpleExpression.getArray(SimpleExpression.java:102)
[12:11:39 ERROR]: #!#! at ch.njol.skript.effects.EffChange.execute(EffChange.java:275)
[12:11:39 ERROR]: #!#! at ch.njol.skript.lang.Effect.run(Effect.java:52)
[12:11:39 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61)
[12:11:39 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:89)
[12:11:39 ERROR]: #!#! at ch.njol.skript.lang.Trigger.execute(Trigger.java:55)
[12:11:39 ERROR]: #!#! at ch.njol.skript.SkriptEventHandler.check(SkriptEventHandler.java:152)
[12:11:39 ERROR]: #!#! at ch.njol.skript.SkriptEventHandler$1.execute(SkriptEventHandler.java:110)
[12:11:39 ERROR]: #!#! at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78)
[12:11:39 ERROR]: #!#! at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[12:11:39 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:527)
[12:11:39 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:512)
[12:11:39 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:236)
[12:11:39 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:203)
[12:11:39 ERROR]: #!#! at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:199)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1030)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:5)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14)
[12:11:39 ERROR]: #!#! at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[12:11:39 ERROR]: #!#! at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:849)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:773)
[12:11:39 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665)
[12:11:39 ERROR]: #!#! at java.lang.Thread.run(Thread.java:748)
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Version Information:
[12:11:39 ERROR]: #!#! Skript: 2.2-dev37c (latest)
[12:11:39 ERROR]: #!#! Bukkit: 1.12.2-R0.1-SNAPSHOT
[12:11:39 ERROR]: #!#! Minecraft: 1.12.2
[12:11:39 ERROR]: #!#! Java: 1.8.0_171 (OpenJDK 64-Bit Server VM 25.171-b11)
[12:11:39 ERROR]: #!#! OS: Linux amd64 4.4.0-116-generic
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Server platform: Paper
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Current node: null
[12:11:39 ERROR]: #!#! Current item: set {_value}(as java.lang.Object) to Tag of NBT
[12:11:39 ERROR]: #!#! Current trigger: right click holding flint and steel (click holding [[itemtype:flint_and_steel]]) (test.sk, line 11)
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Thread: Server thread
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! Language: english
[12:11:39 ERROR]: #!#! Link parse mode: STRICT
[12:11:39 ERROR]: #!#!
[12:11:39 ERROR]: #!#! End of Error.
[12:11:39 ERROR]: #!#!
Hi Jaylawl!
Your addon isn't compatible with 1.13. Can you fix it? :)
[11:52:27 INFO]: [jNBT] Enabling jNBT v0.3.2
[11:52:27 INFO]: [jNBT] Incompatible NMS version: v1_13_R2
[11:52:27 INFO]: [jNBT] Please use Spigot 1.12.x
[11:52:27 INFO]: [jNBT] Disabling jNBT v0.3.2
Thanks a lot! <3
Hi jaylawl!
Thanks again for this addon!
But since you removed the expression "%item% with custom nbt %string%", I converted all my lines with this:
set {_0} to paper
set nbt of {_0} to "{here is the nbt}"
But I get this error:
[14:50:47 ERROR]: #!#! Stack trace:
[14:50:47 ERROR]: #!#! java.lang.NullPointerException
[14:50:47 ERROR]: #!#! at de.jaylawl.jnbt.elements.expressions.ExprTileEntityNBT.change(ExprTileEntityNBT.java:48)
[14:50:47 ERROR]: #!#! at ch.njol.skript.effects.EffChange.execute(EffChange.java:271)
[14:50:47 ERROR]: #!#! at ch.njol.skript.lang.Effect.run(Effect.java:52)
[14:50:47 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61)
[14:50:47 ERROR]: #!#! at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:89)
[14:50:47 ERROR]: #!#! at ch.njol.skript.lang.Trigger.execute(Trigger.java:55)
[14:50:47 ERROR]: #!#! at ch.njol.skript.command.ScriptCommand.execute2(ScriptCommand.java:285)
[14:50:47 ERROR]: #!#! at ch.njol.skript.command.ScriptCommand.execute(ScriptCommand.java:242)
[14:50:47 ERROR]: #!#! at ch.njol.skript.command.Commands.handleCommand(Commands.java:257)
[14:50:47 ERROR]: #!#! at ch.njol.skript.command.Commands$1.onPlayerCommand(Commands.java:172)
[14:50:47 ERROR]: #!#! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[14:50:47 ERROR]: #!#! at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[14:50:47 ERROR]: #!#! at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[14:50:47 ERROR]: #!#! at java.lang.reflect.Method.invoke(Unknown Source)
[14:50:47 ERROR]: #!#! at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
[14:50:47 ERROR]: #!#! at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[14:50:47 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500)
[14:50:47 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1389)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13)
[14:50:47 ERROR]: #!#! at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[14:50:47 ERROR]: #!#! at java.util.concurrent.FutureTask.run(Unknown Source)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
[14:50:47 ERROR]: #!#! at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
[14:50:47 ERROR]: #!#! at java.lang.Thread.run(Unknown Source)
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! Version Information:
[14:50:47 ERROR]: #!#! Skript: 2.2-dev36
[14:50:47 ERROR]: #!#! Bukkit: 1.12.2-R0.1-SNAPSHOT
[14:50:47 ERROR]: #!#! Minecraft: 1.12.2
[14:50:47 ERROR]: #!#! Java: 1.8.0_171 (Java HotSpot(TM) 64-Bit Server VM 25.171-b11)
[14:50:47 ERROR]: #!#! OS: Windows 10 amd64 10.0
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! Server platform: Spigot
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! Current node: null
[14:50:47 ERROR]: #!#! Current item: set the tile entity nbt of {_0}(as org.bukkit.block.Block) to "{texture:"but_quit", display:{Name:"ºbQuitter le menu"}}"
[14:50:47 ERROR]: #!#! Current trigger: command /newnbt (simple event) (Test.sk, line -1)
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! Thread: Server thread
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! Language: english
[14:50:47 ERROR]: #!#! Link parse mode: DISABLED
[14:50:47 ERROR]: #!#!
[14:50:47 ERROR]: #!#! End of Error.
[14:50:47 ERROR]: #!#!
Surprisingly, this works:
set nbt of player's tool to "{here is the nbt}"
Thank you for help and keep going ❤️
For some reason I can't edit nbt of blocks? add "{test:1}" to nbt of event-block
or set nbt of block at event-location to "{test:1}"
both don't work.
I also tried with block data but set block data tag "test" of event-block to true
and set {_data} to block data tag "test" of event-block
shows ""
Support for sub-tags would be a great addition to this already awesome addon :-)
Hi, and thanks for releasing this awesome addon!
I'm suggesting that the value (<tagname>:<value>
) of a NBT tag could be obtained with a syntax something like get nbt value of %nbt tag% on %item/entity/block%
Also if you could modify the value, like
(add|subtract) %number% (to|from) nbt value of tag %nbt tag% on %item/entity/block%
Thanks :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.