fixing bugs for re-order

This commit is contained in:
MathMan05 2024-09-02 16:55:27 -05:00
parent 19f08a6408
commit e79e4affb4
6 changed files with 74 additions and 44 deletions

View file

@ -321,16 +321,16 @@ class Channel {
let position = -1; let position = -1;
const build = []; const build = [];
for (const thing of this.children) { for (const thing of this.children) {
const thisthing = { id: thing.snowflake, position: undefined, parent_id: undefined }; const thisthing = { id: thing.id, position: undefined, parent_id: undefined };
if (thing.position < position) { if (thing.position < position) {
thing.position = thisthing.position = position + 1; thing.position = thisthing.position = position + 1;
} }
position = thing.position; position = thing.position;
if (thing.move_id && thing.move_id !== thing.parent_id) { if (thing.move_id && thing.move_id !== thing.parent_id) {
thing.parent_id = thing.move_id; thing.parent_id = thing.move_id;
thisthing.parent_id = thing.parent_id; thisthing.parent_id = thing.parent?.id;
thing.move_id = null; thing.move_id = null;
console.log(this.guild.channelids[thisthing.parent_id.id]); //console.log(this.guild.channelids[thisthing.parent_id.id]);
} }
if (thisthing.position || thisthing.parent_id) { if (thisthing.position || thisthing.parent_id) {
build.push(thisthing); build.push(thisthing);
@ -929,8 +929,15 @@ class Channel {
updateChannel(json) { updateChannel(json) {
this.type = json.type; this.type = json.type;
this.name = json.name; this.name = json.name;
this.parent_id = SnowFlake.getSnowFlakeFromID(json.parent_id, Channel); const parent = this.guild.channelids[json.parent_id];
if (parent) {
this.parent = parent;
this.parent_id = parent.snowflake;
}
else {
this.parent = null; this.parent = null;
this.parent_id = null;
}
this.children = []; this.children = [];
this.guild_id = json.guild_id; this.guild_id = json.guild_id;
this.messageids = new Map(); this.messageids = new Map();

View file

@ -204,7 +204,7 @@ class Guild {
let position = -1; let position = -1;
const build = []; const build = [];
for (const thing of this.headchannels) { for (const thing of this.headchannels) {
const thisthing = { id: thing.snowflake, position: undefined, parent_id: undefined }; const thisthing = { id: thing.id, position: undefined, parent_id: undefined };
if (thing.position <= position) { if (thing.position <= position) {
thing.position = (thisthing.position = position + 1); thing.position = (thisthing.position = position + 1);
} }
@ -212,7 +212,7 @@ class Guild {
console.log(position); console.log(position);
if (thing.move_id && thing.move_id !== thing.parent_id) { if (thing.move_id && thing.move_id !== thing.parent_id) {
thing.parent_id = thing.move_id; thing.parent_id = thing.move_id;
thisthing.parent_id = thing.parent_id; thisthing.parent_id = thing.parent?.id;
thing.move_id = null; thing.move_id = null;
} }
if (thisthing.position || thisthing.parent_id) { if (thisthing.position || thisthing.parent_id) {
@ -234,7 +234,7 @@ class Guild {
if (serverbug) { if (serverbug) {
for (const thing of build) { for (const thing of build) {
console.log(build, thing); console.log(build, thing);
fetch(this.info.api + "/guilds/" + this.snowflake + "/channels", { fetch(this.info.api + "/guilds/" + this.id + "/channels", {
method: "PATCH", method: "PATCH",
headers: this.headers, headers: this.headers,
body: JSON.stringify([thing]) body: JSON.stringify([thing])
@ -242,7 +242,7 @@ class Guild {
} }
} }
else { else {
fetch(this.info.api + "/guilds/" + this.snowflake + "/channels", { fetch(this.info.api + "/guilds/" + this.id + "/channels", {
method: "PATCH", method: "PATCH",
headers: this.headers, headers: this.headers,
body: JSON.stringify(build) body: JSON.stringify(build)
@ -422,18 +422,23 @@ class Guild {
this.localuser.loadGuild(this.id); this.localuser.loadGuild(this.id);
} }
updateChannel(json) { updateChannel(json) {
SnowFlake.getSnowFlakeFromID(json.id, Channel).getObject().updateChannel(json); const channel = this.channelids[json.id];
if (channel) {
channel.updateChannel(json);
this.headchannels = []; this.headchannels = [];
for (const thing of this.channels) { for (const thing of this.channels) {
thing.children = []; thing.children = [];
} }
this.headchannels = [];
for (const thing of this.channels) { for (const thing of this.channels) {
if (thing.resolveparent(this)) { const parent = thing.resolveparent(this);
if (!parent) {
this.headchannels.push(thing); this.headchannels.push(thing);
} }
} }
this.printServers(); this.printServers();
} }
}
createChannelpac(json) { createChannelpac(json) {
const thischannel = new Channel(json, this); const thischannel = new Channel(json, this);
this.channelids[json.id] = thischannel; this.channelids[json.id] = thischannel;

View file

@ -423,11 +423,14 @@ class Localuser {
return undefined; return undefined;
} }
updateChannel(json) { updateChannel(json) {
SnowFlake.getSnowFlakeFromID(json.guild_id, Guild).getObject().updateChannel(json); const guild = this.guildids.get(json.guild_id);
if (guild) {
guild.updateChannel(json);
if (json.guild_id === this.lookingguild?.id) { if (json.guild_id === this.lookingguild?.id) {
this.loadGuild(json.guild_id); this.loadGuild(json.guild_id);
} }
} }
}
createChannel(json) { createChannel(json) {
json.guild_id ??= "@me"; json.guild_id ??= "@me";
SnowFlake.getSnowFlakeFromID(json.guild_id, Guild).getObject().createChannelpac(json); SnowFlake.getSnowFlakeFromID(json.guild_id, Guild).getObject().createChannelpac(json);

View file

@ -330,18 +330,18 @@ class Channel{
} }
calculateReorder(){ calculateReorder(){
let position=-1; let position=-1;
const build:{id:SnowFlake<Channel>,position:number|undefined,parent_id:SnowFlake<Channel>|undefined}[]=[]; const build:{id:string,position:number|undefined,parent_id:string|undefined}[]=[];
for(const thing of this.children){ for(const thing of this.children){
const thisthing:{id:SnowFlake<Channel>,position:number|undefined,parent_id:SnowFlake<Channel>|undefined}={id: thing.snowflake,position: undefined,parent_id: undefined}; const thisthing:{id:string,position:number|undefined,parent_id:string|undefined}={id: thing.id,position: undefined,parent_id: undefined};
if(thing.position<position){ if(thing.position<position){
thing.position=thisthing.position=position+1; thing.position=thisthing.position=position+1;
} }
position=thing.position; position=thing.position;
if(thing.move_id&&thing.move_id!==thing.parent_id){ if(thing.move_id&&thing.move_id!==thing.parent_id){
thing.parent_id=thing.move_id; thing.parent_id=thing.move_id;
thisthing.parent_id=thing.parent_id; thisthing.parent_id=thing.parent?.id;
thing.move_id=null; thing.move_id=null;
console.log(this.guild.channelids[thisthing.parent_id.id]); //console.log(this.guild.channelids[thisthing.parent_id.id]);
} }
if(thisthing.position||thisthing.parent_id){ if(thisthing.position||thisthing.parent_id){
build.push(thisthing); build.push(thisthing);
@ -933,8 +933,15 @@ class Channel{
updateChannel(json:channeljson){ updateChannel(json:channeljson){
this.type=json.type; this.type=json.type;
this.name=json.name; this.name=json.name;
this.parent_id=SnowFlake.getSnowFlakeFromID(json.parent_id,Channel); const parent=this.guild.channelids[json.parent_id];
if(parent){
this.parent=parent;
this.parent_id=parent.snowflake;
}else{
this.parent=null; this.parent=null;
this.parent_id=null;
}
this.children=[]; this.children=[];
this.guild_id=json.guild_id; this.guild_id=json.guild_id;
this.messageids=new Map(); this.messageids=new Map();

View file

@ -213,9 +213,9 @@ class Guild{
} }
calculateReorder(){ calculateReorder(){
let position=-1; let position=-1;
const build:{id:SnowFlake<Channel>,position:number|undefined,parent_id:SnowFlake<Channel>|undefined}[]=[]; const build:{id:string,position:number|undefined,parent_id:string|undefined}[]=[];
for(const thing of this.headchannels){ for(const thing of this.headchannels){
const thisthing:{id:SnowFlake<Channel>,position:number|undefined,parent_id:SnowFlake<Channel>|undefined}={id: thing.snowflake,position: undefined,parent_id: undefined}; const thisthing:{id:string,position:number|undefined,parent_id:string|undefined}={id: thing.id,position: undefined,parent_id: undefined};
if(thing.position<=position){ if(thing.position<=position){
thing.position=(thisthing.position=position+1); thing.position=(thisthing.position=position+1);
} }
@ -223,7 +223,7 @@ class Guild{
console.log(position); console.log(position);
if(thing.move_id&&thing.move_id!==thing.parent_id){ if(thing.move_id&&thing.move_id!==thing.parent_id){
thing.parent_id=thing.move_id; thing.parent_id=thing.move_id;
thisthing.parent_id=thing.parent_id; thisthing.parent_id=thing.parent?.id;
thing.move_id=null; thing.move_id=null;
} }
if(thisthing.position||thisthing.parent_id){ if(thisthing.position||thisthing.parent_id){
@ -245,14 +245,14 @@ class Guild{
if(serverbug){ if(serverbug){
for(const thing of build){ for(const thing of build){
console.log(build,thing); console.log(build,thing);
fetch(this.info.api+"/guilds/"+this.snowflake+"/channels",{ fetch(this.info.api+"/guilds/"+this.id+"/channels",{
method: "PATCH", method: "PATCH",
headers: this.headers, headers: this.headers,
body: JSON.stringify([thing]) body: JSON.stringify([thing])
}); });
} }
}else{ }else{
fetch(this.info.api+"/guilds/"+this.snowflake+"/channels",{ fetch(this.info.api+"/guilds/"+this.id+"/channels",{
method: "PATCH", method: "PATCH",
headers: this.headers, headers: this.headers,
body: JSON.stringify(build) body: JSON.stringify(build)
@ -431,18 +431,23 @@ class Guild{
this.localuser.loadGuild(this.id); this.localuser.loadGuild(this.id);
} }
updateChannel(json:channeljson){ updateChannel(json:channeljson){
SnowFlake.getSnowFlakeFromID(json.id,Channel).getObject().updateChannel(json); const channel=this.channelids[json.id];
if(channel){
channel.updateChannel(json);
this.headchannels=[]; this.headchannels=[];
for(const thing of this.channels){ for(const thing of this.channels){
thing.children=[]; thing.children=[];
} }
this.headchannels=[];
for(const thing of this.channels){ for(const thing of this.channels){
if(thing.resolveparent(this)){ const parent=thing.resolveparent(this);
if(!parent){
this.headchannels.push(thing); this.headchannels.push(thing);
} }
} }
this.printServers(); this.printServers();
} }
}
createChannelpac(json:channeljson){ createChannelpac(json:channeljson){
const thischannel=new Channel(json,this); const thischannel=new Channel(json,this);
this.channelids[json.id]=thischannel; this.channelids[json.id]=thischannel;

View file

@ -426,11 +426,14 @@ class Localuser{
return undefined; return undefined;
} }
updateChannel(json:channeljson):void{ updateChannel(json:channeljson):void{
SnowFlake.getSnowFlakeFromID(json.guild_id,Guild).getObject().updateChannel(json); const guild=this.guildids.get(json.guild_id);
if(guild){
guild.updateChannel(json);
if(json.guild_id===this.lookingguild?.id){ if(json.guild_id===this.lookingguild?.id){
this.loadGuild(json.guild_id); this.loadGuild(json.guild_id);
} }
} }
}
createChannel(json:channeljson):void{ createChannel(json:channeljson):void{
json.guild_id??="@me"; json.guild_id??="@me";
SnowFlake.getSnowFlakeFromID(json.guild_id,Guild).getObject().createChannelpac(json); SnowFlake.getSnowFlakeFromID(json.guild_id,Guild).getObject().createChannelpac(json);