Code Monkey home page Code Monkey logo

blockdrops's People

Contributors

canitzp avatar deadsix27 avatar durandj avatar kidsdontplay avatar makertim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

blockdrops's Issues

Dynamic Trees Error

when playing with this mod and dynamic trees, trees don't drop wood or sticks

[ModCompat] EntityPlayer initialisation in Post-Init

Hello,

there is a mod compat issue with your mod and my mod Vampirism.
Vampirism listens to the AttachCapability Event for entities to attach a capability and that capability requires things which are only created during post init, because it waits for information or addition from other mods (during init).
But you are already instantiating a EntityPlayer during Post-Init, which is not intended to by Forge (at least I think so), and causes the problem, since it is done before Vampirism post init is executed.

I probably could create a workaround in Vampirism, but it wouldn't be a very clean solution and could cause more problems. Most likely there are also other mods out there which do similar things. Is there a way you could instantiate the EntityPlayer later or to put your mod at the end of the mod order list?

Thanks,
Maxanier

Compatibility issue with newer versions of JEI.

I'm not sure whether the issue is with your JEI plugin or JEI itself, so I'll cross post this for both.

As the game attempts to load, I receive a LoaderExceptionModCrash exception which crashes the game to the desktop before I can even load a world. It seems to be related to the "mezz/jei/util/FakeClientPlayer" object.

Game Log with crash report: paste.ee

Crash on Server startup

Great mod, we love it.

Have a recent server crash when we updated some mods and Forge.
Full crash log is here.

Forge: forge-1.14.4-28.1.61.jar
BD: blockdrops-1.14.4-1.0.2.jar

NPE due to missing chunk in fake world when calling block.getDrops

https://github.com/MrRiegel/BlockDrops/blob/1.10/src/main/java/mrriegel/blockdrops/Plugin.java#L109

When your plugin calls block.getDrops it passes a fake world object. Blocks that have drops that depend on their tile entity will likely call world.getTileEntity which will ultimately throw an NPE since the chunk doesn't exist in the fake world.

You should probably either wrap that call in a try/catch (like you do with fireBlockHarvesting later) or emulate a chunk there in some way.

Example traceback:

[Client thread/WARN] [bdlib/blockdrops]: Error retrieving TE java.lang.NullPointerException
	at net.minecraft.world.World.func_72964_e(World.java:303) ~[aid.class:?]
	at net.minecraft.world.World.func_175726_f(World.java:298) ~[aid.class:?]
	at net.minecraft.world.World.func_175625_s(World.java:2402) ~[aid.class:?]
	at net.bdew.lib.block.HasTE$$anonfun$1.apply(HasTE.scala:59) ~[HasTE$$anonfun$1.class:?]
	at net.bdew.lib.block.HasTE$$anonfun$1.apply(HasTE.scala:59) ~[HasTE$$anonfun$1.class:?]
	at scala.util.Try$.apply(Try.scala:191) ~[Try$.class:?]
	at net.bdew.lib.block.HasTE$class.getTE(HasTE.scala:59) [HasTE$class.class:?]
	at net.bdew.gendustry.machines.apiary.BlockApiary$.getTE(BlockApiary.scala:24) [BlockApiary$.class:?]
	at net.bdew.lib.block.BlockKeepData$class.getSavedBlock(KeepData.scala:38) [BlockKeepData$class.class:?]
	at net.bdew.gendustry.machines.apiary.BlockApiary$.getSavedBlock(BlockApiary.scala:24) [BlockApiary$.class:?]
	at net.bdew.lib.block.BlockKeepData$class.getDrops(KeepData.scala:44) [BlockKeepData$class.class:?]
	at net.bdew.gendustry.machines.apiary.BlockApiary$.getDrops(BlockApiary.scala:24) [BlockApiary$.class:?]
	at net.bdew.gendustry.machines.apiary.BlockApiary$.getDrops(BlockApiary.scala:24) [BlockApiary$.class:?]
	at mrriegel.blockdrops.Plugin.getList(Plugin.java:109) [Plugin.class:?]
	at mrriegel.blockdrops.Plugin.getRecipes(Plugin.java:85) [Plugin.class:?]
	at mrriegel.blockdrops.BlockDrops.postInit(BlockDrops.java:128) [BlockDrops.class:?]

