GithubHelp home page GithubHelp logo

robotricker / transport-pipes Goto Github PK

View Code? Open in Web Editor NEW
27.0 7.0 29.0 40.21 MB

Buildcraft without mods!

Home Page: https://www.spigotmc.org/resources/transport-pipes.20873/

License: MIT License

Java 100.00%
pipe transport transport-pipes buildcraft plugin minecraft minecraft-plugin spigot spigot-plugin

transport-pipes's People

Contributors

jdkeke142 avatar mquinnv avatar robotricker avatar sgdc3 avatar tr7zw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

transport-pipes's Issues

Permissions-Bug

Hey i havefound a bug in latest version:

Players cant craft the crafting pipe so i chexked my persmissions file. I found they dont have any crafting-permissions. But they can can craft colored pipes. so how comes they dont need a persmission for them but need one for the crafting pipe?

Right now they only have negative transportpipes.* in certain worlds.

Permission for placing/destroying pipes

Does anyone know a plugin (such as Vault for currency) which provides access to several building permission plugins to check if the player can place or destroy a pipe at a specific location?

Unlimited Barrier Block placement for players

Player can place unlimited barrier blocks.
You just need to hide the blocks for the pipes, overload the pipe so it would break, but before it break show all hidden pipes.

  1. Place pipes and hide it with any block
  2. Overload the pipe with items
  3. Before pipe break, use wrench to see all hidden pipe
  4. Pipe breaks, barrier block stays

Stop server exception

  • Server version: 1.12.1
  • Transport-Pipes version: 4.2.0
  • I stopped server, I got this error message.
[10:04:11] [TransportPipes Thread/INFO]: stopping TransportPipes-Thread
[10:04:11] [Server thread/ERROR]: Error occurred while disabling TransportPipes v4.2.0-b11 (Is it up to date?)
java.lang.NoSuchMethodError: org.jnbt.NBTOutputStream.<init>(Ljava/io/OutputStream;Lorg/jnbt/NBTCompression;)V
	at de.robotricker.transportpipes.saving.SavingManager.savePipesSync(SavingManager.java:100) ~[?:?]
	at de.robotricker.transportpipes.TransportPipes.onDisable(TransportPipes.java:226) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:361) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:421) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:414) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at org.bukkit.craftbukkit.v1_12_R1.CraftServer.disablePlugins(CraftServer.java:348) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at net.minecraft.server.v1_12_R1.MinecraftServer.stop(MinecraftServer.java:465) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:613) [spigot-1.12.1.jar:git-Spigot-65e8124-8bf06d6]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
  • Start server message.
[10:08:44 ERROR]: Could not pass event WorldLoadEvent to TransportPipes v4.2.0-b11
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.1.jar:git-Spigo                                                                                                                        t-65e8124-8bf06d6]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.1.jar:git-Spigot-                                                                                                                        65e8124-8bf06d6]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [spigot-1.12.1.jar:git-Spigo                                                                                                                        t-65e8124-8bf06d6]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot-1.12.1.jar:git-Spigo                                                                                                                        t-65e8124-8bf06d6]
        at net.minecraft.server.v1_12_R1.MinecraftServer.l(MinecraftServer.java:380) [spigot-1.12.1.jar:git-Spigot-65                                                                                                                        e8124-8bf06d6]
        at net.minecraft.server.v1_12_R1.MinecraftServer.a(MinecraftServer.java:338) [spigot-1.12.1.jar:git-Spigot-65                                                                                                                        e8124-8bf06d6]
        at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:272) [spigot-1.12.1.jar:git-Spigot                                                                                                                        -65e8124-8bf06d6]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:545) [spigot-1.12.1.jar:git-Spigot-                                                                                                                        65e8124-8bf06d6]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.lang.NoSuchMethodError: org.jnbt.NBTInputStream.<init>(Ljava/io/InputStream;Lorg/jnbt/NBTCompression;                                                                                                                        )V
        at de.robotricker.transportpipes.saving.SavingManager.loadPipesSync(SavingManager.java:153) ~[?:?]
        at de.robotricker.transportpipes.saving.SavingManager.onWorldLoad(SavingManager.java:249) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.1.jar:git-Spigo                                                                                                                        t-65e8124-8bf06d6]
        ... 8 more

