Giter VIP home page Giter VIP logo

igoodie / twitchspawn Goto Github PK

View Code? Open in Web Editor NEW
53.0 3.0 23.0 4.59 MB

👾 TwitchSpawn is a Minecraft mod, which is designed for Twitch streamers using 3rd party streaming tools! (comes with its own language!)

Home Page: https://www.curseforge.com/minecraft/mc-mods/twitchspawn

License: Eclipse Public License 1.0

Java 100.00%
streamer mod streamlabs minecraft twitch-nicks twitch-streamers game donations reward dsl

twitchspawn's Introduction



Long waited update is finally here! 🎉 1.18 Port is alive! (See the user manual!)

Brief Summary

TwitchSpawn is a Minecraft mod designed for Twitch streamers using 3rd party streaming platforms!

It listens for live events related to your Twitch channel using various Socket APIs. Then it handles those events with the rules handcrafted by you!

You can say hi to us by giving our Discord Server a visit! (https://discord.gg/KNxxdvN)

Preview #1 Preview #2

How to use?

Complete user manual can be found on https://igoodie.gitbook.io/twitchspawn/

Features

1. All the events!

Thanks to the power of SocketIO, the mod is now able to respond to a wide variety of events! Donations, follows, subscriptions, resubs, bits and many more events including for Youtube and Mixer as well! List of supported streaming platforms:

(See 📜 TSL Events & Predicates - https://igoodie.gitbook.io/twitchspawn/twitchspawn-language/tsl-events-and-predicates)

2. Your own, readable rules!

The mod now comes with its own language to understand you: TwitchSpawn Language (TSL)! With TSL, declaring event handling rules (rule sets) is piece of cake! It is easily understandable. (E.g following sequence is a valid TSL script: DROP minecraft:diamond ON Twitch Follow)

(See 📜 TSL Basics - https://igoodie.gitbook.io/twitchspawn/twitchspawn-language/tsl-basics)

# Drops 2 sticks on 0 to 20 unit donation
DROP minecraft:stick 2
 ON Donation
 WITH amount IN RANGE [0,20]

EITHER # Selects one random action
 # Either drops a diamond block
 DROP diamond_block 1
 OR
 # Or drops an iron block named "Iron Golem Body"
 DROP %iron_block{display:{Name:"\"Iron Golem Body\""}}% 2
 OR
 # Or summons a zombie on given coordinate
 SUMMON minecraft:zombie ~ ~+10 ~
 # By displaying one common message for any action selected!
 ALL DISPLAYING %["Get ready for spoils of battle!"]%
 ON Donation
 WITH amount IN RANGE [21, 999]

# Executes a Minecraft command as the streamer being the source!
EXECUTE %/gamerule keepInventory true%
 DISPLAYING %[
  {text:"${actor}", color:"red"},
  {text:" turned immortality on!", color:"white"},
 ]%
 ON Donation
 WITH amount >= 1000

 # Instantly does two actions! Throws leggings and boots from the inventory!
BOTH INSTANTLY
 THROW leggings AND THROW boots
 DISPLAYING %["You forgot to wear your pants!"]%
 ON Twitch Subscription
 WITH months >= 2

# Drops a stick with NBT data, when a Twitch Follow is received!
DROP %minecraft:stick{display:{Name:"\"Stick of Truth!\""}}% 1
 ON Twitch Follow

3. One server, multiple streamers!

The mod is capable of parsing more than one ruleset, which makes it possible for multiple streamers to use TwitchSpawn on the same server!

(See 📄 credentials.toml - https://igoodie.gitbook.io/twitchspawn/reference/configurations/credentials.toml)

Exemplar credentials.toml:

moderatorsTwitch = [ "Redowar" ]
moderatorsMinecraft = [ "Redowar" ]

[[streamers]]
	minecraftNick = "iGoodie"
	twitchNick = "iGoodiex"
	platform = "Streamlabs"
	token = "YOUR_SOCKET_TOKEN_HERE"

[[streamers]]
	minecraftNick = "iGoodie"
	twitchNick = "iGoodiex"
	platform = "StreamElements"
	token = "YOUR_SOCKET_TOKEN_HERE"

4. Way better customizability

You can customize the text that is shown on an action, with an easy JSON format and well known Minecraft Text Component syntax!

(See 💿 Minecraft JSON Text Components - https://github.com/skylinerw/guides/blob/master/java/text%20component.md)

(See 📘 Customizing Messages - https://igoodie.gitbook.io/twitchspawn/basics/customizing-messages)

Exemplar messages.title.json:

{
  "donation": [
    {
      "text": "${actor}",
      "color": "aqua"
    },
    {
      "text": " donated you ${amount_f}${currency}",
      "color": "white"
    }
  ],
  "twitch follow" : [ ... ],
  "twitch subscription" : [ ... ],
  ...
}

5. More reliable than before!

Unlike the previous (1.12.x) versions, errors will not cause Minecraft to crash with no report. Instead it is aimed to show errors to the user as much as possible. If you're facing any sort of problem, do not hasitate giving our Discord Server a visit!

(👾 Discord Invite: https://discordapp.com/invite/KNxxdvN)

Error Display Preview

Translations

  • My Guildies: Elanor & Vaelios - German and French translations 🎉
  • SE7-KN8 - German translation of test command module keys

If you would like to contribute to the translations, consider modifying languages and creating a PR!

Special Thanks

Special thanks to each one of those beautiful people:

  • Redowar - For igniting the initial idea of dropping (actually Spawn'ing :p) stuff in-game, dev-version testing and his amazing company!
  • ToastNomNomNom - For reaching me, motivating me for a whole new paradigm and helping me do the alpha testings!
  • Köfteistköfte - For his amazing OS_RUN action idea and testings!
  • AdmiralLemon - For his bug reports and helps on debugging!
  • Darkphan - For his precious Github issues and suggestions!
  • iskall85 - For reaching me and motivating me for a 1.12.x refactor/port!
  • TheGreatGildersneeze - For his amazing TwitchSpawn server and correction on a misleading documentation page!
  • JimilT92 - For his amazing insight on placeholder expressions and detailed issues!
  • BisUmTo - For his priceless bug-reports and endless effort on debugging them!
  • Diaval - For his epic memes and pair programming sessions!
  • Azelza - For his unconditional support and love to the Spawn Project!
  • Atanend, DesimieS, Katayanka, Grishnack and Taul - For their assist in alpha testing the TSL2.0 early features!
  • My Guildies: Elanor & Vaelios - For preparing German and French translations!
  • And every single person in our Discord Server for keeping us motivated on this project!

Facing an Issue?

twitchspawn's People

Contributors

bisumto avatar cypherx avatar igoodie avatar melanx avatar rhbarber avatar se7kn8 avatar sjhogge 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  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

twitchspawn's Issues

[Bug] DISPLAYING not working for meta actions

Describe the bug
DISPLAYING doesnt work for meta actions such as BOTH or EITHER.
the tsl script is following (copied from the wiki):

EITHER
DROP apple DISPLAYING %["Here comes apple!"]%
OR
DROP stick DISPLAYING %["Here comes stick!"]%
OR
NOTHING DISPLAYING %["What a pity! No reward for you."]
ON Twitch Subscription%

and produces this: https://imgur.com/7q79qd7

if e.g. only doing it like this:

DROP apple DISPLAYING %["Here comes apple!"]
ON Twitch Subscription%

it shows the message properly.

Version (please complete the following information):

  • OS: MAC
  • TwitchSpawn Version: 0.4.9
  • Forge Version: 1.12.2-14.23.5.2847

[Enhancement] More logging

It would be cool if the mod would log a bit more. Especially command feedback.
If there is a command which returns status code 0 it would be nice to know why it failed. I could not find any information whether in latest.log nor in debug.log.
Would be really nice :)

Streamlabs Charity API handler

So at the moment Streamlabs does not have this listener on their documentation, but the dev for streamlabs informed me in an email that there is an event type for Streamlabs Charity donations called streamlabscharitydonation. I haven't been able to test it myself since I'm not very knowledgeable with Java applications, but I assume this could easily be added if it does work so that the mod can support Charity donations as well through Streamlabs.

[Suggestion/Request] StreamElements Tiltify Support

Hello all! Sorry if this isn't the appropriate place for this but I saw TwitchSpawn has Tiltify support for StreamLabs but not for StreamElements. Is this something that will be coming to StreamElements, or that could be requested as a new feature? Thanks!

Unknown block type minecraft:sign (or wall_sign)

Describe the bug
When trying to setblock or drop the item minecraft:sign or minecraft:wall_sign it doesn't recognize the block.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the file: 'rules.default.tsl'
  2. Add the following lines:
# Sub rules
EXECUTE %/fill ~1 100 ~1 ~-1 1 ~-1 minecraft:air replace minecraft:grass_block%
 %/fill ~1 100 ~1 ~-1 1 ~-1 minecraft:air replace minecraft:dirt%
 %/fill ~1 100 ~1 ~-1 1 ~-1 minecraft:air replace minecraft:sand%
 %/fill ~1 100 ~1 ~-1 1 ~-1 minecraft:air replace minecraft:netherrack%
 %/fill ~1 100 ~1 ~-1 1 ~-1 minecraft:air replace minecraft:cobblestone%
 %/fill ~ 20 ~ ~-1 20 ~-1 minecraft:water%
 %/setblock ~ ~ ~ minecraft:sign 1 replace {Text1:"{\"text\":\"Thanks for\"}",Text2:"{\"text\":\"the sub\"}",Text3:"{\"text\":\"${actor}\",\"color\":\"dark_blue\"}",Text4:"{\"text\":\":D\"}",}%
 DISPLAYING %[{text:"and stripped the ground below you!!!"}]%
 On Twitch Subscription
  1. Save document
  2. Open minecraft and start your world
  3. Do /ts start
  4. Try out the Twitch subscription with the Test widget function in Streamlabs OBS

Expected behavior
I expected that a sign would be placed with 'Thanks for the sub [name] :D'

Screenshots
If applicable, add screenshots to help explain your problem.
image

Version (please complete the following information):

  • OS: Windows 10
  • TwitchSpawn Version: 1.9.0 [edited typo]
  • Forge Version: 34.1.0

Mod loading error has occurred

Hi. I got a problem. When I wanted to start minecraft with TwitchSpawn today, an error occured:

---- Minecraft Crash Report ----
// Hey, that tickles! Hehehe!

Time: 1/2/21 11:25 AM
Description: Mod loading error has occurred

java.lang.Exception: Mod Loading has failed
at net.minecraftforge.fml.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:85) [?:?] {re:classloading}
at net.minecraftforge.fml.client.ClientModLoader.completeModLoading(ClientModLoader.java:188) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.lambda$null$1(Minecraft.java:508) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft$$Lambda$3980/280395604.run(Unknown Source) [?:?] {}
at net.minecraft.util.Util.func_215077_a(Util.java:418) [?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:504) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft$$Lambda$3662/592655690.accept(Unknown Source) [?:?] {}
at net.minecraft.client.gui.ResourceLoadProgressGui.func_230430_a_(ResourceLoadProgressGui.java:172) [?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:802) [?:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.4.jar:35.1] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$432/509858326.call(Unknown Source) [forge-1.16.4-35.1.4.jar:35.1] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}

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

-- Head --
Thread: Render thread
Stacktrace:
at net.programmer.igoodie.twitchspawn.TwitchSpawn.commonSetup(TwitchSpawn.java:68) ~[?:1.9.0] {re:classloading}
-- MOD twitchspawn --
Details:
Mod File: twitchspawn_1.16.1-1.9.0.jar
Failure message: TwitchSpawn (twitchspawn) encountered an error during the common_setup event phase
java.lang.RuntimeException: TwitchSpawn loading errors occurred
Mod Version: 1.9.0
Mod Issue URL: https://github.com/iGoodie/TwitchSpawn/issues
Exception message: java.lang.RuntimeException: TwitchSpawn loading errors occurred
Stacktrace:
at net.programmer.igoodie.twitchspawn.TwitchSpawn.commonSetup(TwitchSpawn.java:68) ~[?:1.9.0] {re:classloading}
at net.programmer.igoodie.twitchspawn.TwitchSpawn$$Lambda$3135/302450949.accept(Unknown Source) ~[?:?] {}
at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247) ~[eventbus-3.0.5-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239) ~[eventbus-3.0.5-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus$$Lambda$2957/121644275.invoke(Unknown Source) ~[?:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297) ~[eventbus-3.0.5-service.jar:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:120) ~[?:35.1] {re:classloading}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:121) ~[?:?] {re:classloading}
at net.minecraftforge.fml.ModContainer$$Lambda$3128/290509937.run(Unknown Source) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {}

-- System Details --
Details:
Minecraft Version: 1.16.4
Minecraft Version ID: 1.16.4
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: 688422008 bytes (656 MB) / 1706033152 bytes (1627 MB) up to 3817865216 bytes (3641 MB)
CPUs: 12
JVM Flags: 5 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4096m -Xms256m -XX:PermSize=256m
ModLauncher: 8.0.6+85+master.325de55
ModLauncher launch target: fmlclient
ModLauncher naming: srg
ModLauncher services:
/mixin-0.8.2.jar mixin PLUGINSERVICE
/eventbus-3.0.5-service.jar eventbus PLUGINSERVICE
/forge-1.16.4-35.1.4.jar object_holder_definalize PLUGINSERVICE
/forge-1.16.4-35.1.4.jar runtime_enum_extender PLUGINSERVICE
/accesstransformers-2.2.0-shadowed.jar accesstransformer PLUGINSERVICE
/forge-1.16.4-35.1.4.jar capability_inject_definalize PLUGINSERVICE
/forge-1.16.4-35.1.4.jar runtimedistcleaner PLUGINSERVICE
/mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE
/OptiFine_1.16.4_HD_U_G5.jar OptiFine TRANSFORMATIONSERVICE
/OptiForge-MC1.16.4-0.4.3.jar optiforge TRANSFORMATIONSERVICE
/forge-1.16.4-35.1.4.jar fml TRANSFORMATIONSERVICE
/OptiForge-MC1.16.4-0.4.3.jar FakeOptiFine TRANSFORMATIONSERVICE
/OptiForge-MC1.16.4-0.4.3.jar optiforgewrapper TRANSFORMATIONSERVICE
FML: 35.1
Forge: net.minecraftforge:35.1.4
FML Language Providers:
[email protected]
minecraft@1
Mod List:
forge-1.16.4-35.1.4-client.jar |Minecraft |minecraft |1.16.4 |SIDED_SETU|NOSIGNATURE
OptiForge-MC1.16.4-0.4.3.jar |OptiForge |optiforge |0.4.3 |SIDED_SETU|NOSIGNATURE
twitchspawn_1.16.1-1.9.0.jar |TwitchSpawn |twitchspawn |1.9.0 |ERROR |NOSIGNATURE
forge-1.16.4-35.1.4-universal.jar |Forge |forge |35.1.4 |SIDED_SETU|22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90
Xaeros_Minimap_20.30.1_Forge_1.16.4.jar |Xaero's Minimap |xaerominimap |20.30.1 |SIDED_SETU|NOSIGNATURE
jei-1.16.4-7.6.1.63.jar |Just Enough Items |jei |7.6.1.63 |SIDED_SETU|NOSIGNATURE
Crash Report UUID: 0ec25cdd-e126-43a0-a143-4cb5557a8d3a
OptiFine Version: OptiFine_1.16.4_HD_U_G5
OptiFine Build: 20201106-171901
Render Distance Chunks: 15
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.6.14757 Compatibility Profile Context 20.12.1 27.20.14501.28009
OpenGlRenderer: AMD Radeon RX 5700 XT
OpenGlVendor: ATI Technologies Inc.
CpuCount: 12

FTBrank dos not allow Twitchspawn

we have FTBRank. and it requires being dev rank in order for it to send things through. so what permission does it require to have twitchspawn on?

Can't start the game

I'm getting the error: modloader.twitchspawn.error.tls
TwitchSpawn version: 1.9.0
Minecraft version: 1.16.4
Forge: 35.1.4
SS:
Screenshot_1

Events not firing properly

Describe the bug
It seems the twitch sub gift is not triggering (the subscription event does lower in the file instead). and the "twitch raid" event is not firing on actual raids (I think this is because the event actually uses ${amount} to carry the raider count and not ${raiders} as it says in the documentation. testing that now. I also could just be dumb

Version (please complete the following information):

  • OS: Windows 10
  • TwitchSpawn Version: 1.9
  • Forge Version: 36.1.2

Additional context
Maybe I am just blind or not seeing something, If that is true, sorry. I love the mod though! :P

My File Contents
``# Xogue's Ruleset

BOTH INSTANTLY
SUMMON skeleton ~ ~ ~ %{HandItems:[{Count:1,id:bow,tag:{Enchantments:[{id:punch,lvl:5}]}},{}],CustomName:""Back OFF!"",ActiveEffects:[{Id:25,Amplifier:0,Duration:25}]}%
AND
EXECUTE %/effect give Xogue minecraft:levitation 10%
ON Twitch Subscription Gift

BOTH
EXECUTE %/give Xogue minecraft:stick{display:{Name:'{"text":"Yeet!"}'},Enchantments:[{id:knockback,lvl:20}]}%
AND
EITHER
CHANCE 24 PERCENT SUMMON zombie
DISPLAYING %[
{text:"${actor} wants you to YEET the Zombie!"}
]%
OR
CHANCE 24 PERCENT SUMMON skeleton
DISPLAYING %[
{text:"${actor} wants you to YEET the Skeleton!"}
]%
OR
CHANCE 24 PERCENT SUMMON silverfish
DISPLAYING %[
{text:"${actor} wants you to YEET the Silverfish!"}
]%
OR
CHANCE 24 PERCENT SUMMON cow
DISPLAYING %[
{text:"${actor} wants you to YEET the Cow!"}
]%
OR
CHANCE 4 PERCENT SUMMON enderman
DISPLAYING %[
{text:"${actor} wants you to YEET the Enderman!"}
]%
ON Twitch Follow

FOR 3 TIMES
EXECUTE %/summon zombie ~ ~1 ~ {HandItems:[{Count:1,id:potato,tag:{display:{Name:""YEET Potato""},Enchantments:[{id:knockback,lvl:200}]}},{}],CustomName:""Get Rekt!"",CustomNameVisible:1}%
ON Donation
WITH amount >= 5

EXECUTE %/summon zombie ~ ~1 ~ {HandItems:[{Count:1,id:potato,tag:{display:{Name:""YEET Potato""},Enchantments:[{id:knockback,lvl:200}]}},{}],CustomName:""Get Rekt!"",CustomNameVisible:1}%
ON Donation
WITH amount >= 1

FOR 3 TIMES
EXECUTE %/summon zombie ~ ~1 ~ {HandItems:[{Count:1,id:carrot,tag:{display:{Name:""YEET Carrot""},Enchantments:[{id:knockback,lvl:200}]}},{}],CustomName:""Get Rekt!"",CustomNameVisible:1}%
ON Twitch Bits
WITH amount >= 500

EXECUTE %/summon zombie ~ ~1 ~ {HandItems:[{Count:1,id:carrot,tag:{display:{Name:""YEET Carrot""},Enchantments:[{id:knockback,lvl:200}]}},{}],CustomName:""Get Rekt!"",CustomNameVisible:1}%
ON Twitch Bits
WITH amount IN RANGE [100,499]

FOR ${amount} TIMES
SUMMON chicken ~ ~ ~ %{Passengers:[{id:husk,IsBaby:1,HandItems:[{Count:1,id:carrot,tag:{Enchantments:[{id:knockback,lvl:20}]}},{Count:1,id:potato}],CustomName:""Mini YEET!"",CustomNameVisible:1}]}%
ON Twitch Subscription

FOR ${amount} TIMES
BOTH
EITHER
SUMMON firework_rocket ~3 ~3 ~3 %{LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:0,Flicker:0,Trail:0,Colors:[I;11743532],FadeColors:[I;3887386]}]}}}}%
OR
SUMMON firework_rocket ~-3 ~3 ~-3 %{LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:1,Flicker:0,Trail:0,Colors:[I;11743532,14188952,12801229],FadeColors:[I;3887386,6719955,15790320]}]}}}}%
OR
SUMMON firework_rocket ~3 ~3 ~-3 %{LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:2,Flicker:0,Trail:0,Colors:[I;5320730,2651799,14602026,12801229],FadeColors:[I;2437522,8073150,2651799,4408131]}]}}}}%
OR
SUMMON firework_rocket ~-3 ~3 ~3 % {LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:3,Flicker:0,Trail:0,Colors:[I;1973019,3887386,14602026,6719955,15790320],FadeColors:[I;3887386,2651799,4312372,12801229,15790320]}]}}}}%
OR
SUMMON firework_rocket ~4 ~3 ~-4 %{LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:4,Flicker:0,Trail:0,Colors:[I;11743532,14188952,4312372,14602026,15435844],FadeColors:[I;11743532,2437522,2651799,4408131,14188952]}]}}}}%
OR
SUMMON firework_rocket ~-4 ~3 ~4 %{LifeTime:20,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:1,Explosions:[{Type:2,Flicker:0,Trail:0,Colors:[I;1973019,3887386,14188952,14602026,6719955,15435844],FadeColors:[I;11743532,5320730,2437522,2651799,14602026,15435844]}]}}}}%
AND
WAIT 200 milliseconds
ON Twitch Raid ``