[1.12.2] Startup problem (Unknown Reason)

The crashes because of it ran out of memory. That happened every time block drop was present. In the loading screen you can see that it do not quit its process but in the crash log you can see nothing.
crash-2018-01-07_01.35.12-client.txt.docx

So I do not know how to solve this. The cause seems to be UniDict but if you remove UniDict the game crashes with another mod. That only ends if you remove Block Drops.

[1.12.1] T-Construct Seared Tank Error

In my Minecraft logs, I found this error, from what I see it can't calculate the drops from the Seared Tank.

Actual Log:
[16:36:58] [main/ERROR] [blockdrops]: An error occured while calculating drops for tile.tconstruct.seared_tank.name (class java.lang.NullPointerException)
[16:36:58] [main/ERROR] [blockdrops]: An error occured while calculating drops for tile.tconstruct.seared_tank.name (class java.lang.NullPointerException)
[16:36:58] [main/ERROR] [blockdrops]: An error occured while calculating drops for tile.tconstruct.seared_tank.name (class java.lang.NullPointerException)

Spam in fml-client-latest.log

I see this hundreds of times

[07:38:47] [Client thread/INFO] [STDOUT/blockdrops]: [elucent.roots.block.BlockDoubleSlabBase:getDrops:111]: DEBUG
[07:38:47] [Client thread/INFO] [STDOUT/blockdrops]: [elucent.roots.block.BlockDoubleSlabBase:getDrops:111]: DEBUG
[07:38:47] [Client thread/INFO] [STDOUT/blockdrops]: [elucent.roots.block.BlockDoubleSlabBase:getDrops:111]: DEBUG

Harcore Survival Mod still not working properly with your mod

Well... In some way it does work but it spams the console and the log file with this message everytime it tests another block (this means "5000""amount of tested blocks""3" (levels of fortune)):

[22:11:31] [Client thread/ERROR]: Exception caught during firing event net.minecraftforge.event.world.BlockEvent$HarvestDropsEvent@cae7549:
java.lang.IllegalArgumentException: Attempted to cancel a non cancellable event
    at net.minecraftforge.fml.common.eventhandler.Event.setCanceled(Event.java:93) ~[Event.class:?]
    at mod.upcraftlp.hardcoresurvival.util.WoodEvents.onWoodBroken(WoodEvents.java:21) ~[WoodEvents.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_59_WoodEvents_onWoodBroken_HarvestDropsEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:68) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:159) [EventBus.class:?]
    at net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(ForgeEventFactory.java:226) [ForgeEventFactory.class:?]
    at mrriegel.blockdrops.Plugin.getList(Plugin.java:104) [Plugin.class:?]
    at mrriegel.blockdrops.Plugin.getRecipes(Plugin.java:77) [Plugin.class:?]
    at mrriegel.blockdrops.BlockDrops.postInit(BlockDrops.java:125) [BlockDrops.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
    at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:577) [FMLModContainer.class:?]
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:235) [LoadController.class:?]
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:213) [LoadController.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:142) [LoadController.class:?]
    at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:779) [Loader.class:?]
    at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:322) [FMLClientHandler.class:?]
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:520) [bcx.class:?]
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:351) [bcx.class:?]
    at net.minecraft.client.main.Main.main(SourceFile:124) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
    at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:191) [NewLaunch.jar:?]
    at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:252) [NewLaunch.jar:?]
    at org.multimc.EntryPoint.listen(EntryPoint.java:162) [NewLaunch.jar:?]
    at org.multimc.EntryPoint.main(EntryPoint.java:53) [NewLaunch.jar:?]
