Re-add things that were accidentally removed #7
11
.gitattributes
vendored
Normal file
11
.gitattributes
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
||||||
|
# Ignore some files when exporting.
|
||||||
|
/.github export-ignore
|
||||||
|
/.gitattributes export-ignore
|
||||||
|
/default_env.tres export-ignore
|
||||||
|
/icon.png export-ignore
|
||||||
|
/icon.png.import export-ignore
|
||||||
|
/project.godot export-ignore
|
||||||
|
/README.md export-ignore
|
50
.github/workflows/file_format.sh
vendored
Executable file
50
.github/workflows/file_format.sh
vendored
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script ensures proper POSIX text file formatting and a few other things.
|
||||||
|
|
||||||
|
# We need dos2unix and recode.
|
||||||
|
if [ ! -x "$(command -v dos2unix)" -o ! -x "$(command -v recode)" ]; then
|
||||||
|
printf "Install 'dos2unix' and 'recode' to use this script.\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -uo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
# Loops through all text files tracked by Git.
|
||||||
|
git grep -zIl '' |
|
||||||
|
while IFS= read -rd '' f; do
|
||||||
|
# Exclude some files.
|
||||||
|
if [[ "$f" == *"csproj"* ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Ensure that files are UTF-8 formatted.
|
||||||
|
recode UTF-8 "$f" 2> /dev/null
|
||||||
|
# Ensure that files have LF line endings and do not contain a BOM.
|
||||||
|
dos2unix "$f" 2> /dev/null
|
||||||
|
# Remove trailing space characters and ensures that files end
|
||||||
|
# with newline characters. -l option handles newlines conveniently.
|
||||||
|
perl -i -ple 's/\s*$//g' "$f"
|
||||||
|
# We don't want to change lines around braces in godot/tscn files.
|
||||||
|
if [[ "$f" == *"godot" ]]; then
|
||||||
|
continue
|
||||||
|
elif [[ "$f" == *"tscn" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
git diff > patch.patch
|
||||||
|
|
||||||
|
# If no patch has been generated all is OK, clean up, and exit.
|
||||||
|
if [ ! -s patch.patch ] ; then
|
||||||
|
printf "Files in this commit comply with the formatting rules.\n"
|
||||||
|
rm -f patch.patch
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# A patch has been created, notify the user, clean up, and exit.
|
||||||
|
printf "\n*** The following differences were found between the code "
|
||||||
|
printf "and the formatting rules:\n\n"
|
||||||
|
cat patch.patch
|
||||||
|
printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
|
||||||
|
rm -f patch.patch
|
||||||
|
exit 1
|
19
.github/workflows/static_checks.yml
vendored
Normal file
19
.github/workflows/static_checks.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
name: 📊 Static Checks
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
format:
|
||||||
|
name: File formatting (file_format.sh)
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -qq dos2unix recode
|
||||||
|
|
||||||
|
- name: File formatting checks (file_format.sh)
|
||||||
|
run: |
|
||||||
|
bash ./.github/workflows/file_format.sh
|
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
|
||||||
|
# Godot-specific ignores
|
||||||
|
.import/
|
||||||
|
|
||||||
|
# Imported translations (automatically generated from CSV files)
|
||||||
|
*.translation
|
||||||
|
|
||||||
|
# Mono-specific ignores
|
||||||
|
.mono/
|
||||||
|
data_*/
|
||||||
|
mono_crash.*.json
|
||||||
|
|
||||||
|
# System/tool-specific ignores
|
||||||
|
.directory
|
||||||
|
*~
|
@ -30,7 +30,7 @@ class EmoteLocation extends Reference:
|
|||||||
var id : String
|
var id : String
|
||||||
var start : int
|
var start : int
|
||||||
var end : int
|
var end : int
|
||||||
|
|
||||||
func _init(emote_id, start_idx, end_idx):
|
func _init(emote_id, start_idx, end_idx):
|
||||||
self.id = emote_id
|
self.id = emote_id
|
||||||
self.start = start_idx
|
self.start = start_idx
|
||||||
|
26
Gift.gd
26
Gift.gd
@ -13,10 +13,10 @@ func _ready() -> void:
|
|||||||
var botname := authfile.get_line()
|
var botname := authfile.get_line()
|
||||||
var token := authfile.get_line()
|
var token := authfile.get_line()
|
||||||
var initial_channel = authfile.get_line()
|
var initial_channel = authfile.get_line()
|
||||||
|
|
||||||
connect_to_twitch()
|
connect_to_twitch()
|
||||||
yield(self, "twitch_connected")
|
yield(self, "twitch_connected")
|
||||||
|
|
||||||
# Login using your username and an oauth token.
|
# Login using your username and an oauth token.
|
||||||
# You will have to either get a oauth token yourself or use
|
# You will have to either get a oauth token yourself or use
|
||||||
# https://twitchapps.com/tokengen/
|
# https://twitchapps.com/tokengen/
|
||||||
@ -26,27 +26,27 @@ func _ready() -> void:
|
|||||||
print("Invalid username or token.")
|
print("Invalid username or token.")
|
||||||
return
|
return
|
||||||
join_channel(initial_channel)
|
join_channel(initial_channel)
|
||||||
|
|
||||||
connect("cmd_no_permission", get_parent(), "no_permission")
|
connect("cmd_no_permission", get_parent(), "no_permission")
|
||||||
connect("chat_message", get_parent(), "chat_message")
|
connect("chat_message", get_parent(), "chat_message")
|
||||||
|
|
||||||
# Adds a command with a specified permission flag.
|
# Adds a command with a specified permission flag.
|
||||||
# All implementations must take at least one arg for the command info.
|
# All implementations must take at least one arg for the command info.
|
||||||
# Implementations that recieve args requrires two args,
|
# Implementations that recieve args requrires two args,
|
||||||
# the second arg will contain all params in a PoolStringArray
|
# the second arg will contain all params in a PoolStringArray
|
||||||
# This command can only be executed by VIPS/MODS/SUBS/STREAMER
|
# This command can only be executed by VIPS/MODS/SUBS/STREAMER
|
||||||
add_command("test", get_parent(), "command_test", 0, 0, PermissionFlag.NON_REGULAR)
|
add_command("test", get_parent(), "command_test", 0, 0, PermissionFlag.NON_REGULAR)
|
||||||
|
|
||||||
# These two commands can be executed by everyone
|
# These two commands can be executed by everyone
|
||||||
add_command("helloworld", get_parent(), "hello_world")
|
add_command("helloworld", get_parent(), "hello_world")
|
||||||
add_command("greetme", get_parent(), "greet_me")
|
add_command("greetme", get_parent(), "greet_me")
|
||||||
|
|
||||||
# This command can only be executed by the streamer
|
# This command can only be executed by the streamer
|
||||||
add_command("streamer_only", get_parent(), "streamer_only", 0, 0, PermissionFlag.STREAMER)
|
add_command("streamer_only", get_parent(), "streamer_only", 0, 0, PermissionFlag.STREAMER)
|
||||||
|
|
||||||
# Command that requires exactly 1 arg.
|
# Command that requires exactly 1 arg.
|
||||||
add_command("greet", get_parent(), "greet", 1, 1)
|
add_command("greet", get_parent(), "greet", 1, 1)
|
||||||
|
|
||||||
# Command that prints every arg seperated by a comma (infinite args allowed), at least 2 required
|
# Command that prints every arg seperated by a comma (infinite args allowed), at least 2 required
|
||||||
add_command("list", get_parent(), "list", -1, 2)
|
add_command("list", get_parent(), "list", -1, 2)
|
||||||
|
|
||||||
@ -56,10 +56,10 @@ func _ready() -> void:
|
|||||||
add_alias("test","test3")
|
add_alias("test","test3")
|
||||||
# Or do it in a single line
|
# Or do it in a single line
|
||||||
# add_aliases("test", ["test1", "test2", "test3"])
|
# add_aliases("test", ["test1", "test2", "test3"])
|
||||||
|
|
||||||
# Remove a single command
|
# Remove a single command
|
||||||
remove_command("test2")
|
remove_command("test2")
|
||||||
|
|
||||||
# Now only knows commands "test", "test1" and "test3"
|
# Now only knows commands "test", "test1" and "test3"
|
||||||
remove_command("test")
|
remove_command("test")
|
||||||
# Now only knows commands "test1" and "test3"
|
# Now only knows commands "test1" and "test3"
|
||||||
@ -67,13 +67,13 @@ func _ready() -> void:
|
|||||||
# Remove all commands that call the same function as the specified command
|
# Remove all commands that call the same function as the specified command
|
||||||
purge_command("test1")
|
purge_command("test1")
|
||||||
# Now no "test" command is known
|
# Now no "test" command is known
|
||||||
|
|
||||||
# Send a chat message to the only connected channel (<channel_name>)
|
# Send a chat message to the only connected channel (<channel_name>)
|
||||||
# Fails, if connected to more than one channel.
|
# Fails, if connected to more than one channel.
|
||||||
# chat("TEST")
|
# chat("TEST")
|
||||||
|
|
||||||
# Send a chat message to channel <channel_name>
|
# Send a chat message to channel <channel_name>
|
||||||
# chat("TEST", initial_channel)
|
# chat("TEST", initial_channel)
|
||||||
|
|
||||||
# Send a whisper to target user
|
# Send a whisper to target user
|
||||||
# whisper("TEST", initial_channel)
|
# whisper("TEST", initial_channel)
|
||||||
|
24
README.md
24
README.md
@ -24,7 +24,7 @@ func _ready() -> void:
|
|||||||
connect("cmd_no_permission", self, "no_permission")
|
connect("cmd_no_permission", self, "no_permission")
|
||||||
connect_to_twitch()
|
connect_to_twitch()
|
||||||
yield(self, "twitch_connected")
|
yield(self, "twitch_connected")
|
||||||
|
|
||||||
# Login using your username and an oauth token.
|
# Login using your username and an oauth token.
|
||||||
# You will have to either get a oauth token yourself or use
|
# You will have to either get a oauth token yourself or use
|
||||||
# https://twitchapps.com/tokengen/
|
# https://twitchapps.com/tokengen/
|
||||||
@ -34,24 +34,24 @@ func _ready() -> void:
|
|||||||
print("Invalid username or token.")
|
print("Invalid username or token.")
|
||||||
return
|
return
|
||||||
join_channel(<channel_name>)
|
join_channel(<channel_name>)
|
||||||
|
|
||||||
# Adds a command with a specified permission flag.
|
# Adds a command with a specified permission flag.
|
||||||
# All implementations must take at least one arg for the command info.
|
# All implementations must take at least one arg for the command info.
|
||||||
# Implementations that recieve args requrires two args,
|
# Implementations that recieve args requrires two args,
|
||||||
# the second arg will contain all params in a PoolStringArray
|
# the second arg will contain all params in a PoolStringArray
|
||||||
# This command can only be executed by VIPS/MODS/SUBS/STREAMER
|
# This command can only be executed by VIPS/MODS/SUBS/STREAMER
|
||||||
add_command("test", self, "command_test", 0, 0, PermissionFlag.NON_REGULAR)
|
add_command("test", self, "command_test", 0, 0, PermissionFlag.NON_REGULAR)
|
||||||
|
|
||||||
# These two commands can be executed by everyone
|
# These two commands can be executed by everyone
|
||||||
add_command("helloworld", self, "hello_world")
|
add_command("helloworld", self, "hello_world")
|
||||||
add_command("greetme", self, "greet_me")
|
add_command("greetme", self, "greet_me")
|
||||||
|
|
||||||
# This command can only be executed by the streamer
|
# This command can only be executed by the streamer
|
||||||
add_command("streamer_only", self, "streamer_only", 0, 0, PermissionFlag.STREAMER)
|
add_command("streamer_only", self, "streamer_only", 0, 0, PermissionFlag.STREAMER)
|
||||||
|
|
||||||
# Command that requires exactly 1 arg.
|
# Command that requires exactly 1 arg.
|
||||||
add_command("greet", self, "greet", 1, 1)
|
add_command("greet", self, "greet", 1, 1)
|
||||||
|
|
||||||
# Command that prints every arg seperated by a comma (infinite args allowed), at least 2 required
|
# Command that prints every arg seperated by a comma (infinite args allowed), at least 2 required
|
||||||
add_command("list", self, "list", -1, 2)
|
add_command("list", self, "list", -1, 2)
|
||||||
|
|
||||||
@ -61,10 +61,10 @@ func _ready() -> void:
|
|||||||
add_alias("test","test3")
|
add_alias("test","test3")
|
||||||
# Or do it in a single line
|
# Or do it in a single line
|
||||||
# add_aliases("test", ["test1", "test2", "test3"])
|
# add_aliases("test", ["test1", "test2", "test3"])
|
||||||
|
|
||||||
# Remove a single command
|
# Remove a single command
|
||||||
remove_command("test2")
|
remove_command("test2")
|
||||||
|
|
||||||
# Now only knows commands "test", "test1" and "test3"
|
# Now only knows commands "test", "test1" and "test3"
|
||||||
remove_command("test")
|
remove_command("test")
|
||||||
# Now only knows commands "test1" and "test3"
|
# Now only knows commands "test1" and "test3"
|
||||||
@ -72,14 +72,14 @@ func _ready() -> void:
|
|||||||
# Remove all commands that call the same function as the specified command
|
# Remove all commands that call the same function as the specified command
|
||||||
purge_command("test1")
|
purge_command("test1")
|
||||||
# Now no "test" command is known
|
# Now no "test" command is known
|
||||||
|
|
||||||
# Send a chat message to the only connected channel (<channel_name>)
|
# Send a chat message to the only connected channel (<channel_name>)
|
||||||
# Fails, if connected to more than one channel.
|
# Fails, if connected to more than one channel.
|
||||||
chat("TEST")
|
chat("TEST")
|
||||||
|
|
||||||
# Send a chat message to channel <channel_name>
|
# Send a chat message to channel <channel_name>
|
||||||
chat("TEST", <channel_name>)
|
chat("TEST", <channel_name>)
|
||||||
|
|
||||||
# Send a whisper to target user
|
# Send a whisper to target user
|
||||||
whisper("TEST", <target_name>)
|
whisper("TEST", <target_name>)
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ func greet_me(cmd_info : CommandInfo) -> void:
|
|||||||
|
|
||||||
func list(cmd_info : CommandInfo, arg_ary : PoolStringArray) -> void:
|
func list(cmd_info : CommandInfo, arg_ary : PoolStringArray) -> void:
|
||||||
chat(arg_ary.join(", "))
|
chat(arg_ary.join(", "))
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@ -208,7 +208,7 @@ func handle_command(sender_data : SenderData, msg : PoolStringArray, whisper : b
|
|||||||
if(whisper == true && cmd_data.where & WhereFlag.WHISPER != WhereFlag.WHISPER):
|
if(whisper == true && cmd_data.where & WhereFlag.WHISPER != WhereFlag.WHISPER):
|
||||||
return
|
return
|
||||||
elif(whisper == false && cmd_data.where & WhereFlag.CHAT != WhereFlag.CHAT):
|
elif(whisper == false && cmd_data.where & WhereFlag.CHAT != WhereFlag.CHAT):
|
||||||
return
|
return
|
||||||
var args = "" if msg.size() < 5 else msg[4]
|
var args = "" if msg.size() < 5 else msg[4]
|
||||||
var arg_ary : PoolStringArray = PoolStringArray() if args == "" else args.split(" ")
|
var arg_ary : PoolStringArray = PoolStringArray() if args == "" else args.split(" ")
|
||||||
if(arg_ary.size() > cmd_data.max_args && cmd_data.max_args != -1 || arg_ary.size() < cmd_data.min_args):
|
if(arg_ary.size() > cmd_data.max_args && cmd_data.max_args != -1 || arg_ary.size() < cmd_data.min_args):
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 188 B |
Binary file not shown.
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 90 B |
@ -13,4 +13,4 @@ func _init(f_ref : FuncRef, perm_lvl : int, mx_args : int, mn_args : int, whr :
|
|||||||
max_args = mx_args
|
max_args = mx_args
|
||||||
min_args = mn_args
|
min_args = mn_args
|
||||||
where = whr
|
where = whr
|
||||||
|
|
||||||
|
@ -9,4 +9,4 @@ func _init(sndr_dt, cmd, whspr):
|
|||||||
sender_data = sndr_dt
|
sender_data = sndr_dt
|
||||||
command = cmd
|
command = cmd
|
||||||
whisper = whspr
|
whisper = whspr
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ class Entry extends Reference:
|
|||||||
var type : int
|
var type : int
|
||||||
var filename : String
|
var filename : String
|
||||||
var data : Array
|
var data : Array
|
||||||
|
|
||||||
func _init(path : String, type : int, filename : String, data : Array):
|
func _init(path : String, type : int, filename : String, data : Array):
|
||||||
self.path = path
|
self.path = path
|
||||||
self.type = type
|
self.type = type
|
||||||
|
Loading…
x
Reference in New Issue
Block a user