[Bug] 1.16.1 - using /twitchspawn test throws error

Describe the bug
Using /twitchspawn test and the streamer name throws "An unexpected error occurred trying to execute that command" I took a pic of it and will attach, let me know if you need logs as well :D

To Reproduce
Steps to reproduce the behavior:

  1. Type /twitchspawn test and your streamer name
  2. Press Enter
  3. See error

Expected behavior
Should run through each rule in the tsl file, instead just errors out.

Screenshots
https://i.imgur.com/7wlhhAJ.jpeg

Version (please complete the following information):

  • OS: Windows 10 - 1803
  • TwitchSpawn Version: 1.16.1-1.6.2-BUGHUNT
  • Forge Version: 32.0.62

NBT Tags not taken in count with the /setblock command

Describe the bug
When using the EXECUTE function and doing a setblock command with NBT Tags in it, the NBT are ignore

To Reproduce
Steps to reproduce the behavior:

  1. Set a rule like EXECUTE %/setblock ~ ~ ~ minecraft:chest{CustomName:"\"test\""} replace%
    ON Donation
    WITH amount >= 1000
  2. Open the game and simulate the event doing this
    /twitchspawn simulate {event:"donation", amount:1000}
  3. The chest is placed in the world but has no Custom Name. But if you run this command in game the chest is placed WITH the Custom Name, so i guess that NBTs are lost when parsing the /setblock command.

