Hey there, Amirreza here.👋 Contributer in coding projects for fun when I have free time.💻
I don't have programming as my job, I'm a business student, so apologies for the spaghetti code fellow coders ^_^
Ez Chest Shop plugin source code available on spigotmc.org
License: MIT License
Hey there, Amirreza here.👋 Contributer in coding projects for fun when I have free time.💻
I don't have programming as my job, I'm a business student, so apologies for the spaghetti code fellow coders ^_^
Every time a player joins the server it show this in the server console.
[11:15:35 ERROR]: Could not pass event PlayerJoinEvent to EzChestShop v1.6.4 java.lang.NullPointerException: Cannot invoke "me.deadlight.ezchestshop.utils.VersionUtils.injectConnection(org.bukkit.entity.Player)" because "me.deadlight.ezchestshop.utils.Utils.versionUtils" is null at me.deadlight.ezchestshop.listeners.PlayerJoinListener.onJoin(PlayerJoinListener.java:30) ~[EzChestShop-1.6.4.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor53.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:git-Paper-224] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.2.jar:git-Paper-224] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.2.jar:git-Paper-224] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.players.PlayerList.placeNewPlayer(PlayerList.java:325) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.handleConfigurationFinished(ServerConfigurationPacketListenerImpl.java:130) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.handle(ServerboundFinishConfigurationPacket.java:18) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.a(ServerboundFinishConfigurationPacket.java:9) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:53) ~[?:?] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1324) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-224] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-224] at java.lang.Thread.run(Thread.java:833) ~[?:?]
Whenever a user creates a shop charge them a fee.
[00:40:54 INFO]: Kamisat0Ayaka issued server command: /ecs create 10 10
[00:40:54 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'ecs' in plugin EzChestShop v1.6.5
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[luminol-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[luminol-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:1043) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2295) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2255) ~[?:?]
at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1648) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:408) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:404) ~[luminol-1.20.4.jar:git-Luminol-"d753f16
"]
at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"
]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.UnsupportedOperationException
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.handle(CraftScheduler.java:535) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.runTaskTimerAsynchronously(CraftScheduler.java:259) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.runTaskTimerAsynchronously(CraftScheduler.java:246) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.runTaskLaterAsynchronously(CraftScheduler.java:191) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.runTaskAsynchronously(CraftScheduler.java:160) ~[luminol-1.20.4.jar:git-Luminol-"d753f16"]
at me.deadlight.ezchestshop.data.ShopContainer.createShop(ShopContainer.java:87) ~[EzChestShop-1.6.5.jar:?]
at me.deadlight.ezchestshop.commands.MainCommands.createShop(MainCommands.java:391) ~[EzChestShop-1.6.5.jar:?]
at me.deadlight.ezchestshop.commands.MainCommands.onCommand(MainCommands.java:95) ~[EzChestShop-1.6.5.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[luminol-api-1.20.4-R0.1-SNAPSHOT.jar:?]
... 20 more
If I create a chest store holding a crafted firework_rocket
, it creates the store, but refuses to sell any of the inventory. I keep getting the error message of The shop is out of stock
even when there's many stacks of rockets in the chest. The rocket that was used for this has a Flight duration: 1
metadata attached to it.
To manually craft this type of rocket: /give <user> firework_rocket 1 {Fireworks:{Flight:1}}
If I give a user a rocket using /give <user> firework_rocket
(without any metadata) and then create a chest using that given rocket, the store builds and works correctly only as long as I put /give
provided rockets in the chest (rockets without a Flight duration
). Rockets created by crafting will not sell from the shop.
EzChestShop - version 1.5.0
Originally posted by XiroInfinity March 8, 2024
Hello, I was looking to suggest two features for use within this plugin, from the perspective of a player:
1: A "restricted" selling feature, where it simply limits the amount of purchases one can make to X per player on one's shops, deigned with the goal in mind of preventing monopolies on a marketplace, or maybe as a loss leader idea.
2: A gachapon/RNG system, where you can input many different items within a chest, and the buyer can pay X money for a random chance of getting any item within. The server I frequent uses "recipes" of varying values, and I have collected all available, but they still drop. The idea is that it could be sold to newer players who have none redeemed at random, where anything they acquire is of value to them but not so much to you.
Let me know if you have additional questions or concerns!
...as an aside, I don't know the viability, but if a 1.20.2 version can be done for these it would be largely appreciated.
please add folia support to this plugin. It is the latest branch of Minecraft server developed by the team of papermc which targeted for super large servers
https://github.com/PaperMC/Folia
Hello! I recently added this plugin to my paper server, and everything works fine! Until my player's tried to use /sell. At which point it said that they do not have permission to use the command. I've checked the perms multiple times and ecs and sell are both true. Idk what to do!
Add additional storage to your shop by putting the item you want to sell into a shulkerbox inside the shop storage.
like axtrade、
placeholder-currencies:
Example-Currency:
register: true # < MAKE SURE TO TURN THIS ON
name: "money"
# if the currency uses whole numbers, then disable this
# 100.5 - true
# 100 - false
uses-double: true
# if the placeholder gets parsed even for offline players, enable this
works-offline: false
settings:
raw-placeholder: "%vault_eco_balance_fixed%"
give-command: "eco give %player% %amount%"
take-command: "eco take %player% %amount%"
I'm seeing an error in my logs, but I can't find a debug mode to enable to try to find what's wrong with the shop. Please add a debug log level to the config so I can get more detail about what is going on surrounding the error message. I'm getting many of:
[22:20:47] [Server thread/INFO]: [ECS] Something unexpected happened with this container's data, so this shop has been removed.
[22:21:09] [Server thread/INFO]: [ECS] Something unexpected happened with this container's data, so this shop has been removed.
EzChestShop - version 1.5.0
Implement a system for Servers to enforce taxes.
currently using 1.5.6 but getting Update Notify with this title: 1.5.6 OMG MEGA UPDATE!
Hello, i seem to have a problem regarding holograms.
Breaking and placing the shop at the same spot will retain the hologram item of the old shop. Video so you could understand better. Restarting the server seems to fix broken ones: https://streamable.com/kd6yvw
Using: EzChestShop-1.6.4
MC Version: 1.20.1
Plugin: Towny https://github.com/TownyAdvanced/Towny
Everyone can create a chestshop in other's town plot through an existing chest here. Please check whether the area is claimed or not before people could create a chestshop here.
The plugin gives an error when you sneak while looking to a regular (non-shop) chest.
I think adding following code after the 241. line on the PlayerCloseToChestListener.java
will fix the issue but I can't test.
if (!ShopContainer.isShop(loc)) return;
Console log of the error:
- [Mon 18:05:44 ERROR Minecraft] Could not pass event PlayerToggleSneakEvent to EzChestShop v1.5.4
java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "src" is null
at java.base/java.util.Base64$Decoder.decode(Base64.java:589)
at EzChestShop-1.5.4.jar//me.deadlight.ezchestshop.Utils.Utils.decodeItem(Utils.java:118)
at EzChestShop-1.5.4.jar//me.deadlight.ezchestshop.Listeners.PlayerCloseToChestListener.onPlayerSneak(PlayerCloseToChestListener.java:279)
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor671.execute(Unknown Source)
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77)
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54)
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615)
at net.minecraft.server.network.ServerGamePacketListenerImpl.handlePlayerCommand(ServerGamePacketListenerImpl.java:2621)
at net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket.handle(ServerboundPlayerCommandPacket.java:37)
at net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket.handle(ServerboundPlayerCommandPacket.java:13)
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51)
at net.minecraft.server.TickTask.run(TickTask.java:18)
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153)
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24)
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1341)
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:
Add an option to abbreviate larger numbers with letters like k for thousand, m for million, b for billion, etc.
_abbreviated
or something similar will be displayed abbreviated. A config for input should still be required.This quick snippet might help you get going ;)
public static String coolNumberFormat(long count) {
if (count < 1000) return "" + count;
int exp = (int) (Math.log(count) / Math.log(1000));
DecimalFormat format = new DecimalFormat("0.#");
String value = format.format(count / Math.pow(1000, exp));
return String.format("%s%c", value, "kMBTPE".charAt(exp - 1));
}
pls help me
Some servers might have unique items, they do not want to be sold. May it be due to a story quest or just because a dupe gave some person 9 million barrier blocks. In these cases or others, you might want to stop the trade of certain items with a blacklist.
itemblacklist.yml
). Some servers might add a ton of items to this list. In that case, storing the blacklist in the standard config, would make it quite unreadable.blacklist:
# -------- Compact design: ---------
# The material can be defined via material:name. This should use the same names as F3+H ingame, not the bukkit STONE names.
- material:stone
# Using two ;; separates options. itemname and lore can be used to filter for these settings. \n equals a new line of lore.
# If a lore or name line starts with &- it means that the check should ignore colors. ChatColor.stripcolors()
- material:diamond_pickaxe;;itemname:King's Axe!;;itemlore:Only wielded by\n&-the king during combat!
# Enchantments can be defined with or without a associated level. /{level} and are separated by comma.
# A > or < sign can be use limit to values greater then or less then.
- enchantments:depth_strider,feather_falling/4,unbreaking/>1,mending
# potions work the same way as Enchantments. Durability can be a value or if it ends with % a percent value.
# Can be used with > or < too.
- potions:slow_falling,resistance/<4;;durability:100%
# Attributes consist of the syntax: name of the attribute/ value of the attribute/ operation of the attribute/ affected slots.
# Slots are separated by the & symbol.
# Hide flags targets the various flags to hide. Unbreakable is a boolean value, either true or false.
- attributes:max_health/1/amount/mainhand&offhand;;hide_flags:modifiers,unbreakable;;unbrekable:true
# -------- Readable/Comfy design: ---------
# Items have a identifier name to find them easier.
- item1:
material: fishing_rod
enchantments:
- lure: >1
# Level 0 equals not here at all. Level -1 equals enchantment is present with any level.
- unbreaking: 0
unbreakable: true
/ecsadmin blacklist
will show a gui list of all the blacklist filters. If a filter doesn't have a material, display a replacement item here instead (paper or structure void)[Material] [Name] [Lore] ...
enabled disabled disabled ...
As a operator (
/op
) or as a person withecs.admin
/ecs.admin.view
permission, you will always open a chest in admin view. In admin view you can buy/sell stuff to yourself and access other players settings/shop storage. This might not be wanted when recording a video or testing shops as a player. Here/ecsadmin toggleadminview
comes into play.
When you access the shop's gui and generate this error
purpurclip-1.17.1-1265
java.lang.NullPointerException: Cannot invoke "me.deadlight.ezchestshop.utils.ImprovedOfflinePlayer.fromOfflinePlayer(org.bukkit.OfflinePlayer)" because "me.deadlight.ezchestshop.utils.ImprovedOfflinePlayer.improvedOfflinePlayer" is null
at me.deadlight.ezchestshop.utils.XPEconomy.getXP(XPEconomy.java:9) ~[EzChestShop-1.6.5 (1).jar:?]
at me.deadlight.ezchestshop.utils.Utils.calculateBuyPossibleAmount(Utils.java:587) ~[EzChestShop-1.6.5 (1).jar:?]
at me.deadlight.ezchestshop.utils.Utils.calculatePossibleAmount(Utils.java:572) ~[EzChestShop-1.6.5 (1).jar:?]
at me.deadlight.ezchestshop.guis.AdminShopGUI.showGUI(AdminShopGUI.java:200) ~[EzChestShop-1.6.5 (1).jar:?]
at me.deadlight.ezchestshop.listeners.ChestOpeningListener.onChestOpening(ChestOpeningListener.java:132) ~[EzChestShop-1.6.5 (1).jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor36.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[purpur-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[purpur-api-1.20.2-R0.1-SNAPSHOT.jar:git-Purpur-2095]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[purpur-1.20.2.jar:git-Purpur-2095]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[purpur-1.20.2.jar:git-Purpur-2095]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:617) ~[purpur-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:595) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:538) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1978) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:37) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.a(ServerboundUseItemOnPacket.java:9) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:53) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1351) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1328) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1321) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1299) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[purpur-1.20.2.jar:git-Purpur-2095]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[purpur-1.20.2.jar:git-Purpur-2095]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
PLUGIN
> version EzChestShop
[01:03:45 INFO]: EzChestShop version 1.6.5
[01:03:45 INFO]: Easy Chest Shop that any server owner wants that for his/her players
[01:03:45 INFO]: Authors: ItzAmirreza and ElitoGame
SERVER
Current: git-Purpur-2095 (MC: 1.20.2)
this is bug?
If I toggle my Transactions off there will still stand Transactionmessage: &aON
It is in the Locale_EN file on:
chat:
toggleTransactions:
MessageOn: '&7Transactionmessage: &aON'
MessageOff: '&7Transactionmessage: &cOFF'
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.