Use `ServiceManager` instead of singleton

Instead of sharing TransportPipesAPI via singleton instance initialized from constructor (which is also not very correct from point of JMM), this may be shared via Bukkit's ServicesManager which would allow better API design and possible future ability for splitting interfaces and their implementations.

If this gets supported, I may create a PR implementing this change.

Pipes Do Not Break When Full

I have max_items_per_pipe set to 10 in my config file (the default amount), however it seems as though the pipes do not break. I have 512 items running in a 4 pipe square to test this, and no pipes are breaking automatically.

2018-01-29_21 32 57

I am running Paper version git-Paper-1317 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT), and am using the latest plugin as of a day ago (v4.3.0-b70). There are no errors in the log pertaining to this.

[Suggestion] Add events to the API for inserting and extracting items

Adding events for inserting and extracting items to the API makes it much easier to integrate plugins with pipes. For example, I have containers that perform actions only when an item is inserted into them. If I could add a listener for something like a DuctInsertEvent, that would allow me to make those containers compatible with Transport Pipes.

Big problem :(

In MC 1.10 the client doesn't send a right-click-air event to the server, therefore if you rightclick on a pipe and not look on a block at the same time, the server does not recognizes that...
During MC 1.8 this was working fine... does anybody know any solution?

Crafting Pipe bugged.

Crafting Pipe wont work. I can't set any recipes in it as there's no way to put something in it to do so.

GitHub is being mean so I'm calling myself EnderHater (EnderSlime_123). Also noticed that when placing pipes, it takes like half a second to detect the skull, normally for other blocks like this, they're instant.

And I think Slimefun support would be cool. Basically just replace the Cargo Node system, and allow it to work with add-ons that require Cargo Nodes.

[Enhancement] Colored pipes

I'd like to suggest a new feature for the plugin.
It would require quite some work, but I guess it will pay-off in the end.

It's about coloring pipes.
Crafting recipe = pipe + colored glass = new colored pipe.
Using colored pipes will down-scale systems because colored pipes don't connect to other colors.
Colored pipes only connect to the same colors, or blank pipes.

This will making compact systems alot easier, since input and output pipes can be next to eachother, yet they can't connect.
Plus, It helps maintaining your system. People on my server have started getting creative with their builds (http://prntscr.com/f7uq17), but they are losing focus on what each line is doing.

By guessing you place a glass block on an armor-stand which displays the pipe, i think it shouldn't be that hard to make the texture (Change the glass block to colored glass), just the actual logic behind it might require quite some work.

I hope you understand what I am talking about, if not: please let me know and I'll try to explain it using pictures.
I love this plugin and I'd like to see it evolve!

Block TransportPipes in certain worlds and AcidIsland /purge support

Hey. I would like to ask for a option in the config called: "disabled worlds:".
Because i didnt find any way to disable the plugin in certain worlds. Giving negative permission on crafting didnt work for me. i was still able to craft and place pipes.

Also i am wondering what happens with pipes on a plot if this plot gets clearen. or on a skyblock island if it gets deleted?

btw i made a small donation. keep up the good work!

EDIT: Crafting permissions DO work. It was because i am OP thats why i bypassed it. Sorry for this.

FileNotFoundException every 5 minutes

Hey,
the plugin is displaying the following Exception:
[08:35:54 WARN]: java.io.FileNotFoundException: ASkyGrid/pipes.dat (No such file or directory) [08:35:54 WARN]: at java.io.FileOutputStream.open0(Native Method) [08:35:54 WARN]: at java.io.FileOutputStream.open(FileOutputStream.java:270) [08:35:54 WARN]: at java.io.FileOutputStream.<init>(FileOutputStream.java:213) [08:35:54 WARN]: at java.io.FileOutputStream.<init>(FileOutputStream.java:162) [08:35:54 WARN]: at de.robotricker.transportpipes.a.a.a.a(Unknown Source) [08:35:54 WARN]: at de.robotricker.transportpipes.a.a.a.a(Unknown Source) [08:35:54 WARN]: at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source) [08:35:54 WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [08:35:54 WARN]: at java.lang.reflect.Method.invoke(Method.java:497) [08:35:54 WARN]: at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) [08:35:54 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [08:35:54 WARN]: at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [08:35:54 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [08:35:54 WARN]: at net.minecraft.server.v1_11_R1.WorldServer.save(WorldServer.java:995) [08:35:54 WARN]: at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.save(CraftWorld.java:748) [08:35:54 WARN]: at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:703) [08:35:54 WARN]: at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [08:35:54 WARN]: at java.lang.Thread.run(Thread.java:745) [08:35:54 INFO]: [TransportPipes] saved 0 pipes in 4 worlds

Error on start

I get the following error when starting the spigot server (v1.13.2) with the transport pipe plugin:
[21:11:41 INFO]: Preparing spawn area: 96%
[21:11:41 INFO]: Preparing spawn area: 100%
[21:11:41 INFO]: Time elapsed: 11546 ms
[21:11:41 INFO]: [TransportPipes] Enabling TransportPipes v4.3.0-b70
[21:11:41 WARN]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
[21:11:41 WARN]: SLF4J: Defaulting to no-operation (NOP) logger implementation
[21:11:41 WARN]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[21:11:46 ERROR]: Error occurred while enabling TransportPipes v4.3.0-b70 (Is it up to date?)
java.lang.NoSuchMethodError: org.bukkit.material.MaterialData.<init>(IB)V
at de.robotricker.transportpipes.utils.config.RecipesConf.createPipeRecipe(RecipesConf.java:104) ~[?:?]
at de.robotricker.transportpipes.utils.staticutils.CraftUtils.initRecipes(CraftUtils.java:27) ~[?:?]
at de.robotricker.transportpipes.TransportPipes.onEnable(TransportPipes.java:320) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:339) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugin(CraftServer.java:431) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugins(CraftServer.java:345) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at net.minecraft.server.v1_13_R2.MinecraftServer.l(MinecraftServer.java:584) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:546) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:424) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at net.minecraft.server.v1_13_R2.DedicatedServer.init(DedicatedServer.java:294) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:702) [spigot-1.13.2.jar:git-Spigot-a1ba5fe-3359cb1]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
[21:11:47 INFO]: Server permissions file permissions.yml is empty, ignoring it
[21:11:47 INFO]: Done (21.158s)! For help, type "help"
The server still loads fine, but transport pipes cannot be crafted in game. The transport pipe commands are still usable, and when i run /tpipes creative i can add pipes and the wrench to my inventory but they look like heads whenever i place them they disappear