Expected behavior
The command described by the EXECUTE action should run as it would run by typing it manually. Haven't tested with other commands that has NBTs but could be the same behavior

Version (please complete the following information):

  • OS: Windows 10
  • TwitchSpawn Version: 1.3.6
  • Forge Version: 28.0.93

NPE on every event

Describe the bug
NPE on every event. actions and commands run successfully but NPE is caught

To Reproduce
Steps to reproduce the behavior:
Configured mod
Testing widgets in streamlab for follow, donation, bits, etc

Expected behavior
action happens with no error

Version (please complete the following information):
Server version 1.12.2
forge 14.23.5.2854
twitchspawn 0.8.1
RAD modpack 1.40a
Decocraft
PTRLib
twitchintegration
chattweaks

Additional context
Description: Error executing task

java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at net.minecraft.util.Util.runTask(Util.java:531)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1088)
at net.minecraft.client.Minecraft.run(Minecraft.java:3942)
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:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Caused by: java.lang.NullPointerException
at net.minecraft.client.audio.PositionedSoundRecord.(SourceFile:34)
at net.minecraft.client.audio.PositionedSoundRecord.(SourceFile:30)
at net.minecraft.client.multiplayer.WorldClient.playSound(WorldClient.java:580)
at net.minecraft.client.multiplayer.WorldClient.playSound(WorldClient.java:568)
at net.minecraft.client.network.NetHandlerPlayClient.handleSoundEffect(NetHandlerPlayClient.java:1674)
at net.minecraft.network.play.server.SPacketSoundEffect.processPacket(SourceFile:89)
at net.minecraft.network.play.server.SPacketSoundEffect.processPacket(SourceFile:11)
at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:22)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at net.minecraft.util.Util.runTask(Util.java:529)
... 9 more

