work for loadout overrides, fixed file deleteion
This commit is contained in:
@@ -30,14 +30,20 @@ public partial class GitIntegration:Node{
|
||||
Godot.DirAccess current_access = Godot.DirAccess.Open(path);
|
||||
current_access.IncludeHidden = true;
|
||||
foreach (String Dir in current_access.GetDirectories()){
|
||||
//GD.Print("found " + path.PathJoin(Dir));
|
||||
GD.Print("found " + path.PathJoin(Dir));
|
||||
delete_recursive(path.PathJoin(Dir));
|
||||
}
|
||||
foreach (String file in current_access.GetFiles()){
|
||||
//GD.Print("found file " + file);
|
||||
current_access.Remove(file);
|
||||
GD.Print("found file " + file);
|
||||
GD.Print("deleting status: ",current_access.Remove(file));
|
||||
GD.Print(ProjectSettings.GlobalizePath(path+"/"+file));
|
||||
if (current_access.FileExists(file)){
|
||||
GD.Print("Deleting failed, moving to trash");
|
||||
OS.MoveToTrash(ProjectSettings.GlobalizePath(path+"/"+file));
|
||||
}
|
||||
}
|
||||
DirAccess.RemoveAbsolute(path);
|
||||
GD.Print("deleted ",path);
|
||||
}
|
||||
|
||||
public void Clone(){
|
||||
|
||||
@@ -108,14 +108,8 @@ func update_ban_counter():
|
||||
var count:int = 0
|
||||
var keys:Array[String]
|
||||
for punishment in punishments:
|
||||
if punishment.uid != "":
|
||||
if !keys.has(punishment.uid):
|
||||
keys.append(punishment.uid)
|
||||
count += 1
|
||||
else:
|
||||
if !keys.has(punishment.username):
|
||||
keys.append(punishment.username)
|
||||
count += 1
|
||||
if punishment.punish_reason != "BAN_EVADING":
|
||||
count += 1
|
||||
ban_counter.text = str(punishments.size()) + " Entires :::::: " + str(count) + \
|
||||
" Unique :::::: " + str(punishments.size()-count) + " Alts"
|
||||
var alts = punishments.size() - count
|
||||
@@ -194,4 +188,6 @@ func close_request():
|
||||
func save_and_exit():
|
||||
save()
|
||||
git.Commit_changes()
|
||||
git.delete_recursive("user://repo/")
|
||||
await get_tree().process_frame
|
||||
get_tree().quit()
|
||||
@@ -0,0 +1,61 @@
|
||||
class_name OverrideParser extends Node
|
||||
|
||||
func parse_overrides(source:String,users:Array[UserInfo],user_groups:Array[GroupInfo]) -> Array[OverrideItemGroup]:
|
||||
var splits:PackedStringArray = source.split("\n")
|
||||
print("parsing with ",splits)
|
||||
var current_info:LoadoutOverrideInfo
|
||||
var infos:Array[LoadoutOverrideInfo]
|
||||
for line in splits:
|
||||
if line.begins_with("CLASS: "):
|
||||
var new_item:LoadoutOverrideInfo = LoadoutOverrideInfo.new()
|
||||
new_item.class_path = line.replace("CLASS: ","")
|
||||
current_info = new_item
|
||||
continue
|
||||
if line.begins_with("SLOT: "):
|
||||
var slot:String = line.replace("SLOT: ","")
|
||||
current_info.slot = slot
|
||||
continue
|
||||
if line.begins_with("ITEM: "):
|
||||
var item:String = line.replace("ITEM: ","")
|
||||
current_info.item_path = item
|
||||
continue
|
||||
if line.begins_with("PLAYERS: "):
|
||||
var players_raw:String = line.replace("PLAYERS: ","")
|
||||
var players:PackedStringArray = players_raw.split(",")
|
||||
for player in players:
|
||||
if player.begins_with("@"):
|
||||
var user_group_name:String = player.replace("@","")
|
||||
var found:bool = false
|
||||
for group in user_groups:
|
||||
if group.name == user_group_name:
|
||||
current_info.groups.append(group)
|
||||
found = true
|
||||
break
|
||||
if !found:
|
||||
push_error("didnt find group ",user_group_name)
|
||||
else:
|
||||
var user_name:String = player
|
||||
var found:bool = false
|
||||
for user in users:
|
||||
if user.name == user_name:
|
||||
current_info.users.append(user)
|
||||
found = true
|
||||
break
|
||||
if !found:
|
||||
push_warning("didnt find user ",user_name)
|
||||
if line.begins_with("TAG: "):
|
||||
current_info.tag = line.replace("TAG: ","")
|
||||
infos.append(current_info)
|
||||
current_info = null
|
||||
var groups:Array[OverrideItemGroup] = []
|
||||
for info in infos:
|
||||
var exists:bool = false
|
||||
for group in groups:
|
||||
if group.name == info.tag:
|
||||
exists = true
|
||||
group.children.append(info)
|
||||
if !exists:
|
||||
var new_group:OverrideItemGroup = OverrideItemGroup.new()
|
||||
new_group.name = info.tag
|
||||
groups.append(new_group)
|
||||
return groups
|
||||
@@ -0,0 +1 @@
|
||||
uid://cg2feh2v1snlb
|
||||
@@ -0,0 +1 @@
|
||||
class_name OverrideItem extends Resource
|
||||
@@ -0,0 +1 @@
|
||||
uid://bv2hrpr05vaee
|
||||
@@ -0,0 +1,7 @@
|
||||
class_name LoadoutOverrideInfo extends OverrideItem
|
||||
@export var class_path:String
|
||||
@export var slot:String
|
||||
@export var item_path:String
|
||||
@export var users:Array[UserInfo]
|
||||
@export var groups:Array[GroupInfo]
|
||||
@export var tag:String
|
||||
@@ -0,0 +1 @@
|
||||
uid://be2ral0lbxxir
|
||||
@@ -0,0 +1,14 @@
|
||||
class_name OverrideItemGroup extends OverrideItem
|
||||
@export var name:String
|
||||
@export var children:Array[LoadoutOverrideInfo]
|
||||
|
||||
func as_string() -> String:
|
||||
var string:String = ""
|
||||
string += name + "\n"
|
||||
for child:LoadoutOverrideInfo in children:
|
||||
string += "class: " + child.class_path + "\n"
|
||||
string += "slot: " + child.slot + "\n"
|
||||
string += "item: " + child.item_path + "\n"
|
||||
string += "users: " + str(child.users) + "\n"
|
||||
string += "groups: " + str(child.groups) + "\n"
|
||||
return string
|
||||
@@ -0,0 +1 @@
|
||||
uid://rd4edsuoi8dg
|
||||
@@ -0,0 +1,3 @@
|
||||
class_name GroupInfo extends Resource
|
||||
@export var name:String
|
||||
@export var users:Array[UserInfo]
|
||||
@@ -0,0 +1 @@
|
||||
uid://nt82db21lo01
|
||||
@@ -0,0 +1,45 @@
|
||||
class_name UserParser extends Node
|
||||
|
||||
func parse_people(source:String) -> Array[UserInfo]:
|
||||
var splits_users:PackedStringArray = source.split("#region USERS")[1].split("#endregion")[0].split("\n")
|
||||
#print("parsing: ",splits_users," on a source of, ", source)
|
||||
var current_user:UserInfo = null
|
||||
var users:Array[UserInfo]
|
||||
for line in splits_users:
|
||||
if line.begins_with("NAME: "):
|
||||
var user:UserInfo = UserInfo.new()
|
||||
user.name = line.replace("NAME: ","")
|
||||
current_user = user
|
||||
continue
|
||||
if line.begins_with("UID: "):
|
||||
if current_user:
|
||||
current_user.uid = line.replace("UID: ","")
|
||||
users.append(current_user)
|
||||
else:
|
||||
push_error("Error parsing people, no user object")
|
||||
current_user = null
|
||||
continue
|
||||
return users
|
||||
func parse_groups(source:String,users:Array[UserInfo]) -> Array[GroupInfo]:
|
||||
var splits_groups:PackedStringArray = source.split("#region GROUPS")[1].split("#endregion")[0].split("\n")
|
||||
var groups:Array[GroupInfo]
|
||||
var current_group:GroupInfo
|
||||
for line in splits_groups:
|
||||
if line.begins_with("GROUP: "):
|
||||
var group:GroupInfo = GroupInfo.new()
|
||||
group.name = line.replace("GROUP: ","")
|
||||
current_group = group
|
||||
if line.begins_with("MEMBERS: "):
|
||||
var people:PackedStringArray = line.replace("MEMBERS: ","").split(",")
|
||||
for person in people:
|
||||
current_group.users.append(find_user(person,users))
|
||||
groups.append(current_group)
|
||||
current_group = null
|
||||
return groups
|
||||
|
||||
func find_user(user_name:String,users:Array[UserInfo]) -> UserInfo:
|
||||
for user in users:
|
||||
if user.name == user_name:
|
||||
return user
|
||||
push_error("User is not found")
|
||||
return null
|
||||
@@ -0,0 +1 @@
|
||||
uid://chmb3e61opk14
|
||||
@@ -0,0 +1,3 @@
|
||||
class_name UserInfo extends Resource
|
||||
@export var name:String
|
||||
@export var uid:String
|
||||
@@ -0,0 +1 @@
|
||||
uid://co3i0beqyihi8
|
||||
Reference in New Issue
Block a user