33 lines
No EOL
1.4 KiB
JavaScript
33 lines
No EOL
1.4 KiB
JavaScript
(function() {
|
|
var SEARCH_RADIUS = 500;
|
|
var knownEntities = Entities.findEntities(MyAvatar.position, SEARCH_RADIUS);
|
|
var knownDomainEntities = [];
|
|
|
|
// From all the entities we know about, store the ones that are not client-only
|
|
knownEntities.foreach(function(entity) {
|
|
if (!Entities.getEntityProperties(entity, 'clientOnly').clientOnly) {
|
|
knownDomainEntities.push(entity);
|
|
}
|
|
});
|
|
|
|
function checkOnEntityAdd(entityID){
|
|
print("entityadded ", entityID);
|
|
knownDomainEntities.foreach(function(knownEntity) {
|
|
if (knownEntity === entityID) {
|
|
// this is the same as an entity we know about, start the alarm
|
|
var properties = Entities.getEntityPropeties(entityID, ['clientOnly', 'lastEditedBy']);
|
|
// We only care about checking on client-only adds, others are filtered
|
|
if (properties.clientOnly) {
|
|
// This is an avatar entity, assume malicious intent - otherwise something might have been re-added, e.g. trivia
|
|
print (entityID + " added as avatar entity but also in known domain entities");
|
|
print (entityID + " was last edited by node " + properties.lastEditedBy);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
Entities.addingEntity.connect(checkOnEntityAdd);
|
|
|
|
Script.scriptEnding.disconnect(checkOnEntityAdd);
|
|
|
|
}); |