OS_RUN Does doesn't run commands with more than one word BASH

OS_RUN works perfectly when I need to use something like "/path/to/script.sh" or "firefox" etc, they work perfectly. But whenever I try to run something like "/path/to/script.sh argument" or "mpc toggle" etc, it doesn't.

  • OS: Linux
  • TwitchSpawn Version: 1.2.5
  • Forge Version: 28.0.100

example rule:

OS_RUN LOCAL
 BASH %mpc toggle%
 DISPLAYING %["Here comes an OS magic!"]%
 ON Donation
 WITH amount IN RANGE [0,999]

[Streamlabs] Unexpected "amount" format on Youtube Superchat

Describe the bug
Streamlabs Socket API sends Youtube Superchat event with the amount multiplied with 1_000_000 (?)

To Reproduce

  1. Replay a Youtube Superchat event on Streamlabs Dashboard
  2. Check messages array and find amount field
  3. The value seems to be multiplied with 1_000_000

image

Expected behavior
The donation value in human-readable format, just like on other events.

Version (please complete the following information):

  • OS: Windows
  • TwitchSpawn Version: v1.2.5
  • Forge Version: -

Additional context
This is an inconsistency (?) that can only be fixed by Streamlabs Socket API developers. Contact them and report this inconsistency.

Can't play