[22:11:31] [Client thread/ERROR]: Index: 5 Listeners:
[22:11:31] [Client thread/ERROR]: 0: HIGHEST
[22:11:31] [Client thread/ERROR]: 1: ASM: com.oitsjustjose.vtweaks.enchantment.EnchantmentAutosmeltHandler@1f6460f5 register(Lnet/minecraftforge/event/world/BlockEvent$HarvestDropsEvent;)V
[22:11:31] [Client thread/ERROR]: 2: NORMAL
[22:11:31] [Client thread/ERROR]: 3: ASM: com.oitsjustjose.vtweaks.event.blocktweaks.CakeTweak@643ee419 registerTweak(Lnet/minecraftforge/event/world/BlockEvent$HarvestDropsEvent;)V
[22:11:31] [Client thread/ERROR]: 4: ASM: mod.upcraftlp.hardcoresurvival.util.LeafEvents@3d8cef0c onBlockBroken(Lnet/minecraftforge/event/world/BlockEvent$HarvestDropsEvent;)V
[22:11:31] [Client thread/ERROR]: 5: ASM: mod.upcraftlp.hardcoresurvival.util.WoodEvents@16c3c7db onWoodBroken(Lnet/minecraftforge/event/world/BlockEvent$HarvestDropsEvent;)V
[22:11:31] [Client thread/ERROR]: 6: ASM: sblectric.lightningcraft.events.ToolEvents@ac284a8 onHarvestDrops(Lnet/minecraftforge/event/world/BlockEvent$HarvestDropsEvent;)V

It does work if i set the iteration value to one and i think it would work with 5000 (default), too. but it takes very long because of all the errors (30min+ , stopped trying, but it would take nearly one day, if i calculated it right ^^(ca 15 sec with iteration=1 => ca 20 hours with iteration=5000 ).

[Suggestion] Async block dropping

I dont know if it is possible; but if it can

make 2-4 threads for the blockdropping
the loading still takes a fair bit of time; especially with big mods like 'Pam's harvastcraft'
if you can, plz allow multi threading!

Client crash

Awesome mod we love your work.

We recently updated our modpack and the client is crashing:

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $

Client crash:
Full crash log here

If you need any more information, let me know.
Thanks.

No Block Drops are displayed for Pam's Harvestcraft plants

Hello,

I tried that with:

  • BlockDrops-1.9.4-1.0.1.jar
  • jei_1.9.4-3.6.4.213.jar
  • Pam's HarvestCraft 1.9.4b.jar

I couldn't see the blocks and items that are droped by for example "Windy Garden".

I don't know on which side the problem is.

Thanks for reading this

Michael (aka BakermanLP)

Many drops breaks the display

Sorry, me again :)

I've got another issue, but it is kind of cosmetic. This time a picture say's more than a thousand words:

2016-06-17_13 48 00

Newest version of block drops stalls out on Post-init

With some mods installed the mod Block drops starts to freeze and then stalls out but doesn't close out. It starts out fine then once it hits certain mods the mod stops.

forge: 12.18.1.2046
Block Drop: 1.0.9
JEI: 3.7.10.237

JsonSyntaxException

https://pastebin.com/8t2iwCYR

Forge 1.12.1 - 14.22.0.2460
blockdrops-1.12-1.3.0.jar

Possibly some incompatibilities in new forge version? This wasn't my crash but one from a user on the ATM3 server that I have testing the latest forge build (mod works fine in Forge 2456)

Wrong drops (outdated blockdrops.txt file)

Something is very wrong with latest 1.12.2-1.3.1 version... Many drops are missed (from wheat for example), and also there are some strange "empty drops":

BlockDrops

JEI 4.8.0.117 + JER 0.8.6

1.12.2 - Stall on startup, no crash report. Mod conflict

Hey there! I'm working on a modpack and just discovered your mod today. It seemed like something that I'd benefit from, but unfortunately there seems to be a mod conflict of some kind. It hangs during startup and requires me to kill Java. The item it said it was analyzing when it froze was from Project: Vibrant Journeys. However, I tested just this mod with PVJ in an isolated instance, and it loaded just fine.

