+//Types: http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt
+#define CHANNEL_MODE_TYPE_A 0x01 /* ... special (addresses or users) ... */
+#define CHANNEL_MODE_TYPE_B 0x02 /* These modes always take a parameter. */
+#define CHANNEL_MODE_TYPE_C 0x03 /* These modes take a parameter only when set. */
+#define CHANNEL_MODE_TYPE_D 0x04 /* These modes never take a parameter. */
+#define CHANNEL_MODE_TYPE 0x07 /* bit mask to get the type */
+
+#define CHANNEL_MODE_VALUE_STRING 0x10
+#define CHANNEL_MODE_VALUE_INTEGER 0x20
+#define CHANNEL_MODE_VALUE 0x30 /* bit mask to get the value */
+
+#define CHANNEL_MODE_KEY 0x40 /* mode is a key - automatically add the current key as parameter on unset */
+
+#define CHANNEL_MODE_VALUE_INDEX_SHIFT 8
+#define CHANNEL_MODE_VALUE_INDEX_MASK (0xff << CHANNEL_MODE_VALUE_INDEX_SHIFT) /* this "bitrange" is reserved for storing the array indexes of the mode values */
+