Details:
Mod File: twitchspawn_1.16.1-1.8.2.jar
Failure message: TwitchSpawn (twitchspawn) encountered an error during the common_setup event phase
java.lang.RuntimeException: TwitchSpawn loading errors occurred
Mod Version: 1.8.2
Mod Issue URL: https://github.com/iGoodie/TwitchSpawn/issues
Exception message: java.lang.RuntimeException: TwitchSpawn loading errors occurred
Stacktrace:
at net.programmer.igoodie.twitchspawn.TwitchSpawn.commonSetup(TwitchSpawn.java:67) ~[twitchspawn:1.8.2] {re:classloading}
at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:120) ~[forge:35.1] {re:classloading}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:121) ~[forge:?] {re:classloading}
at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_291] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_291] {}
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_291] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_291] {}
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_291] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_291] {}

Founder badge seems to prevent sub detection

Describe the bug
Users with a founders badge does not get detected with months >= 1. Is there a different filter that I can search for?

To Reproduce
Steps to reproduce the behavior:

  1. Setup a rule:

EXECUTE %/setblock ~ ~ ~ minecraft:torch%
ON Twitch Chat Message
WITH message PREFIX %!torch%
WITH months >= 1

  1. Have someone with a founder badge in your channel type !torch

Expected behavior
I would expect the torch to be placed.

