Skip to content

Instantly share code, notes, and snippets.

@GMMan
GMMan / BitmapScanlineEnumerable.cs
Created November 20, 2014 02:13
Get consecutive scanlines in a Bitmap using foreach
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
class BitmapScanlineEnumerable : IEnumerable<IntPtr>
{
BitmapData bmd;
public bool VerticalFlip { get; set; }
@GMMan
GMMan / chatbot_publiccmds.md
Last active June 9, 2016 20:10
Groupees ChatBot Command Help

Groupees ChatBot, programmed by cyanic.

Public Commands

help

Lists available commands.
Example: !help
Aliases: cmds, commands, introduction, introduce

@GMMan
GMMan / raffle.md
Last active August 29, 2015 14:16
Groupees Chat Bot Raffle System Planning Sheet

Groupees Chat Bot Raffle System

The raffle system is designed to hand out keys and gift links for use with game distribution platforms. Users can add keys to the system, and set parameters on how the keys are distributed. Other users can then query the system for available keys, and obtain one using criteria set by the user who added the key. A reputation system will be available to discourage adding of fake or used keys. All keys are distributed through private chat unless it is a random drop.

Key distribution modes

  • Random drop: bot drops a key randomly in Just Chat. Draw will be made every x minute (probably 5-10), and a probability can be specified on when a key will drop.
  • Private on request: users can open a private chat with the chat bot, and request keys. Keys can either be random or on-demand, if allowed by the user submitting the key. Maximum x requests per 24-hours.
  • Raffle: User submitting key sets type and period, and other users can sub
@GMMan
GMMan / addchat.js
Last active August 29, 2015 14:16
Add bundle chat to active bundle pages on Groupees
addChatTab = function(id, bundleId, name)
{
// Get a chat tab. Grab the last one, pretty much guaranteed to be a common tab
var cbKeys = Object.keys(chatBoxer.chats);
var el;
for (var i = 0; i < cbKeys.length; ++i)
{
var c = chatBoxer.chats[cbKeys[i]];
if (c.type === 'common')
{
@GMMan
GMMan / keytabs.js
Last active August 29, 2015 14:16
Fun with JQuery on Groupees
$.getScript('https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.4.6/mousetrap.min.js', function()
{
Mousetrap.stopCallback = function() { return false; };
Mousetrap.bind('alt+1', function() { var el = chatBoxer.el.children('span.tab[data-chat-id]').eq(0); if (el) { el.children().eq(1).click(); el.next().find('input[type=text]').focus(); } });
Mousetrap.bind('alt+2', function() { var el = chatBoxer.el.children('span.tab[data-chat-id]').eq(1); if (el) { el.children().eq(1).click(); el.next().find('input[type=text]').focus(); } });
Mousetrap.bind('alt+3', function() { var el = chatBoxer.el.children('span.tab[data-chat-id]').eq(2); if (el) { el.children().eq(1).click(); el.next().find('input[type=text]').focus(); } });
Mousetrap.bind('alt+4', function() { var el = chatBoxer.el.children('span.tab[data-chat-id]').eq(3); if (el) { el.children().eq(1).click(); el.next().find('input[type=text]').focus(); } });
Mousetrap.bind('alt+5', function() { var el = chatBoxer.el.children('span.tab[data-chat-id]').eq(4); if
@GMMan
GMMan / chatpinger.js
Last active August 29, 2015 14:17
Chat pinger for Groupees Chat
ChatPinger = function()
{
var that = this;
var audioUrl;
var howler;
var subscribed = [];
this.muted = false;
this.notifyMyOwn = false;
this.notifyActiveTab = true;
@GMMan
GMMan / vn_readme.md
Created May 7, 2015 03:24
GROUPEES: The Visual Novel Readme
@GMMan
GMMan / groupees-bundles.md
Last active May 24, 2019 17:16
List of Groupees Bundles and Contents (June 23, 2017)

List of Groupees Bundles and Contents


Twin Sister + Max

Start: 2010-12-17 5:00:00 PM
End: 2010-12-19 5:00:00 PM
Link: https://groupees.com/1
1745.38 total sales

@GMMan
GMMan / addDownloadLinks.js
Last active August 29, 2015 14:20
Add download links for individual tracks on Groupees purchases page
@GMMan
GMMan / albumPlay.user.js
Created May 10, 2015 19:50
Play album tracks on Groupees purchases page back-to-back
// ==UserScript==
// @name Groupees Entire Album Playback
// @namespace http://cyanic.vnd/groupees/albumPlay
// @version 1.0.0
// @description Allows an entire album to be played instead of a single track at a time.
// @author cyanic
// @match https://groupees.com/purchases
// @grant none
// ==/UserScript==