Support 1.15?

Hello, just wondering if there will be support for 1.15.2 or above?

This is a really cool project you have.

Could not pass event InventoryClickEvent to TransportPipes

Hello when I start the server with the plugin installed everytime someone on the server clicks in an inventory this error gets put into the log:

[18:57:03 ERROR]: Could not pass event InventoryClickEvent to TransportPipes v4.2.2-SNAPSHOT-b46 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:498) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:483) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1815) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:33) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:10) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131] at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:696) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:371) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:651) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:555) [craftbukkit-1.12.2.jar:git-Bukkit-31d3159] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131] Caused by: java.lang.NoSuchMethodError: org.bukkit.event.inventory.InventoryClickEvent.getClickedInventory()Lorg/bukkit/inventory/Inventory; at de.robotricker.transportpipes.settings.SettingsInv.onInvClick(SettingsInv.java:74) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:296) ~[craftbukkit-1.12.2.jar:git-Bukkit-31d3159] ... 15

Happens both in the version 4.2.0 and in the 4.2.2-SNAPSHOT
Full startup log until the first time this error appears:
https://pastebin.com/HahrbL7q

Deterministic branching

would be really nice if pipes with multiple outputs saved state and switched between the outputs sequentially. it appears to be random at the moment. this would make efficient furnace arrays much simpler to construct.

recipe issue

every time i try to change the recipe to add stuff it resets the config file for it