Screenshots
N/A

Version (please complete the following information):

  • OS: Windows
  • TwitchSpawn Version: [e.g. v1.1.7] 1.12.2-0.8.1
  • Forge Version: [e.g. v28.0.55] 14.23.5.2768

Additional context
Add any other context about the problem here.

TwitchSpawn with Magma 1.12.2

Describe the bug
A clear and concise description of what the bug is.
I am currently trying to use magma 1.12.2 to use the twitch spawn mod, what happens is that only the title appears on the screen, but no event happens, how can I solve this?

Expected behavior
I want the mod to work fine on magma 1.12.2

Screenshots
image

Version (please complete the following information):

  • OS: Windows
  • TwitchSpawn Version: 0.8.1
  • Forge Version: 14.23.5.2855

[Suggestion] Extra event: TwitchSpawn start/stop

My streamer friend wants to have a possibility to have a donation where gamerule "keepInventory" will be toggled on for the remainder of the stream, but wants to have it reset back to false in the next stream.

Having the TwitchSpawn start and stop events would allow that to happen automatically without having to do it manually.

[Suggestion] Visual Studio Code Plugin

Is there a way to possibly make a VS Code plugin so that Mac users can also have the custom syntax highlighting? I'd love to do it, but I honestly have no idea what I'm doing.

Commands running twice

Whenever I type in a command, it plays it twice. For example, I wrote "SUMMON zombie" ON Twitch Follow, and it summoned a zombie, then a second one 5 seconds later. Is this a bug or is there something I'm messing up? IT does this for all commands under all events.

[Bug] Non Op/Permission people can run some commands

Describe the bug
Non op and permission people can run commands like /twitchspawn test <> and [...] execute, which they shouldnt be able to. ModuleTest and ModuleExecute are missing permission checks

To Reproduce
Create server and have non op and non permission people (Credentials.toml) on and let them run the command.

Version (please complete the following information):

  • TwitchSpawn Version: 0.4.17
  • Forge Version: 1.12.2-14.23.5.2847

Crash on 1.16.5 Forge 36.0.40

Describe the bug
Server crashes on startup

To Reproduce
Download MC server 1.16.5
Download Forge 36.0.40
Download twitchspawn latest
Launch the server

Expected behavior
For it not to crash on startup

Screenshots
If applicable, add screenshots to help explain your problem.

Version (please complete the following information):

  • OS: Windows
  • MC: 1.16.5
  • TwitchSpawn Version: 1.9.0
  • Forge Version: 36.0.40

Additional context
Can't update to newest forge as 36.0.40 is needed for the pack I'm playing at the moment.
crash-2021-02-24_13.18.38-fml.txt

[Suggestion] Have an easy to use editor for people who find the language to complicated

A streamer friend of mine asked me to help with setting up some custom rules. Since the syntax of this language is relatively easy I think it will be relatively easy to make a tool which helps people configure rules by just clicking on the even they want, what they want to happen and which conditions the event should have.

I would be willing to make a basic web app for it but that should be in a seperate repo. I think it would be great if this mod was not directly attached to your account but to a free organization. That way the mod code, a web app, and other related items can be grouped together.

[Bug] Possible bug for multiple streamer setup