Here is my latest.log, since no crash report generates: https://pastebin.com/tuWBqMqW

The config file seemed to generate correctly, but blockdrops.txt and modVersions.txt were both empty files.

I tried to figure out where the conflict was, but I tested every single mod that appeared in the end of the latest.log, and none of them caused the crash. I also tested the combination of Pyrotech/Dropt/Better With Mods, because that seemed a likely cause (I edit some block drops using those mods). However, that loaded correctly as well.

My only remaining theory is that it may be related to my CraftTweaker scripts involving some of those mods? However, I need to get to bed and I have a terrible memory, so I am posting this in the hope that there may be enough information in that log for you to identify (I suspect not). Tomorrow I will try to do some more test and update this ticket.

Thanks for your time! :)

(1.12.2) crash on startup

Time: 10/4/17 1:19 AM
Description: There was a severe problem during mod loading that has caused the game to fail

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Block Drops (blockdrops)
Caused by: java.lang.NullPointerException
at com.google.common.collect.Iterables.removeIf(Iterables.java:203)
at mrriegel.blockdrops.BlockDrops.postInit(BlockDrops.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:606)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
at com.google.common.eventbus.EventBus.post(EventBus.java:217)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:253)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:231)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
at com.google.common.eventbus.EventBus.post(EventBus.java:217)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:148)
at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:724)
at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:348)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:534)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:377)
at net.minecraft.client.main.Main.main(SourceFile:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

Feature Request: Better drop calculation or manual edit of blockdrops

Some mods edit block drops using the HarvestDropsEvent. This is not recognized by this mod, and i think it would be very hard to implement this, but i do not know much about coding, so this may be totally wrong.
If this is reasonably easy i would be very grateful if you could add these block drop changes (via HarvestDropsEvent) to you block drop calculation. (here is an example of a mod using this method)
I think an good alternative (if this is not reasonable) would be a possibility to overwrite block drops and chances displayed by this mod via a config. This way e.g. i could look up the drops in the others mods (decompiled) source or ask the author and add them to your mods block drops in my personal modpack.

[1.4.0] incorrect shows with Divergent-Underground mod

'Divergent-Underground' mod changes ore/rock drops from ore/rock blocks, but in 'Block Drops' still show old default drop.
it concerns vanilla minecraft, and Mekanism and ImmersiveEngineering ores.
but eg in Quark - it shows all stones correctly

Mod doesn't recognise custom drops added by DropAnything

Minecraft version 1.10.2
Blockdrops version 1.1.1
DropAnything version 0.0.1
https://minecraft.curseforge.com/projects/dropanything

Blockdrops shows all the default drops just fine, however it does not list drops added by Drop Anything.
The custom drops added by Drop Anything work fine when tested in world.

Manually adding entries to the BlockDrops.key does not resolve the issue.

  {
    "name": "quadrum:componentcast",
    "meta": 1,
    "length": 1,
    "name0": "gregtech:gtmetaitem01",
    "meta0": 28035,
    "0chance0": 800.0,
    "1chance0": 800.0,
    "2chance0": 800.0,
    "3chance0": 800.0,
    "0pair0": "{\n  \"left\": 1,\n  \"right\": 1\n}",
    "1pair0": "{\n  \"left\": 1,\n  \"right\": 1\n}",
    "2pair0": "{\n  \"left\": 1,\n  \"right\": 1\n}",
    "3pair0": "{\n  \"left\": 1,\n  \"right\": 1\n}"
  },

(this block drops 8 copper rings in game)

Block Drops for grass with Harvestcraft seeds

2017-11-15_16 42 17
This is just an example of a block that drops more than 9 different items, blocks such as grass present problems for the UI when you have a lot of mods adding drops to it.
Maybe add something so it adds lines when there's more than 9 items?

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.