mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
75 lines
1.7 KiB
JavaScript
75 lines
1.7 KiB
JavaScript
exports.List = function(discriminator) {
|
|
this.discriminator = discriminator;
|
|
this.contents = [];
|
|
}
|
|
|
|
exports.List.prototype.add = function(child){
|
|
if(child.constructor === Array){
|
|
|
|
children = child;
|
|
for(child of children){
|
|
if( this.filter( this.discriminator, child[this.discriminator] ).length === 0 )
|
|
this.contents.push(child);
|
|
}
|
|
|
|
}else{
|
|
if( this.filter( this.discriminator, child[this.discriminator] ).length === 0 )
|
|
this.contents.push(child);
|
|
}
|
|
}
|
|
|
|
exports.List.prototype.length = function(){
|
|
return this.contents.length;
|
|
}
|
|
|
|
exports.List.prototype.removeIndex = function(index){
|
|
this.contents.splice(index, 1);
|
|
}
|
|
|
|
exports.List.prototype.removeChild = function(child){
|
|
|
|
var index = this.contents.indexOf(child);
|
|
|
|
if( index === -1 ){
|
|
return false;
|
|
}
|
|
|
|
this.removeIndex(index);
|
|
|
|
}
|
|
|
|
exports.List.prototype.concatSublists = function(whereList, discriminator){
|
|
//this is meant to look at the contents, and assuming the contents are all lists, concatenate their values.
|
|
|
|
var concatList = new exports.List(discriminator);
|
|
|
|
for(item of this.contents){
|
|
var itemList = item[whereList];
|
|
concatList.add(itemList.contents);
|
|
}
|
|
|
|
return concatList;
|
|
}
|
|
|
|
exports.List.prototype.filter = function(key, value, onlyOne) {
|
|
|
|
var results = [];
|
|
|
|
for (index in this.contents) {
|
|
var child = this.contents[index];
|
|
if (child[key] == value) {
|
|
if (onlyOne) {
|
|
return child;
|
|
} else {
|
|
results.push(child);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(onlyOne){
|
|
return false;
|
|
}
|
|
|
|
return results;
|
|
}
|