We have seen some odd behavior with the mod when active with over 5 online and active streamers. When there are up to 5 online and active streamers, with the mod turned on, things behave perfectly; everyone gets events triggered as they come in, the mod spawns items and mobs as directed by the rules, all's good. But we have seen that after the 6th online and active streamer comes in, the mod does not trigger events for them when they should, and does nothing for them; we have to run the simulate command in order to get their events to trigger manually, while the first 5 streamers get events as we would expect. We've seen this behavior with up to 7 simultaneous streamers. Maybe there is an accidental hard-cap of 5 for multiple streamers?

To Reproduce:

  • Configure the permissions file for more than 5 streamers
  • Log these streamers into the server
  • Turn TwitchSpawn on
  • Test events for the streamers via their streaming interface (in our case, we all use Streamlabs)

Expected behavior:
Every event should trigger for each streamer.

Specs:

  • Windows, Java
  • TwitchSpawn Version 0.4.9 (twitchspawn_1.12.2-0.4.9.jar)
  • Minecraft 1.12.2
  • Forge Version: 14.23.4.2847

[Suggestion] Random values

As of now you cant have random values in an action. So e.g. summoning mobs around the player isnt really possible (only at the player or specific coordinates). Would be nice if that would be added.
Maybe something like this:

SUMMON minecraft:creeper ~${min:-3,max:3} ~ ~${min:-3,max:3}

Cannot launch server with twitchspawn anymore

To Reproduce
Unsure, it was working for two days straight and then it crashed the server while we were offline and won't restart

Version (please complete the following information):

  • OS: SystemLinux (amd64) version 4.15.0-163-generic
  • TwitchSpawn Version: 1.9.1
  • Forge Version: 36.2.20