here is the default config as you know

    shape:
    - ggx
    - gbg
    - xgg
    ingredients:
      g: '20:0'
      b: '280:0'

if i change it to say this

    shape:
    - ggh
    - gbg
    - hgg
    ingredients:
      g: '20:0'
      b: '280:0'
      h: '264'

it will reset the config i have tried using other letter than h and it give the same result. i can change the default items but it wont let me add new ones.

[Update] 1.19

Hello

I'm using TransportPipes since 1.16 and it was worken most time.

So. I think on the spigot version 1.19 you must update your plugin, because Spigot can not load your plugin.

Thanks in advance.

Suggestion: recipes book

Could you add a Book to describe all pipes and if you klick on it it displays the crafting recipe in a GUI? Would be awesome ifplayers wont need to browse the internet to learn how to use it :)

Pipes don't connect to chests placed by other plugin

A plugin of mine places a chest by using setType(), pipes do not connect to this chest. But after a server reload or rejoining the pipe does connect. The weird thing is that hoppers do always connect to the chest and don't have this problem.

I'm not sure if it's your plugin that is causing this problem, but the fact that hoppers do work just fine makes it probable.

Transport-Pipes causes a problem

Hello.

Hello. I asked the Author of LWC if he can fix this bug. So, he said the plugin Transport-Pipes caused it.

Bug:
[22:56:31] [Server thread/WARN]: at de.robotricker.transportpipes.utils.LWCUtils.onPostRegistration(LWCUtils.java:40)

Please reade the full post here on lwc.

Maybe you can fix this bug on 1.19

Golden Blocks are uncraftable with crafting pipe

Hi there,

The crafting pipe seems to not be able to make many items, so far I have noticed gold blocks. #56 has this same issue but hasn't had any responses in a while. Any help would be appreciated. I am running 5.0.0 in 1.13.2

Can't spawn pipes again after destroy

If i spawn some pipes everything works fine, if i teleport to another world and then i teleport back the pipes aren't respawned, i have to reconnect or just move away from the pipes and return back in order to see again the pipes.

Tpipes problem 4.3.0 v

Hey man, how are you?

I just downloaded your latest DEV relase right now. Now is 12:31 of 30/01/18
Your DEV build il completely broken, so I tried to download the spigot "stable" version. But it is broken too.

What is the problem?
The texture pack. It automatically download his own resourcepack, also if I put Vanilla rendersystem.
I have my own texture pack set with RPGInventory plugin, I tried to put tpipes textures on it with the new dev version of tpipes.

But the texture has difficulties to load.

So I'm litterally obliged to deupgrade your version and use the 4.2.2.

Now everything works.
My own texture has been downloaded and I'm using vanilla rendering system, cos the modelled one doesn't work if we use custom textures because your plugin doesn't support RPGInventory.

Minecraft version 1.12.2
Thanks in advance

1.8 Support: is it possible?

You won't get this working on 1.8 because in MC 1.8 there is no "Marker tag" and without that the pipes have a hitbox. Therefore the placing and breaking of them is a big issue.

How do you use the marker tag?

Add FactionUUID support

Hello, i once asked for faction support but in the meantime i switched to FactionUUID, could you implement an hook?

Deprecated Recipe Creation

I get several warnings in the server logs when TransportPipes starts up, complaining about using a deprecated method to create recipes. It says to "Please ask the author to give their recipe a static key using NamespacedKey."

Here's an excerpt from the logs: https://pastebin.com/V7aZnPVs

I am running Paper version git-Paper-1317 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT), and am using the latest plugin as of a day ago (v4.3.0-b70).

Suggestion: to combine with the plugin Towny

The Towny plugin has its own private territory protection. But the pipe will ignore this protection. Any player can place pipes on the territory of any city. The Towny plugin has its own protection about the same as the WG. On simple queries from the plugin WG protection of pipes is great, but the privates Towny plugin on the pipe sees.
Can be done so that your plugin can see the protection of the land Towny?

Stuck moving items

Sometimes the last armourstand (when the source chest is empty) gets stuck in the pipe and can't be removed.

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.