Additional context
(https://pastebin.com/MvViYfg4)

how to insert into a twitch spawn server

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Version (please complete the following information):

  • OS: [e.g. Windows]
  • TwitchSpawn Version: [e.g. v1.1.7]
  • Forge Version: [e.g. v28.0.55]

Additional context
Add any other context about the problem here.

i would like to put this mod in a server i paid how can i do ???

Using 100% server RAM

Describe the bug
I've been running the mod successfully on a server, but it keeps hogging 100% of the RAM of an 8gb server. Is there anything I can do the minimize that?

To Reproduce
No way to reproduce it, I expanded the server from 6gb to 8gb and it still hogs 100% ram usage.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
https://imgur.com/a/F7m0N2i

Version (please complete the following information):

  • OS: Windows 10
  • TwitchSpawn Version: twitchspawn_1.16.1-1.9.0
  • Forge Version: v35.1.37

Twitch chat messages/commands dont seem to parse correctly.

Describe the bug
Twitch chat messages/commands dont seem to parse correctly.

To Reproduce
Steps to reproduce the behavior:
Using either prefix "%!text" or contains "%text%" etc does not generate an event
however, using just "badges contains moderator" fires events.

Expected behavior
would like to respond to commands

Version (please complete the following information):

  • OS: [e.g. Windows]
  • TwitchSpawn Version: 1.18.2-1.9.3
  • Forge Version: 40.1.25

Additional context
havent tested other events, connects to chat fine. a log function would help if i was able to see all text the bot received? hope you can help i really wanna use this in a stream tonight

[Bug] Crash with silent lib

Describe the bug
Crashes during load with the silent lib mod. There is some problem with the nightconfig library cause silentlib has it included too.
Loading up the previous version of silent lib works cause only the latest has nightconfig library included.

To Reproduce
Install silent lib mod and twitchspawn. Then launch mc.

Version (please complete the following information):

  • OS: MAC OS
  • TwitchSpawn Version: 1.12.2-0.4.9
  • Forge Version: 1.12.2-14.23.5.2847
  • SilentLib: 1.12.2-3.0.13+167

Crash log
https://pastebin.com/QTN1KeAV

ArgumentSerializer Crash on startup

Using only Forge and the twitchspawn mod and on load i get this error:

TwitchSpawn has failed to load correctly
java.lang.NoClassDefFoundError: net/minecraft/commands/synchronization/ArgumentSerializer

Latest version 1.19.3

[Improvement] Item parsing error lacking detailed information

Describe the bug
DROP action only allows vanilla item values. This is cause net.minecraft.command.arguments.ItemParser looks in the vanilla item registry and not the forge one.

To Reproduce
Add in a modded item to a DROP action and it wont load.

Version (please complete the following information):

  • OS: MAC
  • TwitchSpawn Version: 0.4.9
  • Forge Version: 1.12.2-14.23.5.2847

Multi-streamer event handler not firing?

Version is 0.8.1 on 1.12.2 minecraft.

[21:52:17] [EventThread/INFO] [net.programmer.igoodie.twitchspawn.TwitchSpawn]: Handling (for CalaMariGold) arguments {eventType=subscription, eventAccount=twitch, eventName=Twitch Subscription, streamerNickname=CalaMariGold, actorNickname=silverdragon1237, subscriptionMonths=1, subscriptionTier=1, gifted=true, chatBadges=[]}

[21:52:17] [EventThread/INFO] [net.programmer.igoodie.twitchspawn.TwitchSpawn]: Found associated ruleset for CalaMariGold. Handling with their rules

[21:52:17] [EventThread/INFO] [net.programmer.igoodie.twitchspawn.TwitchSpawn]: Queued handler for Twitch Subscription event.

After it queues the handler it seems to do nothing. Not sure if there's a way to look deeper into the logs or not - but the streamer claims nothing happened after the subscriptions.

[Request] Amount of Drops in config.json

I got the mod setup and it almost works perfectly for my needs. I was wondering if you could add in the support to drop more than 1 item at a time. I think it would be cool to drop 1 item for some event and 5 items for another event.

Donator name as entity custom name?

I don't know if this is possibile, but if so i can't find anything on the documentation, but: is it possibile to include the donator name in commands? For example, on donation i want to spawn a creeper with the name of the donator, how can i do that? I tried including the ${actor} in the entity's nbt but this spawns a creeper with the name being literally ${actor}, not replacing the actual donator name. So, is it possibile to include this information in the command?

TWITCHSPAWN STREAMERS LIMIT?

Describe the bug
Hello I have a question! From what I saw I think there was an error before, which is that there was a limit of streamers with the mod that I think there were 6, I wanted to know if there is already a way to break this limit or if it is already solved ?, it does not matter in which version it will actually be, only that it works, and if it still does not work, how much would it be missing or what could I do to help?

Expected behavior
I saw some comments that there were errors when there were many streamers on a server but on the part of the mod, that there was a limit or something like that, that's why I ask

Version (please complete the following information):

  • OS: Windows
  • TwitchSpawn Version: 1.12.2 - 1.16.4
  • Forge Version: [e.g. v28.0.55]

Additional context
Currently I would not have problems with the server ram since with the plugin I have a project in mind and the amount of ram that it would need would not be a problem

Common_Setup error on BOOT [TwitchSpawn: 1.9.0 - Forge: 35.1.4 - Minecraft: 1.16.4]

Describe the bug
Yesterday and the day before I booted up Minecraft with Twitchspawn + Forge and everything worked fantastic.
This morning I boot up minecraft with Twitchspawn + Forge and I get a Common_Setup error.
I've had this problem before and what I did is I duplicated the profile in Curseforge and booted up the new profile, that seemed to magically work, untill this morning where also that solution didn't work anymore.

To Reproduce
Steps to reproduce the behavior:

  1. Download and Install Curseforge
  2. Create a Minecraft profile with version 1.16.4 and Forge version 35.1.4
  3. Click on the newly made Minecraft profile
  4. Click on 'Add more content'
  5. Search TwitchSpawn and add it
  6. Boot minecraft

Expected behavior
For Minecraft to boot too the main menu with Twitchspawn working

Screenshots
Screenshot:
image

Version (please complete the following information):

  • OS: Windows 10
  • TwitchSpawn Version: v1.9.0
  • Forge Version: 35.1.4
  • Minecraft Version: 1.16.4

Additional context
Crashreport:
crash-2021-04-09_15.44.29-fml.txt

Gifted subs don't work

When I get subs as a gift in the stream it does not work ingame. I can successfully simulate it ingame and it will run.

Follows and channel points rules work ingame and via Twitch directly. I used this to test and many other things too....

I am also a twitch partner... is there maybe a partner bug?

DROP minecraft:stick 2
DISPLAYING %["Test Subscription"]%
ON Twitch Subscription
WITH gifted IS false

DROP diamond_block 1
DISPLAYING %["Test Gift Subscription"]%
ON Twitch Subscription Gift
WITH amount = 1
WITH tier = 1

[Suggestion] Add support for Just Giving donations

Streamlabs supports a UK charity platform called Just Giving, it would be great to have notifications be triggered from donations.

The event data from the log file is:

[16:42:59] [EventThread/INFO]: Received Streamlabs packet (justgivingdonation, justgiving) -> {"amount":99,"isTest":true,"name":"Shackleberry112","currency":"GBP","from":"John","to":{"name":"Shackleberry112"},"_id":"f3d16e85636b8e2fd698b1830d97a427","message":"This is a test donation for £99.00.","priority":10,"formatted_amount":"£99.00"}
{
  "amount": 99,
  "isTest": true,
  "name": "Shackleberry112",
  "currency": "GBP",
  "from": "John",
  "to": { "name": "Shackleberry112" },
  "_id": "f3d16e85636b8e2fd698b1830d97a427",
  "message": "This is a test donation for £99.00.",
  "priority": 10,
  "formatted_amount": "£99.00"
}

Game Crashes on load

Was thrown this error while trying to load the game with the mod enabled... It was the only mod enabled

Error: net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from TwitchSpawn (twitchspawn)```

DonationAlerts Support?

Hi, this mod is very cool and I wanted to request a DonationAlerts (russian "Streamlabs") support for this.
The donation info can be got using by this:

var socket = io("socket.donationalerts.ru:3001");
socket.emit('add-user', {token: "<Token>", type: "minor"});
socket.on('donation', function(msg){
  // Function to handle a donation by smth
});

And you get a JSON with this:

{
	"id": "<id>",
	"alert_type": "1",
	"additional_data": "{\"randomness\":517}",
	"username": "<Name of the donator>",
	"amount": "50.00",
	"amount_formatted": "50",
	"amount_main": "50.00",
	"currency": "RUB",
	"message": "<message>",
	"date_paid": "2017-06-01 11:46:56",
	"emotes": null,
	"_is_test_alert": true
}

Hope you'll add this into the mod!

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.